powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Zapolneniya kartochki loto
12 сообщений из 37, страница 2 из 2
Zapolneniya kartochki loto
    #34065379
axndfs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ochen srochno nujno mne reshit eti problemi, Esli kto znaet pomoqite pojalusta.
Ya uje bolshe etoqo nicheqo ne moqu soobrajat.
...
Рейтинг: 0 / 0
Zapolneniya kartochki loto
    #34066100
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если подождешь пару дней, то на выходных могу расписать. Задачка достаточно простая, просто требует тщательного анализа. Не столько на знание, сколько на внимание. Это я про первый вариант о формировании одной строки.
...
Рейтинг: 0 / 0
Zapolneniya kartochki loto
    #34066353
axndfs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Budu bloqadaren.
Ya dumayu chto yesli 1-y variant poluchitsa, 2-y variant (6 stroka) ne budet tak slojno. Ya sam toje postarayus chto-to delat.
...
Рейтинг: 0 / 0
Zapolneniya kartochki loto
    #34072012
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Держи вариант решения для первой задачи

Правда, решение не идеальное в том смысле, что не получается для ВСЕХ значений получить одинаковое количество вариантов. Например, если я ограничиваюсь 100 значениями для каждой цифры, это значит, что примерно 10 значений будут использованы около 80 раз.

А так, результаты пропорциональные получаются. Для 100 значений порядка 1780 записей (около 10 секунд расчета), для 1000 значений - порядка 17800 записей (около 2...3 минут расчета).

"Порядка" означает, что это, вероятно, максимальное значение. Точно не стал вычислять предельное значение. А реальный результат колеблется от 1730 до 1780 на каждые 100 значений.
...
Рейтинг: 0 / 0
Zapolneniya kartochki loto
    #34078821
axndfs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМ
не получается для ВСЕХ значений получить одинаковое количество вариантов. Например, если я ограничиваюсь 100 значениями для каждой цифры, это значит, что примерно 10 значений будут использованы около 80 раз.

Vot imenno ya etu problemu xotel reshit. U menya toje samiy poluchaetsa.
No, nascet praporsianolnosti ya ne ponyal. Napirmer, kolichestvo ispolzuvanie kajdoqo znachenie postavil 10000, poluchilsa chto '9' ne doispolzovona 3895 raz,a '84' 411 raz. Eto ne ochen to proporsinalno pomoemu. Ili ya ne ponimayu chto-to.
...
Рейтинг: 0 / 0
Zapolneniya kartochki loto
    #34079617
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, двай на простом примере. 3 ячейки по 2 значения (1,2; 3,4; 5,6) и одна блуждающая дырка. Имеем следующие варианты

1 3 0
1 4 0
2 3 0
2 4 0
1 0 5
1 0 6
2 0 5
2 0 6
0 3 5
0 3 6
0 4 5
0 4 6

Легко увидеть, что каждое значение встречается ровно 4 раза. Но, если стоит ограничение, выбрать каждое значение только 2 раза? Какие будем выбирать?

Предположим, выбрали первые 4 записи. Что имеем: все значения от 1 до 4 были выбраны ровно 2 раза. Значит, эти значения больше выбирать нельзя.

НО, а как же значения 5 и 6? А никак! Их уже НЕВОЗМОЖНО выбрать, поскольку в любой оставшейся записи они будут в связке с одним из уже использованных значений. Т.е. попытка выбрать значения 5 или 6 приведет к переполнению количества других значений.

Да, можно рассчитать комбинацию, при которой все значения будут выбраны одинаковое количество раз. Но! А оно тебе надо? Это получается довольно не тривиальная задача на комбинаторику.

Поскольку в коде используется выборка случайным образом через RAND(), то предсказать, сколько же останется "в остатке" невозможно.

Можешь попробовать поискать закономерности, при выполнении которых будет выбор всегда одинакового количества значений без остатка. Добавь эти ограничения в отбор записей и "будет тебе счастье".

Например, в данном примере из 3 ячеек и выбора только 2 значений эта закономерность легко просчитывается: одно значение не может иметь более одной "пары" в одной и той же ячейке.

Ну, т.е. для значения 1 в паре должно быть только одно значение из второй ячейки (любое) и только одно значение из третьей ячейки (любое), но недопустимо иметь два разных значения в одной и той же ячейке. Другими словами допустимо выбрать

1 3 0
1 0 5

или

1 4 0
1 0 6

Но недопустимо выбрать

1 3 0
1 4 0

А общие закономерности для любого количества дырок и любого количества значений ищи сам.
...
Рейтинг: 0 / 0
Zapolneniya kartochki loto
    #34079972
axndfs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМ можно рассчитать комбинацию, при которой все значения будут выбраны одинаковое количество раз. Но! А оно тебе надо?

Imenno eto nado bilo mne.
...
Рейтинг: 0 / 0
Zapolneniya kartochki loto
    #34084386
