27 lines
No EOL
472 B
Text
27 lines
No EOL
472 B
Text
int xor (int x, int y) {
|
|
return ~(x [&] y) [&] (x [|] y);
|
|
}
|
|
|
|
int xor_shift_plus (int[] s) {
|
|
var x = s[0];
|
|
var y = s[1];
|
|
|
|
s[0] = y;
|
|
x = xor(x, x << 23);
|
|
x = xor(x, x >> 17);
|
|
x = xor(x, xor(y, y >> 26));
|
|
s[1] = x;
|
|
|
|
return x + y;
|
|
}
|
|
|
|
int program (int argc, string[] argv) {
|
|
var seed = new int[2];
|
|
for (var i=0; i < 2; i=i+1;) { seed[i] = 100 * (i + 1); }
|
|
|
|
print_int(xor_shift_plus(seed));
|
|
print_string("\n");
|
|
print_int(xor_shift_plus(seed));
|
|
|
|
return 0;
|
|
} |