[ruby-list:38406] Re: rnoizanmdig lteter odrer (randomizing letter order)

From: HASHIMUKAI Toshikatsu <hashi@...>
Date: 2003-09-18 01:10:15 UTC
List: ruby-list #38406
  はしむかいです。

On Thu, 18 Sep 2003 09:00:50 +0900
nobu.nakada@nifty.ne.jp san wrote:
>>なかだです。
>>一度、一文字ずつ分けてから混ぜるのがいいんじゃないでしょうか。
>>
>>  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

  参考になります。

  スピードはともかくとして、こういうのを考えていたのですが、これって
厳密な意味で"random"にはならないんですかね(あまり数学的になるとついて
いけないのですが)。
--------
def jumble(word)
  word.scan(/./).sort{ rand <=> 0.5 }.to_s
end
--------


In This Thread