如何创建一个函数,在每个调用中生成一个随机整数?该数字必须尽可能最随机(根据均匀分布).它只允许使用一个静态变量和最多3个基本步骤,其中每个步骤仅包含arity 1或2的一个基本算术运算.
例:
int myrandom(void){
static int x;
x = some_step1;
x = some_step2;
x = some_step3;
return x;
}
Run Code Online (Sandbox Code Playgroud)
基本算术运算是+, - ,%,而不是xor,或左移,右移,乘法和除法.当然,不允许使用rand(),random()或类似的东西.