なかだです。

At Thu, 18 Sep 2003 07:39:52 +0900,
HASHIMUKAI Toshikatsu wrote:
>   最近、下のスクリプトに関連したネタが転がっていたのですが
> (Googleで"Acocdrnig elgnsih unviesitry"のキーワードで検索したら出てきます)、
> このjumbleに本来の機能(文字をバラバラにする)を持たせるにはどう書けば
> いいのでしょう?

一度、一文字ずつ分けてから混ぜるのがいいんじゃないでしょうか。

  def jumble(word)
    word.split(//).inject([]) {|s, c| s[rand(s.size), 0] = c; s}.join
  end

マルチバイトを考えなくていいなら、pack/unpackのほうがやや速いか
も。

  def jumble(word)
    word.unpack("C*").inject([]) {|s, c| s[rand(s.size), 0] = c; s}.pack("C*")
  end

-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