第四章 循环结构 两个黄鹂鸣翠柳,一行白鹭上青天。
伪随机数 每次调用rand()函数,返回一个随机整数,这个整数在0到RAND_MAX之间。
注意:使用rand()函数的时候要加上头文件 <stdlib.h>
先来看一个例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 #include <stdio.h> #include <time.h> int main () { srand (time (NULL )); int chosen = 0 ; chosen = rand (); printf ("生成的随机数是:%d" , chosen); return 0 ; }
如果我们想要[a, b]之间的整数该怎么生成呢?
rand()函数是从0开始的,所以我们的随机数要加上 a 才能保证是从 a 开始
假设我们有一个变量limit使得 生成的随机数在[0, limit)区间之间,
然后我们将这个随机数加上a,得到一个新的区间[a, limit + a),
如果要生成在区间[a, b]中的随机数,则 limit + a = b + 1
所以 limit = b - a + 1;
下面是代码实现:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #include <stdio.h> #include <stdlib.h> #include <time.h> int main () { srand (time (NULL )); int a = 0 ; int b = 0 ; printf ("请输入生成随机数的闭区间的起始值和结束值: \n" ); scanf ("%d %d" , &a, &b); printf ("生成的随机数为:%d" , a + rand ()%(b-a+1 )); return 0 ; }