65,211
社区成员
发帖
与我相关
我的任务
分享
int randnum(void)
{
/*
* This function generates pseudo-random numbers between 0 and 999.
* It does this by working through a sequence of numbers that appear
* random (through the magic of math) and returns the last 3 digits
* to the user. Each time a new number in the sequence is generated,
* that number is recorded and is then used to generate the next
* number when the procedure is called again.
*/
static unsigned long prev_num = 1; /* the previous number in the sequence */
unsigned long new_num; /* the new number we are calculating */
/*
* The magical formula to calculate the next pseudo-random number
*/
new_num = ((16807 * prev_num) + 0) % 2147483647;
/*
* Record this number for next time
*/
prev_num = new_num;
/*
* Return the last 3 digits of the number
*/
return new_num % 1000;
}