我想生成包含隨機數從-100到100的列表,從-50到50C++的隨機數-100到100
for(int line=0;line<100;line++) //reads individual lines and compares them
{
ofs<<rand()%101 + (-50)<<endl;
}
到目前爲止我只是去的代碼我真的感謝它,如果有人能指出我正確的方向!
我想生成包含隨機數從-100到100的列表,從-50到50C++的隨機數-100到100
for(int line=0;line<100;line++) //reads individual lines and compares them
{
ofs<<rand()%101 + (-50)<<endl;
}
到目前爲止我只是去的代碼我真的感謝它,如果有人能指出我正確的方向!
請注意,你想從值-100到+100,這是一個範圍內200個值的,所以你真的想:
rand() % 200 // possible off-by-one error
這會給你0..199。爲了更接近你想要的範圍,減去99:
(rand() % 200) - 99
這會給你範圍-99 .. + 100。這更接近你想要的。
你應該能夠現在回去調整以獲得你真正想要的範圍。
更改爲%201
和+(-100)
。有一點實驗可以解決這個問題。
rand() %201 - 100
作品恰到好處
我可以指出你的''頭。此外,'std :: generate'的名字意味着很好。 –
chris
-100到100是201個數字的範圍,所以你需要'%201 - 100'。 '%201'可以給你0和200之間的數字,所以-100從那裏給你想要的結果範圍。 –