Re[3]: обход чисел в хаотичной последовательности
От: subdmitry Россия  
Дата: 19.05.08 03:02
Оценка:
V>Кто сказал, что они обратимые? Операция & в конце обратимая? Где гарантия, что два числа не дадут один и тот же результат по модулю (1<<48)-1 после умножения?

Операцию & в конце надо рассматривать в паре с *. Это просто обрезание лишней части. Умножение по модулю 2**48 (не 2**48-1, аккуратнее!) действительно обратимо, если оно делается на нечетное число. В этом несложно убедиться, если a*n==b*n(mod 2**k), то (a-b)*n==0(mod 2**k), а это возможно только, если a==b (иначе умножение на нечетное n оставляет в произведении (a-b)*n единицу в первом двоичном разряде справа, где есть единица у (a-b).

V>Если даже это так, то насколько взятое наугад число дает хорошие характеристики получаемой случайной последовательности?


Отличные даст. Там такое перемешивание — каждый бит выхода зависит от каждого бита входа и по довольно сложному закону. Соседние числа в такой последовательности будут отличаться довольно радикально.
And if you listen very hard the alg will come to you at last.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.