乱数に関する 1 つの問題で立ち往生しています。を使用して乱数を生成してarc4random()
います。最初は0から9までの乱数を生成したい。だから私は使用しています:
int RandomNumber = arc4random() % 9;
それは良いです。ここで、8 を取得したとします。新しい乱数を 8 にしたくないので、次のようにしました。
NSMutableArray *aryTemp = [NSMutableArray new];
for (int i = 0; i < [aryTemp Count] < 9; i++) {
int RandomNumber;
do {
RandomNumber = arc4random() % 9;
}
while ([aryTemp containsObject:[NSNumber numberWithInt:RandomNumber]])
[aryTemp addObject:[NSNumber numberWithInt:RandomNumber]];
}
したがって、これが以前に生成された乱数であるかどうかである次の乱数をチェックするよりも、配列に追加するよりも乱数を生成していますか? そうでない場合は、配列に追加します。
いくつかの開始番号に対しては正常に機能しますが、その時点でいくつかのオプションを残した場合、希望の乱数を生成する機会が非常に少なくなり、冗長な乱数のためにループプロセスに多くの時間がかかります.
私が探しているのは 0、1、2、3、4、5、6、7、8、9 の乱数が欲しい 最初に 6 を取得した場合、次回は乱数はこれらの数字に 0 のみである必要があります。 1、2、3、4、5、7、8、9