Просмотр полной версии : Лотерея
Правила розыгрыша:
1 июля 2009 года с независимого от администрации форума новостного сайта ( www.cnews.ru (http://www.cnews.ru/) ) из разделов «Телеком», «Интернет» «Софт» будут выбраны первые новости за этот день (после 00:00 часов 1 июля 2009 года).
Время выхода каждой новости служит основой для розыгрыша среди участников. Из склеенных всех последних 2-х цифр (минуты) будет получено 6-тизначное число: ABCDEF
где : AB - минуты выхода первой новости, CD - минуты выхода второй новости, EF- минуты выхода третьей новости.
Далее путем расчленения полученного числа на 6 чисел и деления их по модулю на количество участников (КУч), будет получено 3 номера победителей.
1 победитель (ABCD mod КУч) + 1 ABCDEF
2 победитель (BCDE mod КУч) + 1 ABCDEF
3 победитель (CDEF mod КУч) + 1 ABCDEF
Единица прибавляется для исключения выпадения нуля.
Например, если выход новостей был 10:07, 09:43, 11:12 - в трех разделах, а количество участников равно 110, то получится 6-ти значное число 074312. Победитель будет найден по формуле:
1 победитель (0743 mod 110) +1 = 307 074312
2 победитель (7431 mod 110) +1 = 003 074312
3 победитель (4312 mod 110) +1 = 380 074312
по чему такая лотерея была бы не честной?...:) -условимся, что время выхода новости действительно абсолютно случайно...:)
Nadir Zaitov
01.07.2009, 12:54
Умница, Наташа!
Самый вредный вариант - по модулю 100 (200 и т.д.). Шансы выиграть имеют только 1-е 60 человек, а остальные шансов вообще не имеют :).
Действительно есть проблемы с наложением частотных характеристик и модулем - Нужно было формулу другую с умножением на 60, а не со скрытым умножением на 100 использовать!
В случае со 150 участниками файл даже вложил, чтоб поиграться и посмотреть можно было :). Для изменения в любом пустом месте таблицы нажмите F2 и затем ввод - диаграмка с частотными характеристиками пересчитается.
Evgeniy Sklyarevskiy
01.07.2009, 14:01
В связи с повальной грамотностью на форуме предлагаю исправить название темы на правильное...
b_a_lamut
01.07.2009, 15:53
В связи с повальной грамотностью на форуме предлагаю исправить название темы на правильное...
Эх, испортили праздник расчётами. Недаром я не доверяю математикам. Ты бы лучше похлопотал, чтобы меня в Real ID включили и впихнули в лоторею на счастливый, согласно расчётам, номер :)
Evgeniy Sklyarevskiy
01.07.2009, 16:24
Ты бы лучше похлопотал, чтобы меня в Real ID
Люди годами в очереди стоят...
В связи с повальной грамотностью на форуме предлагаю исправить название темы на правильное...
устала я от грамотности на этом форуме -разрешите по писать с ошибками...:185:
Ты бы лучше похлопотал, чтобы меня в Real ID включили и впихнули в лоторею на счастливый, согласно расчётам, номер а говорите -математикам не доверяете...:)
Nadir Zaitov
01.07.2009, 17:41
В связи с повальной грамотностью на форуме предлагаю исправить название темы на правильное... Рекомендую в подобных случаях использовать либо тег [help] ("!"), если нужно исправить очепятку, либо тег оффтоп, если это было "приколом". Очипятку исправил.
b_a_lamut
01.07.2009, 17:58
а говорите -математикам не доверяете...
Я только Евгению Семёновичу доверяю, как математику. У Него всё схваченно и арихметика своя. Да, на всякий случай, не показывайте Ему язык. Он сделает вид, что не заметил, но запомнит. Вот, меня в очередь поставил, несмотря на то, что я везде его поддерживаю и палки в колёса вставляю, при случае.
Лучше задачи решать. Какие будут предложения по создавшейся ситуации с лотереей. Что можно сделать, чтобы призы остались у счастливчиков, а выпавшие из игры, в неё попали без обид и с чувством удовлетворения.
Какие будут предложения по создавшейся ситуации с лотереей.
1 победитель (ABCD mod КУч) + 1 ABCDEF
2 победитель (BCDE mod КУч) + 1 ABCDEF
3 победитель (CDEF mod КУч) + 1 ABCDEFесли банально лень, что то серьезное придумывать, то можно ограничиться как предложенно:
Действительно есть проблемы с наложением частотных характеристик и модулем - Нужно было формулу другую с умножением на 60, а не со скрытым умножением на 100 использовать! изящным:
1 победитель ((AB+60*CD) mod КУч) + 1 ABCDEF
2 победитель ((BC+60*DE) mod КУч) + 1 ABCDEF
3 победитель ((CD+60*EF) mod КУч) + 1 ABCDEF
а еще лучше красочным:
1 победитель ((AB+60*CD+60*60*EF) mod КУч) + 1
2 победитель ((CD+60*EF+60*60*AB) mod КУч) + 1
3 победитель ((EF+60*AB+60*60*CD) mod КУч) + 1
:)
конечно маленькая разница останется но она будет в пределах долей процента...:) и этот замысловатый алгоритм станет куда как стабильнее...:)
Nadir Zaitov
01.07.2009, 18:54
конечно маленькая разница останется но она будет в пределах долей процента... Это из-за того, что число не будет делится на КУч без остатка?
Nadir Zaitov
01.07.2009, 18:59
если банально лень, что то придумывать, то можно например заменить изящным:
1 победитель ((AB+60*CD) mod КУч) + 1 ABCDEF
2 победитель ((BC+60*DE) mod КУч) + 1 ABCDEF
3 победитель ((CD+60*EF) mod КУч) + 1 ABCDEF
а еще лучше красочным:
1 победитель ((AB+60*CD+60*60*EF) mod КУч) + 1
2 победитель ((CD+60*EF+60*60*AB) mod КУч) + 1
3 победитель ((EF+60*AB+60*60*CD) mod КУч) + 1
конечно маленькая разница останется но она будет в пределах долей процента... А вообще лучше было не мучаться, а брать от строк ABCDEF, CDEFAB, EFABCD hash-образ, который потом и брать по модулю КУч.
shumbola
01.07.2009, 19:18
если банально лень, что то придумывать, то можно например заменить изящным:
1 победитель ((AB+60*CD) mod КУч) + 1 ABCDEF
2 победитель ((BC+60*DE) mod КУч) + 1 ABCDEF
3 победитель ((CD+60*EF) mod КУч) + 1 ABCDEF
а еще лучше красочным:
1 победитель ((AB+60*CD+60*60*EF) mod КУч) + 1
2 победитель ((CD+60*EF+60*60*AB) mod КУч) + 1
3 победитель ((EF+60*AB+60*60*CD) mod КУч) + 1
конечно маленькая разница останется но она будет в пределах долей процента... А вообще лучше было не мучаться, а брать от строк ABCDEF, CDEFAB, EFABCD hash-образ, который потом и брать по модулю КУч.
Еще лучше было бы попросить random.org сгенерировать 3 случайных числа в пределах 1 - КУч. :-)
Evgeniy Sklyarevskiy
01.07.2009, 19:23
Самый вредный вариант - по модулю 100 (200 и т.д.). Шансы выиграть имеют только 1-е 60 человек, а остальные шансов вообще не имеют .
Действительно есть проблемы с наложением частотных характеристик и модулем - Нужно было формулу другую с умножением на 60, а не со скрытым умножением на 100 использовать!
Поясните, пожалуйста, я так и не понял, в чем неравноправие шансов???
Nadir Zaitov
01.07.2009, 19:41
random.org Правильность (непредвзятость организаторов) не проверить :) Не будьте компьютером - будьте человеком :)
Nadir Zaitov
01.07.2009, 19:59
Поясните, пожалуйста, я так и не понял, в чем неравноправие шансов??? Файл для случая Вы скачали? Без детального анализа я тоже сразу не смекнул.
Теперь к пояснению. Формула у нас такая:
f(x,y)=(([x*60]*100+[y*60]) mod КУч) +1, где:
КУч - константа заранееизвестная;
[] - операция выделения целой части;
x,y - некоторые "случайные" числа из отрезка (0,1);
Возьмем КУч=100, например, для наглядности.
Тогда f(x,y)=[y*60] +1, для любых x и y, т.е. из 100 участников розыгрыш фактически идет среди первых 60, а остальные 40 никогда не получат призы!
Возьмем КУч=150, с этим сложнее.
Предположим, что [x*60] делится на 3 без остатка:
Тогда f(x,y)=[y*60] +1, для любых x и y, т.е. из 150 участников розыгрыш фактически идет среди первых 60, а остальные 90 не получат призы;
Предположим, что [x*60] делится на 3 с остатком 1:
Тогда f(x,y)=(100+[y*60]) mod 150 +1, для любых x и y, т.е. из 150 участников розыгрыш фактически идет среди 50 последних и 10 первых участников, а остальные 90 не получат призы;
Предположим, что [x*60] делится на 3 с остатком 2:
Тогда f(x,y)=(50+[y*60]) mod 150 +1, для любых x и y, т.е. из 150 участников розыгрыш фактически идет среди участников с номерами [50..110], а остальные 90 не получат призы;
Накладываем события, и видим, что участники [1..10]; [50..60]; [100-110] в два раза чаще имеют шансы выиграть, чем все остальные участники.
shumbola
01.07.2009, 20:05
Правильность (непредвзятость организаторов) не проверить
На то они и организаторы. :-)
Nadir Zaitov
01.07.2009, 20:06
f(x,y)=(([x*60]*100+[y*60]) mod КУч) +1 Это именно то, где "собака порылась", функция перед операцией mod не равномерная, а скачкообразная (с 59 идет скачек на 100 сразу). Следовательно mod не равномерно выдает остаток от деления на КУч, следовательно есть неравноправие участников лотереи. Легче всего неявное умножение на 100 заменить на явное умножение на 60, как и предложила Наташа.
Nadir Zaitov
01.07.2009, 20:08
На то они и организаторы. :-) В предложенном ими (и уточненном нами) варианте - это проверяемо :), т.е. без мухлежа.
Ruslan Juldashev
01.07.2009, 20:17
Ну так что мне с Олегом Паком нужно сделать, чтоб наконец отхватить долгожданный и заслуженный приз?
Ruslan Aliev
01.07.2009, 20:29
Умница, Наташа!
Самый вредный вариант - по модулю 100 (200 и т.д.). Шансы выиграть имеют только 1-е 60 человек, а остальные шансов вообще не имеют :).
Действительно есть проблемы с наложением частотных характеристик и модулем - Нужно было формулу другую с умножением на 60, а не со скрытым умножением на 100 использовать!
В случае со 150 участниками файл даже вложил, чтоб поиграться и посмотреть можно было :). Для изменения в любом пустом месте таблицы нажмите F2 и затем ввод - диаграмка с частотными характеристиками пересчитается.
1 - в прикреплённом вами файле учитываются только два числа, хотя в приведённом примере учитываются три.
2 - Вы забыли про сдвиг при каждом делении
1 победитель (0743 mod 110) +1 = 307 074312
2 победитель (7431 mod 110) +1 = 003 074312
3 победитель (4312 mod 110) +1 = 380 074312
3 - Делится полученное 6-ти значное число не на 100 а на количество участников, так что заменить его на 60 проблематично.
Evgeniy Sklyarevskiy
01.07.2009, 21:15
Поясните, пожалуйста, я так и не понял, в чем неравноправие шансов??? Файл для случая Вы скачали? Без детального анализа я тоже сразу не смекнул.
Теперь к пояснению. Формула у нас такая:.
Ааа я что-то начинаю понимать... Спасибо большое!
shumbola
01.07.2009, 21:17
Ну так что мне с Олегом Паком нужно сделать, чтоб наконец отхватить долгожданный и заслуженный приз?
Вместе вам раскошелиться на нужный номер. ;-)
b_a_lamut
01.07.2009, 21:49
Как человек не участвующий в розыгрыше, не имеющий корыстных мотивов и побуждений, не коррумпированный и не запуганный интернетной мафией, могу, по мере необходимости, вытаскивать из шапки номера игроков.:shok:
Это из-за того, что число не будет делится на КУч без остатка?думаю, что да..:)
Ааа я что-то начинаю понимать...иными словами если например 100 человек то чтобы выиграл например счастливчик под затейливым номером 85 -нужно что бы у нас выпало число 0085, 0185, 0285,...3485... а таких чисел то и нету...:) поскольку последнее число ток до 60...:)
Efim Kushnir
01.07.2009, 22:41
Ну так что мне с Олегом Паком нужно сделать, чтоб наконец отхватить долгожданный и заслуженный приз?
А что ты готов сделать с Олегом Паком за приз?
Nadir Zaitov
01.07.2009, 23:10
1 - в прикреплённом вами файле учитываются только два числа, хотя в приведённом примере учитываются три.
2 - Вы забыли про сдвиг при каждом делении
1 победитель (0743 mod 110) +1 = 307 074312
2 победитель (7431 mod 110) +1 = 003 074312
3 победитель (4312 mod 110) +1 = 380 074312
- это не важно, просто 3 раза повторяется один и тот-же "несправедливый" процесс.
3 - Делится полученное 6-ти значное число не на 100 а на количество участников, так что заменить его на 60 проблематично. Так вот о том и идет рачь. Если б количество участников было бы 100, то из них на самом деле участвовало бы в розыгрыше только 60, а было бы 150 (у нас их в этом месяце 151), то у некоторых участников шансов выиграть было бы в 2 раза больше. В случае 151 разброс не такой большой. Процентов 20 наверное. Не проверял.
Nadir Zaitov
01.07.2009, 23:46
Процентов 20 наверное. Не проверял. Проверил. 30% ровно.
Вот файл для точного расчета для различных значений количества участников (в интервале до 200). 100 и 200 дадут ошибку, так как некоторые участники вообще остаются с носом и разница между их вероятностями "небо и земля" :) Забыл - диаграмка появляется, если поля скрытые раскрыть :)
Ruslan Aliev
02.07.2009, 07:32
1 - в прикреплённом вами файле учитываются только два числа, хотя в приведённом примере учитываются три.
2 - Вы забыли про сдвиг при каждом делении
1 победитель (0743 mod 110) +1 = 307 074312
2 победитель (7431 mod 110) +1 = 003 074312
3 победитель (4312 mod 110) +1 = 380 074312- это не важно, просто 3 раза повторяется один и тот-же "несправедливый" процесс.
Дело в том что двузначное число получаемое из минут не может быть больше 60. А при сдвиге число может достигать 96. Я не буду сейчас сильно спорить так как еще не проанализировал ваш файл. Как на работу приду посижу над ним.
Ruslan Aliev
02.07.2009, 07:52
На скорую руку подправил файл. Все равно выходит не справедливо, даже более выделенно.
Файл с расчетами прикрепляю.
Nadir Zaitov
02.07.2009, 13:28
Все равно выходит не справедливо, даже более выделенно. Несправедливости ровно в 3 раза больше, что и ожидалось, если единичную несправедливость продублировать 3 раза.
Eldar Fattakhov
02.07.2009, 14:10
ровно в 3 раза больше
Фраза (в первоисточнике) - достойный кандидат для различных рубрик uForum. :)
Nadir Zaitov
02.07.2009, 14:16
Фраза (в первоисточнике) - достойный кандидат для различных рубрик uForum. Это как? Логическая ошибка?
vBulletin® v3.8.5, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot