C++ 使用给定的随机0-1生成器实现随机0-6生成器
在本文中,我们的主要目标是提出一种方法,使用给定的随机0-1生成器来实现随机0-6生成器。正如我们所知,
随机0-1生成器()函数返回0或1作为输出。同样,随机0-6生成器,顾名思义,给出0到6之间的任意随机数(包括0和6)。
还有一点要注意的是,随机0-6生成器应该生成介于1到6之间的随机数,概率相等。也就是说,获取任意数字的概率应始终相同。
示例
例如,随机0-6生成器在重复运行时提供的随机值或输出如下;
3 4 6 1 2 6 1 1 0
注意,数字重复出现,并且在范围内即0到6(包括两端)的任意数出现的概率相同。
问题陈述
实现一个函数,该函数使用random01Generator()函数生成0到6之间(包括两端)的数字。所有数字应具有相同的出现机会。
方法
在这种情况下,目标是在指定的范围内生成随机数。鉴于范围是从0到6,包括数字0和6。在这里我们使用rand函数。为了创建需要随机事件的模拟、游戏和其他活动,我们经常需要在代码中使用rand函数。
例如,在骰子游戏中如果没有随机事件,当我们掷骰子时,我们将始终得到相同的一面,这将提供不利的结果。因此,我们可以看到对于我们来说拥有访问随机数生成器是必需的。即生成随机数的rand函数。
什么是rand函数
cstdlib标准库的rand函数返回介于0和RAND MAX之间的伪随机数。关于RAND MAX,它是一个依赖于环境的值,表示由rand函数返回的最大值。
在我们的例子中,由于范围是0到6,所以RAND MAX是6。所以这里rand函数每次运行程序时返回0到6之间(包括两端)的一个随机整数。
算法
下面是实现一个使用rand函数生成0到6之间(包括两端)的数字的函数的算法。
第1步 :开始
第2步 :设置n = 1并定义变量random。
第3步 :选择一个范围。这里设置为0和6。
第4步 :使用rand()函数。
第5步 :返回随机值。
第6步 :停止
给出下面的一个简单的C++程序,使用rand函数生成0到6之间的随机整数。
示例
#include <iostream>
#include <cstring>
#include <cstdlib>
using namespace std;
int main() {
int n=1, random; //set n equals 1
// print a random number using rand function
cout << "Random number between 0 and 6\n";
while(n--){
random = rand()%6 + 1; //set the RAND MAX, that is 6
cout << random << " "; //return a random integer
}
return 0;
}
输出
执行后,将会产生以下输出:
Random number between 0 and 6
2
结论
每次运行此程序都会返回0到6之间的随机整数。而且,在这个范围内的任何数字的出现概率是相等的。同样地,你可以给出任何你想要的范围,程序将返回给定范围内的随机整数。
在这篇文章中解决了获取0到6之间的随机整数的挑战。文章中提供了返回0到6之间的随机整数的C++编程代码。