C语言产生随机数(伪)
C语言的获取随机数的函数为rand(), 可以获得一个非负整数的随机数。要调用rand需要引用头文件stdlib.h。
要让随机数限定在一个范围,可以采用模除加加法的方式。
要产生随机数r, 其范围为 m<=r<=n,可以使用如下公式:
rand()%(n-m+1)+m
其原理为,对于任意数,
0 <= rand()%(n-m+1) <= n-m
(即rand()%(n-m+1)生成的随机数是在0到n-m之间的)
于是
0+m <= rand()%(n-m+1)+m <= n-m+m
(于是给这个随机数加上m就可以得到m到n-m之间的随机数)
即
m<=rand()%(n-m+1)+m<=n
示例代码
#include<stdio.h> #include<stdlib.h> #include<time.h> void main() //生成10个在77-100之间的随机数 { int random, i; srand(time(NULL)); for(i=0; i<10; ++i) { random = 77 + rand() % 24;// 24 = 100-77+1 printf("%d ",random); } }
运行结果
不积小流无以成江河