我是靠谱客的博主 香蕉香菇,这篇文章主要介绍【菜鸟C++学习杂记】随机数以及猜数字游戏,现在分享给大家,希望可以做个参考。

        笔者之前主要开发语言为C#,随机数实现较为容易,一个Random函数即可。在C++猜数字游戏中,由于C++没有写好的Random函数,想要实现随机数则需要使用rand()以及srand()函数。

        1、一开始时只加了rand(),但是测试几次发现,从零到一百随机的结果一直为42,不禁陷入了沉思,遂查阅资料得出rand() 的内部实现是用线性同余法做的,它不是真的随机数,因其周期特别长,故在一定的范围里可看成是随机的,产生的是伪随机数字,每次执行时是相同的; 若想要实现真随机,需要用函数 srand() 初始化它。

        rand()使用方法为int rand(void)

复制代码
1
2
3
4
5
6
7
8
9
10
11
要取得 [a,b) 的随机整数,使用 (rand() % (b-a))+ a; 要取得 [a,b] 的随机整数,使用 (rand() % (b-a+1))+ a; 要取得 (a,b] 的随机整数,使用 (rand() % (b-a))+ a + 1; 通用公式: a + rand() % n;其中的 a 是起始值,n 是整数的范围。 要取得 a 到 b 之间的随机整数,另一种表示:a + (int)b * rand() / (RAND_MAX + 1)。 要取得 0~1 之间的浮点数,可以使用 rand() / double(RAND_MAX)。

        2、srand()为初始化随机数发生器,其用来设置产生随机数时的随机数种子,随机数种子seed若每次设置为相同时,则随机数也相同,由于每次程序运行的时间不同,所以可以引入time来实现不同的种子。rand()会根据srand()的种子值返回一个随机数。

        srand()使用方法为void srand(unsigned int seed)

        3、明白随机数产生之后,即可完成猜数字的游戏。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<iostream> #include <cstdlib>//rand #include <ctime>//time using namespace std; int main() { srand((int)time(0)); int num = rand() % 100 + 1; int guess = 0; cout << "请输入你猜的数字(范围为0-100)-->" << endl; cin >> guess; while (num != guess) { if (guess < num) { cout << "您猜的数字过小,请输入你猜的数字(范围为0-100)-->" << endl; cin >> guess; } else if (guess > num) { cout << "您猜的数字过大,请输入你猜的数字(范围为0-100)-->" << endl; cin >> guess; } } cout << "恭喜猜对" << endl; return 0; }

rand()几种随机范围参考:https://www.runoob.com/w3cnote/cpp-rand-srand.html

最后

以上就是香蕉香菇最近收集整理的关于【菜鸟C++学习杂记】随机数以及猜数字游戏的全部内容,更多相关【菜鸟C++学习杂记】随机数以及猜数字游戏内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部