Неслучайность младших битов

Нужно получить последовательность из миллиона чисел согласно алгоритму, описанному Д. Кнутом в его книге "Искусство программирования". Формула: введите сюда описание изображения

Все числа в данной последовательности на самом деле не случайны, так как самый младший бит, отвечающий за чётность, просто чередуется. Вопрос: как это можно исправить?

// Участок кода с генерацией последовательности:
 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;
}

Ответы (0 шт):