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);
 }
}

运行结果

 

posted @ 2018-11-08 20:17  C_hp  阅读(1454)  评论(0编辑  收藏  举报