Линейные конгруэнтные генераторы являются одним из самых старых и простых методов:
int seed = 123456789;
int rand()
{
seed = (a * seed + c) % m;
return seed;
}
Только несколько инструкций с основными арифметическими операциями, это все, что вам нужно.
Помните, что этот алгоритм работает нормально, только если a , c и m выбраны особым образом!
Чтобы гарантировать максимально возможный период этой последовательности, c и m должны быть взаимно простыми, a -1 должно делиться на все простые множители м , а также на 4, если м делится на 4.
Некоторые примеры параметров показаны в Википедии: например, ANSI C для некоторых компиляторов предлагает m = 2³¹, a = 1103515245 и с = 12345.