1. ホーム
  2. c++

[解決済み] C++による1~10までの乱数の作成

2022-03-05 23:19:23

質問

このコードは1から10の間の乱数を生成することになっているが、毎回1が返される。

int random_integer;
int lowest=1, highest=10;
int range=(highest-lowest)+1;
random_integer = lowest + int(range*rand()/(RAND_MAX + 1.0));
cout << random_integer << endl;

コードのどこが問題なのか?

解決方法は?

range * rand() / (RAND_MAX + 1.0)

は、あなたが考えているようなことはしません。パレンを導入してください。

range * (rand() / (RAND_MAX + 1.0))

(ただし、この方法では 歪んだ分布 とはいえ)