c++ - 具有两个不同结果的 Rand 函数

标签 c++ random qt-creator

我的问题是关于 C++ 中的 rand 函数 请检查这个,为什么会产生不同的结果:

int a = 2 * rand()%5; // result = 0
int a = 2 * ( rand()%5 ); // result = 6

1号

2号

最佳答案

尽管您更希望 rand() 在第二次迭代中返回不同数字的概率是 1 - 1/(1 + RAND_MAX),第一个表达式被分组

(2 * rand()) % 5

这与第二组不同。例如,您可以看到第二个表达式的值始终为偶数。

*% 具有相同的优先级,因此关联性 开始发挥作用,这对两个运算符都是从左到右。

关于c++ - 具有两个不同结果的 Rand 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51397286/

相关文章:

c# - 在 Parallel.For 中使用 Random

javascript - 创建一个时间间隔,使函数在 JavaScript 中随机运行

c++ - 在 Windows 8 下使用 Tbb 构建错误 Qt creator

c++ - 我的 .exe 在 Qt Creator 中运行后立即崩溃

java - 来自 C++ 的 JNI 调用、FindClass 和导入

c++ - 为什么语言中内置了非放置 `new` 和 `delete` 而不仅仅是常规函数?

c++ - array<System::String ^> 标准 C++ 是怎样的?

链接器 hell 中的 C++ 新手

sqlite - 在sqlite中生成多个随机数

qt - 在运行模式下启用 Qt Creator 以创建核心文件?