27 строки
565 B
Plaintext
27 строки
565 B
Plaintext
#include <stdio.h>
|
|
|
|
typedef unsigned int uint;
|
|
|
|
// from cube2, zlib licensed
|
|
|
|
#define N (624)
|
|
#define M (397)
|
|
#define K (0x9908B0DFU)
|
|
|
|
static uint state[N];
|
|
static int next = N;
|
|
|
|
void seedMT(uint seed) {
|
|
state[0] = seed;
|
|
for (uint i = 1; i < N; i++) // if we do not do this precisely, at least we
|
|
// should coerce to int immediately, not wait
|
|
state[i] = seed = 1812433253U * (seed ^ (seed >> 30)) + i;
|
|
next = 0;
|
|
}
|
|
|
|
int main() {
|
|
seedMT(5497);
|
|
for (int i = 0; i < 10; i++) printf("%d: %u\n", i, state[i]);
|
|
return 0;
|
|
}
|