前提・実現したいこと
C++を利用して-250から250の乱数を生成したいが、型変換の問題なのか期待するものが得られません。
発生している問題・エラーメッセージ
なし
該当のソースコード
C++
1#include <iostream> 2#include <random> 3 4 5int main() { 6 std::random_device rnd; 7 //結構な確率で4294967110くらいの大きな数字が返却される 8 std::cout << "異常な動作\n"; 9 for (int i = 0; i < 10; i++) { 10 std::cout << (rnd() % 500) - 250 << "\n"; 11 } 12 13 //500で割るだけなら0~499が返却される 14 std::cout << "\n\n正常な動作\n"; 15 for (int i = 0; i < 10; i++) { 16 std::cout << (rnd() % 500) << "\n"; 17 } 18}
試したこと
問題自体は解決してはいてint(rnd() % 500) - 250;とすればほしいものが出力はされるのですが理由が分かりません
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。