2017-01-13 5 views
-4

10個の乱数を生成したいが、それらは一意でなければならない。私は何かを試しましたが、より良いもので私を助けてくれる人がいますか?ユニティのためにC#で10個の一意の整数を生成する

マイコード:

List<int> ran = new List<int>(); 
Random rnd = new Random(); 
public static int randomValue; 

int tempRandom; 
public int randomNum() 
{ 
    if(ran.Count == 0) 
    { 
     ran.Add(0); 
     ran.Add(1); 
     ran.Add(2); 
     ran.Add(3); 
     ran.Add(4); 
     ran.Add(5); 
     ran.Add(6); 
     ran.Add(7); 
    } 
    tempRandom = rnd.Next(0, ran.Count); 
    randomValue = ran[randomValue]; 
    ran.RemoveAt(tempRandom); 

    return randomValue; 
} 
+0

したがって、1と10の間に10の固有の整数が必要ですか? –

+2

これはあなたを助けるはずです http://stackoverflow.com/questions/273313/randomize-a-listt – hellogoodnight

+0

1から10までの10個の固有の整数... 10個の数字を考えています... –

答えて

1

は、これはあなたが言おうとしているものですか?そうでない場合は、さらにどのように意味するかを明記してください。このコードは、すでに使用されていない1から10までの数字を与える必要があります。このコードは10回しか動作しません。 (あなたが実際にあなたが求めているものをしたい場合についてではない)あなたの質問に

Random rnd = new Random(); 
List<int> usedNumbers = new List<int>(); 


public int RandomNum(){ 
    int number; 
    do { 
     number = rnd.Next(1, 10); 
    } while(usedNumbers.IndexOf(number) == -1); 

    usedNumbers.Add(number); 

    return number; 
} 
0

ストレートな答えは:

Random.Range(int.MinValue, int.MaxValue); 

これは、単純にすべての整数の範囲内のランダムな整数を生成します。 10個の数字の場合、重複の確率は非常に少なく、すべての数字が一意になります。

関連する問題