Неслучайность младших битов
Нужно получить последовательность из миллиона чисел согласно алгоритму, описанному Д. Кнутом в его книге "Искусство программирования".
Формула:
Все числа в данной последовательности на самом деле не случайны, так как самый младший бит, отвечающий за чётность, просто чередуется. Вопрос: как это можно исправить?
// Участок кода с генерацией последовательности:
unsigned long long m = 4294967296;
unsigned long long c = 397284255;
unsigned long long a = 3178274045;
srand(__rdtsc() % m);
numbers[0] = rand() % m;
for (i = 1; i < 1000000; i++) {
numbers[i] = ((numbers[i - 1] * a) + c) % m;
}