Size: a a a

2021 April 03

CD

Constantine Drozdov in pro.algorithms
Anatoly Tomilov
В потоке, да. На 1 вызов rand10 как можно меньше вызовов rand7. Чтобы rejection как можно реже срабатывал, лучше сделать так, как у меня. В пределе получается примерно 1.183 вызовов rand7 на один rand10. Вывести этот предел аналитически я затрудняюсь.
вот хуже что я не достигаю, у меня почему-то
1.496050
источник

CD

Constantine Drozdov in pro.algorithms
и куда у меня энтропия течет
источник

AT

Anatoly Tomilov in pro.algorithms
Ещё выведи сгенерированные и проверь на равномерность распределения
источник

AT

Anatoly Tomilov in pro.algorithms
sort | uniq -c
источник

CD

Constantine Drozdov in pro.algorithms
Anatoly Tomilov
Ещё выведи сгенерированные и проверь на равномерность распределения
судя по всему сайт проверяет
источник

CD

Constantine Drozdov in pro.algorithms
полный мусор не пропускал
источник

AT

Anatoly Tomilov in pro.algorithms
Ща вчитаюсь
источник

EZ

Evgenii Zheltonozhsk... in pro.algorithms
Anatoly Tomilov
В потоке, да. На 1 вызов rand10 как можно меньше вызовов rand7. Чтобы rejection как можно реже срабатывал, лучше сделать так, как у меня. В пределе получается примерно 1.183 вызовов rand7 на один rand10. Вывести этот предел аналитически я затрудняюсь.
lg_7(10)?
источник

CD

Constantine Drozdov in pro.algorithms
Anatoly Tomilov
Ща вчитаюсь
ну там просто: мы всегда имеем равномерное [0; acc_max]. Если нас просят k, мы отрезаем группы длиной k в диапазоне
источник

AT

Anatoly Tomilov in pro.algorithms
Точно?
источник

EZ

Evgenii Zheltonozhsk... in pro.algorithms
Anatoly Tomilov
Точно?
похоже
источник

CD

Constantine Drozdov in pro.algorithms
Anatoly Tomilov
Точно?
да, разумеется, это сохранение количества информации
источник

EZ

Evgenii Zheltonozhsk... in pro.algorithms
Переслано от MSU Hub Bot
источник

AT

Anatoly Tomilov in pro.algorithms
Constantine Drozdov
и куда у меня энтропия течет
Если acc max = 7*7 = 49, то 9/49 вероятность rejection. Если накопить в аккумуляторе побольше разрядов, например 7 * 7 * 7 = 343, то, очевидно, rejection реже будет срабатывать, 343 % 10 = 3, 3 / 343 - это уже почти идеально
источник

CD

Constantine Drozdov in pro.algorithms
Anatoly Tomilov
Если acc max = 7*7 = 49, то 9/49 вероятность rejection. Если накопить в аккумуляторе побольше разрядов, например 7 * 7 * 7 = 343, то, очевидно, rejection реже будет срабатывать, 343 % 10 = 3, 3 / 343 - это уже почти идеально
так я же его не забываю, этот rejection
источник

CD

Constantine Drozdov in pro.algorithms
но вообще очень подозрительно, да
если сгенерировать rand11 и потом забрать rand10 я утверждаю, что либо число, либо у меня не осталось энтропии, но последнее явно неверно - у меня log(11/10) должно быть
источник

AT

Anatoly Tomilov in pro.algorithms
Constantine Drozdov
но вообще очень подозрительно, да
если сгенерировать rand11 и потом забрать rand10 я утверждаю, что либо число, либо у меня не осталось энтропии, но последнее явно неверно - у меня log(11/10) должно быть
Да. Тоже с этим "парадоксом" столкнулся
источник

AT

Anatoly Tomilov in pro.algorithms
Если выпало 41 на первом шаге, то странно получается
источник

CD

Constantine Drozdov in pro.algorithms
Тут есть понятная схема (привет арифметическому кодированию) - мы считаем, что нам выписывают вещественное число по разрядам и как только мы следующий разряд знаем мы его отдаем
источник

AT

Anatoly Tomilov in pro.algorithms
Меньше одного бита округлилось к нулю
источник