在 c++ 中模拟抛硬币时,模数如何工作?
How does modulo work when simulating a coin toss in c++?
#include <iostream>
#include <stdlib.h>
#include <ctime>
int main() {
// Create a number that's 0 or 1
srand (time(NULL));
int coin = rand() % 3;
// If number is 0: Heads
// If it is not 0: Tails
if (coin == 0) {
std::cout << "Headsn";
}
else {
std::cout << "Tailsn";
}
}
这是否意味着有1/2的机会?有人可以向我彻底解释这一点吗---->int coin = rand(( % 2;如果我将其更改为 int coin = rand(( % 3 会怎样;这到底是什么意思。有人可以用其他例子向我解释这一点吗?
简单地说,% 运算符将随机数缩放到您想要的范围。
例如,如果您以 rand(( % 3 的形式编写,则此行的输出将仅为 0、1 或 2。(尝试放置任何特定值来代替 rand(
( ( (- 如果你在 rand(( % 3 语句中输入 2 而不是 3,那么将只有两种可能的结果,即 0 或 1。
- 现在,对于代替 3 的任何数字,可能结果的数量变为 N,其中 N 代替 3。
在你的程序的情况下,你想要一个正面或反面,即两种可能的结果。通过在 rand(( % 3 语句中输入 2 而不是 3,变量 'coin' 只能有两个可能的值,即 0 或 1
尝试使用此代码:
#include<iostream>
#include<stdlib.h>
#include<ctime>
int main()
{
srand (time(NULL));
int rnd = rand();
int coin = rnd % 2;
std::cout<<"The value of coin is: "<<coin<<'n';
return 0;
}
您会发现,该程序只会打印以下任一内容:
- 硬币的价值是:0或
- 硬币的价值是:1
我希望你得到答案,胡安。
相关文章:
- QSqlquery prepare()和bindvalue()不工作
- 导入库可以跨dll版本工作吗
- 以螺旋方式打印矩阵的程序.(工作不好)
- 对象指针在c++中是如何工作的
- 为什么在Windows上的VS 2019和Clang 9中"size_t"在没有标题的情况下工作
- VSOMEIP-2个设备之间的通信(TCP/UDP)不工作
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- C++为线程工作动态地分割例程
- 为什么我的 std::ref 无法按预期工作?
- 布尔比较运算符是如何在C++中工作的
- SampleConsensusPrerejective(ext.RANSAC)是如何真正工作的
- 不确定要在我的main中放入什么才能使我的代码正常工作
- 为什么std::condition_variable notify_all的工作速度比notify_one快(对于随机请
- <<操作员在下面的行中工作
- 有人能解释一下为什么下界是这样工作的吗C++的
- ExtractIconEx:可以工作,但偶尔会崩溃
- C++中的memset函数工作不正常
- 当我在第一个循环中使用"auto"时,它工作正常,但是使用"int"它会给出错误,为什么?
- 链表c++插入,所有情况都已检查,但没有任何工作
- 当 int 方法工作正常时,void 方法有何不同,或者为什么我不能调用 void 方法?