[#40890] windowsでコンテキストメニューの「印刷」を実行するには? — 岩崎 弘孝 <IH000667@...>
岩崎と申します。
7 messages
2005/07/01
[#40891] 配列をシャッフル — Hideo Konami <konami@...>
小波です。
25 messages
2005/07/01
[#40892] Re: 配列をシャッフル
— Hiroyuki Adachi <hiroyuki-a@...>
2005/07/01
array = [1, 2, 3, 4, 5]
[#40899] Re: 配列をシャッフル
— ktokita <ktokita-p@...>
2005/07/01
時田です
[#40904] slice の仕様とマニュアルの記述 — Hideo Konami <konami@...>
小波です。
6 messages
2005/07/02
[#40939] 値の集合内の中から値の大きな数個のみを取得するには? — 岩崎 弘孝 <IH000667@...>
岩崎と申します。
5 messages
2005/07/27
[#40941] オブジェクト配列の単一化は? — 小西 弘将 <konishi@...>
小西です。いつもお世話になります。
6 messages
2005/07/27
[#40955] irb --noreadline — Masatoshi SEKI <m_seki@...>
咳といいます。
10 messages
2005/07/29
[#40966] Solaris9上のREXML — Hirotaka Mizutani <hirotaka@...>
初めて投稿させて頂きます。水谷と申します。
6 messages
2005/07/29
[ruby-list:40910] Re: 配列をシャッフル
From:
Hideo Konami <konami@...>
Date:
2005-07-02 07:45:30 UTC
List:
ruby-list #40910
小波です。みなさん,どうもありがとうございます。 考えてみると,私の当初の意図は非復元無作為抽出で,それをshuffle という名 前のメソッドにしたところが,ちょっと誤解のもとだったようです。 非復元抽出の方は,要素を一個ランダムに抜き取っては,「母集団」の配列から その要素を消し去っていくというアイディア(小波原案,なかださん改訂)が まあ基本でしょう。 たけ(tk)さんの sort_by(rand) はそうでなくていきなりのランダマイズで,そ の短さにびっくり。知らなかったのですが 1.8.0 からの追加機能なんですね。 一方,シャッフルというのは,カードをランダムな分け目で分割してから,後半 を前半の前に置いてやるのがよく知られた手順です。この方向で考えてくださっ た人がいたので,かえって面白くなりました。(時田さん,永井さん,なかださん) このようなシャッフルでは,カードの並びの構造を,もし最後のカードの下に トップのカードがあるという環状の構造とみなすと,いくらやっても順序は 変更されないということになります。じっさい,途中で順序の反転を入れてない ものでは,ぐるぐる回りが発生します。 実際のシャッフルは,もう少し乱れの要素が入っていて,カードの塊の抜き取り を,下のほうではなくて,中ほどからおこなっているようです。このことによっ て幾分かのランダマイズが行われます。それをしつこくやることで十分な,ある いは「ほどよい」ランダマイズを達成しているわけです。実際にカードゲームを シミュレートしようとすると,こういう処理でリアリティを出すことになるかも 知れません。 安達さんのも,ランダムなスワップを繰り返すという部分的なランダマイズが基 本ですから,どの程度の回数繰り返せば十分なランダマイズになるのかに 興味を持って,統計的検定などを試みたのです。要素の数程度のスワップを 繰り返せば完璧にランダマイズされることがわかったのは,ちょっとした驚 きでした。 そんなわけで,私はガキのごとくに単純な好奇心野郎なので,ご不快を感じさせ たとしたらごめんなさい>安達さん と,なんだかえらそうに書いているように思われそうですが,みなさんのソース はぜんぶ読ませていただいて,実行してみました。これはとても勉強になりまし た。ありがとうございます。