わたなべです。 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}' とできるけど、まあそんなことはどうでもいいか。 -- わたなべひろふみ