Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
均匀分布的随机整数 我必须编写一个C++程序,只有以下部分才有问题:_C++_Random - Fatal编程技术网

均匀分布的随机整数 我必须编写一个C++程序,只有以下部分才有问题:

均匀分布的随机整数 我必须编写一个C++程序,只有以下部分才有问题:,c++,random,C++,Random,[…]为此,您需要从 集合{0,1,…,9}上的均匀分布(这两个数必须 以相等的概率生成)[……] 我不知道数学和C++一样好,我也不允许使用C++ 11。我已经编写了以下简单代码,但我怀疑它是否正确:P //... srand(time(0)); int first_number = rand() % 10; int second_number = rand() % 10; //... 每个程序只能调用srand一次,而不是每次需要随机数时。对随机数使用模技巧通常不会给出均匀分布。因此,答案

[…]为此,您需要从 集合{0,1,…,9}上的均匀分布(这两个数必须 以相等的概率生成)[……]

我不知道数学和C++一样好,我也不允许使用C++ 11。我已经编写了以下简单代码,但我怀疑它是否正确:P

//...
srand(time(0));
int first_number = rand() % 10;
int second_number = rand() % 10;
//...

每个程序只能调用
srand
一次,而不是每次需要随机数时。对随机数使用模技巧通常不会给出均匀分布。因此,答案可能是不正确的。

这取决于你需要的是真正的均匀,还是非常接近。您的解决方案很接近,但并不完美

假设你使用微软的C++,它有一个你得0到7分的几率是3277/32768,而得8或9分的几率只有3276/32768


StackOverflow上有很多关于如何获得完美分布的问题,例如:这是你的家庭作业的一部分吗?这个问题可能有用(重复?)你看到两次调用srand吗?也许我应该给自己买一副更好的新眼镜。@JanGąser我不能从你的代码片段中分辨出来,但是如果在一个你多次调用的函数中,它会被多次调用。