3

以下は私のコードです:

uniform_int_distribution<>temp(-1,1);
default_random_engine e((unsigned int)time(0));
for(int a=0;a<50;a++){
cout<<temp(e)<<endl;
}

ご存知のとおり、番号の範囲は-1,0,1で、これらの3つの番号です。実際、結果には通常0と1しか含まれていません。このプログラムを数回実行すると、-1の数字が最後の数字になることはめったにありません。理由はわかりませんが、uniform_int_distributionには-1が含まれている必要がありますか?

4

1 に答える 1

4

これは明らかに修正されたバグです: http://connect.microsoft.com/VisualStudio/feedback/details/712984

ソフトウェアの更新をインストールせずに今すぐ回避策が必要な場合は、0 から 2 の間で生成し、後で 1 を減算してみませんか?

于 2012-08-09T05:11:45.703 に答える