История изменений
Исправление 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 складываем в массив, откуда потом печатаем рандомное значение, чтобы компилятор не вздумал оптимизировать