で0〜255の間でRandome値を生成します。 Mersenne Twister, mt19937の標準実装を使用してこれを行うことができます。 Appleは、Swift on GameplayKitで実装を利用できます。あなたは同じシード値を使用してGKMersenneTwisterRandomSourceインスタンスと 互換性のある実装を初期化する場合は...、Apple's documentationによる
import GameplayKit
let source = GKMersenneTwisterRandomSource(seed: 123)
source.nextUniform() // => 0.3132002
source.nextUniform() // => 0.5559791
source.nextIntWithUpperBound(20) // => 13
let source2 = GKMersenneTwisterRandomSource(seed: 123)
source2.nextUniform() // => 0.3132002
source2.nextUniform() // => 0.5559791
source2.nextIntWithUpperBound(20) // => 13
を、両方の生成:あなたは遊び場で、その動作と反復可能性を確認することができます 番号の同じシーケンス。
これは、リンク先のmt19937サイトからダウンロードできるC++またはJavaリファレンスの実装と "一致"する必要があると言って読んでいます。
補遺
GameplayKitの実装では、再現性のある結果が得られますが、出力は広島からのリファレンス実装と一致していないように見えます。 Here's a port私は2,3年前にmt19937の標準的なCの実装をやったことをSwiftに伝えました。これにより、同じようにシードされたときのC参照実装と同じ結果が得られます。したがって、以前提供されていたリンクでJavaポートを利用できるようになるので、プラットフォーム間で一貫性のあるソリューションが得られるはずです。
出典
2016-05-08 00:05:46
pjs
各プラットフォームでそれをどのように実装するのが難しいですか?アンドロイド上では、新しいランダム()。nextInt() ' –
あなたのために助けになることができるリンクはここにあります。 【こちら】(http://stackoverflow.com/questions/24007129/how-does-one-generate-a-random-number-in-apples-swift-language) –
あなたが「一致」とはどういう意味ですか? – cyroxis