-1
我使用cstdlib和g ++中的rand和srand作爲編譯器。我在玩弄一些僞隨機數字,並且得到了一些意想不到的偏見結果。我很好奇,所以我寫了一個簡單的函數。預期的行爲將會產生一個介於1到10之間的隨機數字並被打印出來以便屏幕顯示100x。平均值的期望值應該是5.然而,當我運行這個函數時,它將產生一個介於1和10之間的單個隨機數,並將其打印100x,其平均值等於產生的隨機數。C++和rand/srand行爲沒有按預期執行
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
float bs(){
float random;
srand(time(0));
random = rand() % 10 + 1;
return random;
}
int main(){
float average;
float random;
for (int i = 1; i < 101; ++i)
{
random += bs();
cout << random << endl;
}
average = random/100;
cout << average << endl;
return 0;
}
如果從BS = 7的初始返回它將停留7爲循環的持續時間和每次BS()被調用。輸出將自己添加到100x,平均值將等於gasp 7.這裏發生了什麼?
是的,這解決了它。謝謝! – beastface5000