文書   >   Swift   >   Swift 標準ライブラリ   >   Collections   >   Range   >   shuffled(using:)
汎用インスタンスメソッド
shuffled(using:)
与えられたジェネレータを乱数のソースとして使用し、シャッフルしたシーケンスの要素を返します。
宣言
func shuffled<T>(using generator: inout T) -> [Bound] where T : RandomNumberGenerator
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
パラメータ
generator | シーケンスをシャッフルするときに使用する乱数ジェネレータ。 |
戻り値
このシーケンスの要素をシャッフルされた順序で並べた配列。
議論
このメソッドを使用して、カスタム乱数ジェネレータを使用しているときにシーケンスの要素をランダムにできます。たとえば、その範囲で shuffled(using:) メソッドを呼び出すことによって、0〜9 の間の数値をシャッフルすることができます。
let numbers = 0...9
let shuffledNumbers = numbers.shuffled(using: &myGenerator)
// shuffledNumbers == [8, 9, 4, 3, 2, 6, 7, 0, 5, 1]
複雑さ:O(n)、ここで n はシーケンスの長さです。
シーケンスをシャッフルするために使用されるアルゴリズムは、将来のバージョンの Swift で変更される可能性があります。プログラムを実行するたびに同じシャッフルされた順番になるジェネレータを渡す場合、異なるバージョンの Swift を使用してプログラムをコンパイルすると、そのシーケンスが変わることがあります。
以下も見よ
要素の並べ替え
シーケンスの要素を並べ替えて返します。
Element が Comparable に準拠する場合使用可能です。
func sorted(by: (Bound, Bound) -> Bool) -> [Bound]
与えられた predicate (述語) を要素間の比較として使用し、並べ替えたシーケンスの要素を返します。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
func reversed() -> ReversedCollection<Range<Bound>>
コレクションの要素を逆の順序に表示するビューを返します。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
シーケンスの要素をシャッフルして返します。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。