2010-11-30 9 views
3

範囲があるときは、常に0を選びます。私は各セクションから1つの質問を選びたいと思います。範囲が2より大きい(0,2/2 +)の場合、シード値としてDateTime.Now.Millisecondsと.NETランダムクラスIがランダム質問ジェネレータを書いています0または1

ランダムクラスは、乱数を生成します。私は0の分と範囲の1の最大を与える場合でも、それは常に私が間違ってそれを使用して0

アムを返します。

他の選択肢があるかどうかを示唆してください。

おかげで、 マヘシュ

+1

コードを投稿してください。 – Lazarus

答えて

13

あなたはより多くのまたは最初のパラメータに等しいと比べて少ないが、2番目、と等しくないランダムな整数を返す、Random.Nextを呼んでいます。
具体的には、あなただけのゼロにできる範囲[0, 1)の整数、のために求めています。

0または1の整数を検索する場合は、Random.Next(0, 2)に電話する必要があります。

01の間の実数を検索する場合は、Random.NextDoubleに電話する必要があります。

+0

JavaメソッドMath.randomを変換する場合は、2行が必要です。ランダムr =新しいランダム(); r.NextDouble(); – MacGyver

0

MSDN(Random.Next(int)Random.Next(int, int))で読むと、上限は常に排他的です。それはあなたが行うことができます(包括的の両方の)0と1の間の数を取得するには、次のとおりです。

Random prng = new Random(); 
Console.WriteLine(prng.Next(0, 2)); //2 because it is exclusive 
0

MSDN:Random.Nextメソッド(のInt32)が指定された最大値より小さい非負の乱数を返します。 これを使用してください。

Random random = new Random(); 

for (int i = 0; i < 10; i++) 
{ 
    Console.WriteLine("Genereted value:{0}", random.Next(2)); 
} 
関連する問題