Ruby 初心者スレッド Part 31at TECH
Ruby 初心者スレッド Part 31 - 暇つぶし2ch738:デフォルトの名無しさん
09/10/12 19:18:20
>>737が正解

739:デフォルトの名無しさん
09/10/12 19:21:25
俺俺ライブラリに

class Range
  def rand
     Kernel.rand(last-first+1)+first
  end
end

ってやっといて
(10..20).rand
するとか
標準じゃ無理

740:デフォルトの名無しさん
09/10/12 19:29:25
(10..20).to_a.sort_by{rand}.first

741:デフォルトの名無しさん
09/10/12 19:39:58
>>740短いのですがどうもちゃんと動作しないようです。
(1..2**30).to_a.sort_by{rand}.first
としましたが、結果がかえってこないのであきらめました。

742:デフォルトの名無しさん
09/10/12 20:07:39
>>741
そりゃ単に重すぎるだけだ
要素数が2**30の配列を作ってるんだから

そこまで大きな数を扱うのなら、小手先なしでrandした方がいいよ

743:デフォルトの名無しさん
09/10/12 20:08:59
だから>>737以外は実用妥当な乱数にならねえって

744:デフォルトの名無しさん
09/10/12 20:09:56
スレタイ100回読んで半年ROMっとけ

745:デフォルトの名無しさん
09/10/12 20:15:49
乱数発生部は組み込みに任すのが完全に正しい姿だな
累乗とか使って結果的に偏らせるのも成長段階には必要という説もあるが

746:デフォルトの名無しさん
09/10/12 20:17:49
最近/.並にゴミで埋まるようになってきたなここ。

747:デフォルトの名無しさん
09/10/12 20:23:23
>>746
2chも大差ないだろ

748:デフォルトの名無しさん
09/10/12 20:24:39
>>746
斬新な自己紹介ですね

749:デフォルトの名無しさん
09/10/12 20:40:35
こういうありきたりなループの終了条件に
!=を使うのは普通ですか?

count = 1
end_count = 10

while count != end_count
puts count
count = count + 1
end

750:デフォルトの名無しさん
09/10/12 20:44:09
へん

751:デフォルトの名無しさん
09/10/12 20:48:03
(1...10).each {|i| puts i}

じゃだめなん?

752:デフォルトの名無しさん
09/10/12 20:50:22
count が増えるとは限らないのだろ

loop do
 break if count == end_count
 ...
end

せめて break して欲しい

753:デフォルトの名無しさん
09/10/12 21:08:18
>>752
何でbreakの方を推すの? 横から見てもいまいちわからん
普通ここは、読みやすいuntilを推す流れじゃないかと思うんだけど

754:デフォルトの名無しさん
09/10/12 21:15:49
あまり使わないんですね。
気をつけます。ありがとうございます。

755:デフォルトの名無しさん
09/10/12 21:18:26
あまり使わないのか?
場合によりけりで特に使う使わないを気にする記述でもないと思うんだけど

756:デフォルトの名無しさん
09/10/12 21:21:14
>>740
単に非効率なやり方だろ
他人に教えるようなものじゃない

757:デフォルトの名無しさん
09/10/12 22:29:55
C++のSTLのイテレータに慣れてるとそう書きたくなるな。

758:デフォルトの名無しさん
09/10/12 22:33:38
読みやすい until などというものは存在しない
と思う


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch