LINUX.ORG.RU

История изменений

Исправление www_linux_org_ru, (текущая версия) :

пример простой:

1. идем по стеку и заполняем его a[j] = a[j-1]*5 mod (2 power 32)

2. f(последняя) = 1 например

3. идем по стеку обратно, вычисляя например

f(j) = ( f(j+1) xor a[j] xor ((a[j]&const) << 3) )+ a[j]

можно было бы взять f(j) = f(j+1)+a[j] но х.з. умный компилятор это соптимизует

это будет очень быстро (стек порядка 1М вызовов), поэтому в объемлющем цикле все эти значения f складываем в массив, откуда потом печатаем рандомное значение, чтобы компилятор не вздумал оптимизировать

Исходная версия www_linux_org_ru, :

пример простой:

1. идем по стеку и заполняем его a[j] = a[j-1]*5 mod (2 power 32)

2. f(последняя) = 1 например

3. идем по стеку обратно, вычисляя например

f(j) = f(j+1)^a[j]^( (a[j]&const) << 3) +a[j]

можно было бы взять f(j) = f(j+1)+a[j] но х.з. умный компилятор это соптимизует

это будет очень быстро (стек порядка 1М вызовов), поэтому в объемлющем цикле все эти значения f складываем в массив, откуда потом печатаем рандомное значение, чтобы компилятор не вздумал оптимизировать