[#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:40912] Re: 配列をシャッフル
From:
ktokita <ktokita-p@...>
Date:
2005-07-02 10:33:37 UTC
List:
ruby-list #40912
時田です 非復元無作為抽出のほうは話題に入っていないのでシャッフルの方の話を・・w カードのシャッフルの場合、乱れというか 切り方の種類を組み合わせたり バリエーションを交えてランダマイズされるように工夫することもありますね。 永井さんのshuffle1のように、真ん中の部分集合を上に重ねる方法や shuffle2のように、2つに分けた集合を互い違いに混ぜ合わせる方法や カードを下に置いて 手でぐるぐるかき回して混ぜ合わせる方法 山を2つに分けて上下を入れ替える(主に他人に切れ目を入れさせる) で、一番メジャーな 山を2つに分けて、下の山を上に持って行き、 さらに 今、分けて上に移動した部分集合に対して、2つに分けて下の部分を上 に移動。 それを繰り返して、上に移動する部分集合が十分小さくなったら 全体に対して、同じ操作を繰り返す。 シャッシャッシャッ、シャッシャッシャッシャッ、シャッシャッシャ というような擬音で表現される切り方ですね。 山全体を2つに分けて上下を入れ替える事を繰り返すだけでは、 ローテーションするだけなので、 分けた片方に対して、更に分割入れ替えを行うのでローテーションが起こらない し 最初の「シャッシャッシャッ」では2分割されただけで、あまり混ざっていなかっ た部分は山の下の方にあるので 2度目以降の「シャッシャッシャ」で混ざりやすくなる。 わかってみると、なるほどなって感じでした [ruby-list:40902]のソースで配列を (0..10000).to_a で、timeも10000にして 複数回試行してみると、初期の並び(array[x]+1 == array[x+1])は0〜5箇所程度 逆に 52枚のトランプにtime=10(私の感覚で、まぁ切れたかなと感じる程度) では array[x]+1 == array[x+1] が半数程度残っている感じでしたw まぁトランプの場合は、適度に切って、ある程度混ぜ合わせた後に、各メンバー に 順番に渡す場合が多いので問題になる事は少ないかなw