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

From: WATANABE Hirofumi <eban@...>
Date: 2003-09-18 02:17:29 UTC
List: ruby-list #38407
わたなべです。

HASHIMUKAI Toshikatsu <hashi@hokkai.or.jp> writes:

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

shuffleに関しては
  http://www.rubygarden.org/ruby?OneLiners
が参考になると思います。この方法も出てます。

また、scrambler one-linerというSubjectで現在ruby-talk MLでも
同じ話題で盛り上がっているので、こちらも参考になると思います。
  http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/82166

いまのところone-linerとしては
  http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/82189
の
  -pe 'gsub!(/\B\w+\B/){$&.split(//).sort_by{rand}.join}'
というのが一番短いようです。この場合は更に
  -pe 'gsub(/\B\w+\B/){$&.split(//).sort_by{rand}.join}'
とできるけど、まあそんなことはどうでもいいか。

-- 
わたなべひろふみ

In This Thread