仕事
正の整数で考えるとn以下の2^30コードは、あなたが選択した任意の方法で入力として必要があり、指定された出力ランダムの間の整数0とn、包括的に。生成する数値は、ランダムに均一に選択する必要があります。つまり、0toの各値はn等しい確率で発生する必要があります(「規則と警告」を参照)。
ルールと警告
あなたのコードは、あなたの言語または標準ライブラリに組み込まれた、一様にランダムであると主張する任意の乱数ジェネレータが実際に一様であると仮定できます。つまり、使用しているランダムソースの品質を心配する必要はありません。しかしながら、
- 使用しているランダムソースが均一である場合、コードはから
0まで均一なランダム整数を正しく出力することを確立する必要がありますn。 - 組み込みまたはライブラリのランダム関数を呼び出すときの引数は定数でなければなりません。つまり、入力値から完全に独立している必要があります。
- コードは、終了が保証されているのではなく、確率1で終了する場合があります。
ノート
randInt(0,n)組み込み関数またはライブラリ関数への引数として入力を受け取るため、無効です。rand()%nうではない一般的には一様乱数を与えます。betsegによって与えられた例として、場合intmax == 15やn = 10、あなたが取得する多くの可能性が高くなります0-5より6-10。floor(randomfloat()*(n+1))また、0と1の間の異なる浮動小数点値の有限数により、一般に均一な乱数を与えません。
rng()、0-100、ifn = 75、およびfunctionが提供される場合、rng()%750-25がより一般的です...)