Size: a a a

2021 March 31

A(

Andrey (@AndrewB330) in pro.algorithms
Anatoly Tomilov
На первом шаге если i = rand7 * rand7 <= 40, то для следующего шага сохраняются 1..4, как результат i = (i - 1) % 10 + 1, иначе (если i in 41..49) i - 40 (in 1..9).
а 1..4 и 1..9 разве тогда равновероятно выбираются?
источник

DP

Defragmented Panda in pro.algorithms
Defragmented Panda
а вот. третье решение. тоже 2 генератора

1) пишем в поток b001...b111

2) каждый шаг генерируем b001...b111. если b111 то пишем в поток b000
но так расход d7 большой =(
источник

AT

Anatoly Tomilov in pro.algorithms
Andrey (@AndrewB330)
а 1..4 и 1..9 разве тогда равновероятно выбираются?
1..4 равновероятно и 1..9 - равновероятно
источник

A(

Andrey (@AndrewB330) in pro.algorithms
но ведь во втором кейсе 1..9, мы например 1 не можем получить
источник

A(

Andrey (@AndrewB330) in pro.algorithms
41 != 7 * x
источник

A(

Andrey (@AndrewB330) in pro.algorithms
или я не понимаю?
источник

AT

Anatoly Tomilov in pro.algorithms
1..9 умножается на 1..7 - так можно?
источник

AT

Anatoly Tomilov in pro.algorithms
И первое и второе случайное значение распределено равномерно
источник

AT

Anatoly Tomilov in pro.algorithms
Anatoly Tomilov
1..9 умножается на 1..7 - так можно?
Получится 1..63
источник

A(

Andrey (@AndrewB330) in pro.algorithms
но при этом ты некоторые числа никогда не можешь получить
источник

A(

Andrey (@AndrewB330) in pro.algorithms
из этого диапазона 1...63
источник

A(

Andrey (@AndrewB330) in pro.algorithms
это не мешает?
источник

AT

Anatoly Tomilov in pro.algorithms
Какие?
источник

A(

Andrey (@AndrewB330) in pro.algorithms
простые
источник

AT

Anatoly Tomilov in pro.algorithms
Действительно.
источник

A(

Andrey (@AndrewB330) in pro.algorithms
нужна функция что два randX и randY переведет в rand(X*Y)
источник

A(

Andrey (@AndrewB330) in pro.algorithms
но умножение точно такой не является
источник

AT

Anatoly Tomilov in pro.algorithms
Вот и ответ. Спасибо
источник

A(

Andrey (@AndrewB330) in pro.algorithms
Andrey (@AndrewB330)
нужна функция что два randX и randY переведет в rand(X*Y)
а ну кстати стоп, Y*randX + randY
источник

AT

Anatoly Tomilov in pro.algorithms
Надо 7 * (1..9 - 1) + (1..7 - 1) + 1
источник