Это ранняя форма генератора случайных чисел, часто используемая на миникомпьютерах и небольших мэйнфреймах. Вызов может выглядеть примерно так:
unsigned long long seedold = 0xA5A5A5A5A5A5A5A5;
unsigned long long seednew = 0X5A5A5A5A5A5A5A5A;
unsigned long long lltmp;
int finetune;
Произведите рандомизацию finetune
, синхронизируя клавиатуру или подобный действительно случайный, но медленный метод,
затем позвоните один раз так:
lltmp = DoBusyWork( seedold, seednew, finetune );
seedold = seednew;
seednew = lltmp;
Впоследствии используйте его в качестве PRNG, называя его так:
lltmp = DoBusyWork( seedold, seednew, 1 );
seedold = seednew;
seednew = lltmp;
Использовать seednew в качестве PRN.
Фон Нейман однажды выступал за такого рода вычисления для тестовых приложений "Монте-Карло", но позже передумал, когда узнал больше об анализе выходных данных PRNG.
-Аль.