axndfs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМ Можешь попробовать поискать закономерности, при выполнении которых будет выбор всегда одинакового количества значений без остатка. Добавь эти ограничения в отбор записей и "будет тебе счастье".


Eto ya ne ponyal kak?
Esli mojno podrobnee skajite ob etom, pojalusta.
...
Рейтинг: 0 / 0
Zapolneniya kartochki loto
    #34117971
axndfs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет. Я немного код менял, получил более или менее подходящий вариант.
Но и здесь тоже некоторые цифры (последные) не присутствует в таблице. Вот мой код: ssdd.rar
Нет ли решение этой проблемы? Как тогда заплоняет таблицы для лотереии?
...
Рейтинг: 0 / 0
Zapolneniya kartochki loto
    #34121546
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если ты думаешь, что приведенный тобой код настолько элементарен, что понятен без комментариев, то ты сильно ошибаешся. Т.е., конечно, понять его можно. Затратив довольно много времени и сил. А оно мне надо?

Итак, что имеем:

Variant - какие 5 ячеек из 9 доступных будут заполнены на очередной итерации. Кстати, некорректно заполненной (лишние записи, дающие дубли вариантов)
araliq - диапазон возможных значений каждой ячейки
90.dbf - счетчик. Сколько раз было использовано каждое значение
BigTable - отобранные варианты

Берем запись таблицы Variant - номера ячеек, которые будут заполняться.

По диапазону, указанному в araliq начинаем перебирать ВСЕ возможные значения для каждой ячейки. Поскольку комбинации в таблице Variant - уникальны, то дублей при переборе быть не может. Т.е. невозможно создать комбинацию, которая раньше уже была записана.

Продолжаем перебор, пока не достигнем предела использования значений в очередной комбинации.

В чем здесь проблема?

Возвращаюсь к примеру 2 значения в 3 ячеках. В каждой ячейке возможны только 2 значения.

Содержимое таблицы Variant в этом случае будет такое (исключая дубли вариантов)

12
13
23

Первая ячейка - от 1 до 2
Вторая ячейка - от 3 до 4
Третья ячейка - от 5 до 6

Двигаемся по твоей логике по таблице Variant и имеем в BigTable значения

Строка 1 таблицы Variant
1 3 0
1 4 0
2 3 0
2 4 0

Строка 2 таблицы Variant
1 0 5
1 0 6
2 0 5
2 0 6

Строка 3 таблицы Variant
0 3 5
0 3 6
0 4 5
0 4 6

Ставим ограничение: не более 2 раз выбрать каждое значение. Движемся сверху вниз и выбираем

1 3 0
1 4 0
2 3 0
2 4 0

ВСЕ! Больше НИЧЕГО выбрать не получится. Каждое значение было выбрано ровно 2 раза. Из третьего столбца не будет выбрано НИ ОДНОГО значения.

Более того, в общем случае у тебя и не получится выбрать одинаковое количество раз каждое значение. Ведь ты имеешь РАЗНЫЕ диапазоны.

Для первой ячейки - 9 значений
Для ячеек со второй по восьмую - по 10 значений
Для девятой ячейки - 11 значений

Это значит, что первая ячейка будет выбираться несколько бОльшее количество раз, последнее - несколько мЕньшее количество. Равномерного распреджеления не будет в принципе.

ПРОСТОГО решения, я не вижу. Любой простой алгоритм основанный на переборе вариантов "упрется" в некую неравномерность распределения. В большей или меньшей степени. Думаю, это задачка из теории вероятности и статистических распределений.
...
Рейтинг: 0 / 0
Zapolneniya kartochki loto
    #34126851
axndfs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тогда, я думаю это более простой вариант, уже другого игра.
Цифры от 1 до 50, в таблице 25 полей, и каждое поле имеет свое значение

a1,b1,c1,d1,e1 - от 1 до 9
a2,b2,c2,d2,e2 - от 10 до 19
a3,b3,c3,d3,e3 - от 20 до 29
a4,b4,c4,d4,e4 - от 30 до 39
a5,b5,c5,d5,e5 - от 40 до 50
А как здесь получить так что с каждого цифра в таблице присутствовали одинаковый раз?
Код имею, но не получается с каждого цифра в таблице присутствовали одинаковый раз. Допустим, 1000 раз.
...
Рейтинг: 0 / 0
Zapolneniya kartochki loto
    #34127144
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я могу только повторить, то, что уже сказал

ВладимирМПРОСТОГО решения, я не вижу. Любой простой алгоритм основанный на переборе вариантов "упрется" в некую неравномерность распределения. В большей или меньшей степени. Думаю, это задачка из теории вероятности и статистических распределений.
...
Рейтинг: 0 / 0
12 сообщений из 37, страница 2 из 2
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Zapolneniya kartochki loto
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]