keke这一个的应用还是很重要的。

首先我们得明白,计算机是按照程序来执行的,“随机”这个概念,从根本上讲并不存在。

那么我们如何生成“随机数”?

#include<iostream>
using namespace std;
#include<cstdlib>//这个是rand的头文件
int main() {
    int i;
    for(i=0;i<10;i++)//生成10个随机数
        cout << rand()<<endl;
}

上面的示例程序执行结果(试了两次的)

           

结果,一模一样!!!(这要是彩票就好了,欸嘿嘿...

,当然这样子作为随机数绝对是不过关的,

接下来再引入srand函数,这个函数的重点就是来设置rand的种子的。种子不同的情况下,生成的随机数就不同

#include<iostream>
using namespace std;
#include<cstdlib>
int main() {
    int i;
    srand(1);//seed设置为1。
    for(i=0;i<10;i++)
        cout << rand()<<endl;
}
//执行情况为和上面一样。可以试一试seed设置为2哦。
//作为测试,我们将srand放到循环体内部试一试
#include<iostream>
using namespace std;
#include<cstdlib>
int main() {
    int i;
    for (i = 0; i < 10; i++) {
        srand(1);
        cout << rand() << endl;
    }
}
//可以得出,rand的结果,依赖于srand的种子

这里就有了一个新的问题,seed怎么来???

再加入一个好东西:time。//这里也可以人来输入seed(吼吼吼

#include<iostream>
using namespace std;
#include<cstdlib>
#include<ctime>//头文件是介个样子的
int main() {
    int i;
    srand(time(NULL));
    for (i = 0; i < 10; i++) {
        cout << rand() << endl;
    }
}

敲黑板!!!

这里又是一个重点啦!!!

可以看到,上面的随机数在我们看来可能是莫名奇妙的一串数字(哼(¬︿̫̿¬☆)人家才不莫名其妙呢

事实上,没有其他条件下的随机数,其取值范围是0--->RAND_MAX

如果我们要在这个范围再取一个小范围的数,(给你个小小的提示:mod)

代码如下:👇👇👇

#include<iostream>
using namespace std;
#include<cstdlib>
#include<ctime>
int main() {
	int i;
	srand(time(NULL));
	for (i = 0; i < 10; i++) {
		cout << rand()%100 << endl;//看这里看这里
	}
}
posted on 2020-01-14 20:59  夜隳·依子  阅读(118)  评论(0编辑  收藏  举报