权振东你还记得吗:不用Rnd函数,怎么用基本的程序语言设计一个随机的函数

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/05 05:25:36
楼下的,算法一呢

算法2:线性同余法
1)将种子设为X0,
2)用一个算法X(n+1)=(a*X(n)+b) mod c产生X(n+1)
一般将c取得很大,可产生0到c-1之间的伪随机数
该算法的一个缺点是会出现循环。
给个C的程序
unsigned int seed = 0; //seed 为种子,要设为全局变量
void mysrand(int i) //初始化种子
{
seed = i;
}

int myrand() //产生0--32767之间的随机数
{
seed = (1000*seed+2008) % 32768;
return seed;
}

调用实例
#include <time.h>
main()
{
int a;
mysrand(time(0));
a = myrand();
return 0;
}

还有个办法:定义一个指针,让它在内存里胡指八指,弄出来的就是个随机数。呵呵。