0、17、23、44、57、60、66、83、89、91、100 の整数の数値がありますが、その数値から 6 の数値をランダムにしたいのですが、どうすればよいですか? 0 から 100 までの 1 つの乱数のみを表示できますが、選択した数値から 6 つの数値を表示する方法がわかりません。教えてください。
質問する
392 次
4 に答える
2
配列から繰り返しなしで 6 つの数字を選びたい場合は、Knuth-Fisher–Yates shuffleを使用して配列をシャッフルし、最初の 6 つの数字を取得します。
int data[] = {0, 17, 23, 44, 57, 60, 66, 83, 89, 91, 100};
// Knuth-Fisher-Yates
for (int i = 10 ; i > 0 ; i--) {
int n = rand() % (i+1);
int tmp = data[i];
data[i] = data[n];
data[n] = tmp;
}
配列の最初の 6 つの要素にはdata
、元の 11 要素の配列からのランダムな選択が含まれます。
于 2012-08-24T12:39:50.137 に答える
1
数値を配列に入れます。乱数ジェネレーターを使用して、配列の長さよりも 0 ~ 1 小さい乱数を取得し、そのインデックスの数値を取得します。
それはそれを行う1つの方法にすぎません。
于 2012-08-24T12:34:54.683 に答える
1
次のコードの乱数を配列にフェッチするには、次のコードが役立つ場合があります
[array objectAtIndex: (random() % [array count])]
これが例です
NSUInteger firstObject = 0;
for (int i = 0; i<[myNSMutableArray count];i++) {
NSUInteger randomIndex = random() % [myNSMutableArray count];
[myNSMutableArray exchangeObjectAtIndex:firstObject withObjectAtIndex:randomIndex];
firstObject +=1;
}
于 2012-08-24T12:37:42.787 に答える
0
この投稿を参照してください: Objective-C で乱数を生成する
これを行う方法はたくさんあります。この特定のメソッドは、非常に優れた応答を示します。6 つの乱数を取得するには、関数を 6 回実行するだけです。
于 2012-08-24T12:36:17.953 に答える