私が言うなら...
a = [1,2,3]
a.shuffle
puts a
...それは[1,2,3]を与えます。代わりに私が言うなら...
a=[1,2,3]
a.shuffle!
puts a
...それは私が置くと言うたびに私に新しい注文を与えます。だから私の質問は、シャッフルされた配列が入れられた順序をどのように保存するのですか?初めて[3,1,2]を返す場合は、この順序を維持する必要があります。これは意味がありますか?
これが私が話していることの例です。bを呼び出すたびに、異なる結果が得られます。
> a=[1,2,3]
=> [1, 2, 3]
> b=a.shuffle!
=> [1, 3, 2]
> b
=> [1, 2, 3]
> b
=> [2, 1, 3]
> b
=> [1, 3, 2]
> b
=> [3, 2, 1]
「b」は、シャッフル自体の結果ではなく、関数a.shuffleを参照しているようです。
答え:
TryRuby.orgでオンラインインタプリタを使用しているときに問題が発生しました。PCでインタラクティブRubyインタープリターを使用すると、正しい結果が得られます。みんなの助けに感謝します!