Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.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++中求随机数的平均值从1到50_C++_C++14 - Fatal编程技术网

在C++中求随机数的平均值从1到50

在C++中求随机数的平均值从1到50,c++,c++14,C++,C++14,我需要找到从1到10的50个随机数,然后找到平均数,我知道如何找到随机数,但我在平均数方面遇到了困难,这就是我目前为止所拥有的 srand(time(0)); for (int i = 1; i < 51; i++) { cout << 1 +(rand()%10) << endl; } 声明一个变量和,并不断向其中添加生成的随机数,最后将其除以50: 整数和=0; 对于int i=1;i

我需要找到从1到10的50个随机数,然后找到平均数,我知道如何找到随机数,但我在平均数方面遇到了困难,这就是我目前为止所拥有的

srand(time(0));
for (int i = 1; i < 51; i++) {
    cout << 1 +(rand()%10) << endl;
}
声明一个变量和,并不断向其中添加生成的随机数,最后将其除以50:

整数和=0; 对于int i=1;i<51;i++{ 整数=1+兰德%10;
cout首先让我们定义计算平均值的公式。将生成的所有随机数相加,然后除以生成的数,在本例中为50。让我们使用n作为生成的随机数:

包括 int main { 常数int n=50; 整数和=0; 对于int i=0;iSTD::CUT< P>你可以尝试使用现代C++特征来生成随机数。首先,只使用一次来生成随机数生成器,在下面的情况下,它是基于梅森-捻斯特算法的随机数引擎,并且产生无符号整数。然后,使用前面提到的生成器来生成随机数。均匀分布在闭合区间上的teger值[1,10]

完整代码:

包括 包括 int main{ std::随机_装置rd; 标准:mt19937英国; 标准:均匀分布分布1,10; 整数和=0; 对于int i=0;i<50;++i{ 总和+=分布; } 双平均值=总和/50.0;
std::难道你不知道如何计算所有数字的总和吗?@churill累加这些数字就足够了,不需要存储所有数字。请不要使用rand。我们现在有。另请参见。@churill不确定这是否是你的意思,但运行平均数的数值稳定性较差,在没有舍入错误的情况下,你会得到相同的r结果。这和做一个近似值不完全一样。请先做数学。在不知道应该做什么的情况下编写代码是可能的,但不必要的困难。你知道如何用纸和笔计算平均值吗?是的,我在求和和和和与静态计算之间摇摆不定。你认为哪一个更好?我想我更喜欢在最后的计算中使用强制转换。这比在循环中进行一系列浮点加法更简单。如果int太小而无法容纳和,我可能会改变主意。正常循环将是0到小于N。