Unity(C#)でリスト・配列の中身をランダムに並び替え、ランダムに要素を取得
こちらのページの
リストの中身を並び替え
C#
1public static List<GameObject> Fisher_Yates_CardDeck_Shuffle(List<GameObject> aList,int seed) 2{ 3 4 System.Random _random = new System.Random(seed); 5 6 GameObject myGO; 7 8 int n = aList.Count; 9 for (int i = 0; i < n; i++) 10 { 11 int r = i + (int)(_random.NextDouble() * (n - i)); 12 myGO = aList[r]; 13 aList[r] = aList[i]; 14 aList[i] = myGO; 15 } 16 17 return aList; 18}
この文の
int r = i + (int)(_random.NextDouble() * (n - i));
この部分が毎回違う値になってるということくらいしかわかりません。なぜそうなるかがわからないです。なぜこれでリストの並び替えができるのかヒントでもいいので教えていただきたいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/11 05:02 編集
2019/11/11 05:56
2019/11/11 16:39