[#40891] 配列をシャッフル — Hideo Konami <konami@...>

小波です。

25 messages 2005/07/01
[#40899] Re: 配列をシャッフル — ktokita <ktokita-p@...> 2005/07/01

時田です

[ruby-list:40902] Re: 配列をシャッフル

From: ktokita <ktokita-p@...>
Date: 2005-07-01 17:39:55 UTC
List: ruby-list #40902
んー、なんでreverseが入るのかがわからなかった
reverseするのではなく、
通常 切った片方 下の部分を更に分割して下の部分を上にのせる
この処理をすっかり忘れていました^^;

ですが、再起の頭がすっかり駄目になった気がする^^;
とりあえず、こんな感じでしょうか


def shuffle1(a)
  if a.size > 3 then
    x = rand(a.size-1)
    b = a.slice!(0..x)
    a = shuffle1(a)
  else
    return a
  end
  return a+b
end

def shuffle(a, time=1)
  time.times{
    a = shuffle1(a)
  }
  return a
end

array = ("a".."p").to_a
p shuffle(array, 5)



In This Thread