新塘的M472有这个功能,另外还有软件产生随机数的算法。
//
// returns random integer from 1 to lim
//
int rand1(int lim)
{
static long a = 100001;
a = (a * 125) % 2796203;
return ((a % lim) + 1);
}
//
// returns random integer from 1 to lim (Gerhard's generator)
//
int rand2(int lim)
{
static long a = 1; // could be made the seed value
a = (a * 32719 + 3) % 32749;
return ((a % lim) + 1);
}
//
// returns random integer from 1 to lim (Bill's generator)
//
int rand3(int lim)
{
static long a = 3;
a = (((a * 214013L + 2531011L) >> 16) & 32767);
return ((a % lim) + 1);
}
|