私は関数を呼び出すことによって、いくつかの回数のランダムな一意の数値を生成するために以下のプログラムを書いていますが、最小限の変更で同じパターンを得ているようです。arc4random_stir()を素早く使用している理由についてのご意見や資料はありますか?
func generateRandom(withinNumber: Int) {
var i:Int = 0
var elements = Set<Int>()
while i != withinNumber {
let num:Int = Int(arc4random())%withinNumber + 1
if elements.count <= withinNumber && elements.contains(num) == false {
elements.insert(num)
}
else {
i = i-1
}
i=i+1
}
print(elements)
elements.removeAll()
}
generateRandom(withinNumber: 10)
プログラムを効果的に実行して、いくつかのランダムな一意の番号を生成するにはどうすればよいですか。
私には非常に役立つことをお知らせください。
あなたは「詰まる」と何かする必要があると思いますか? – pjs
最初は、それがユニークな乱数を生成するのに役立つと思った。そして、私はそれが異なるプログラミングステップで動作するようにしようとしていたが、私はその機能を理解していなかった...私に教えてください。事前に感謝 – Saiteja
あなたはそれを必要はありません。現在のマニュアルページには表示されません。また、[アーカイブされたレガシーmanページ](https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man3/arc4random_stir.3.html )arc4random_stir()関数は、/ dev/urandomからデータを読み込んで、arc4random_addrandom()を介してS-Boxesを並べ替えるために使用します。arc4random_stir()を呼び出す必要はありません。自分自身。 – pjs