From 9c16873655a0c48efa5d85f745d178c24e83e7ee Mon Sep 17 00:00:00 2001 From: Giuseppe Bilotta Date: Sat, 28 Jul 2007 23:57:26 +0200 Subject: [PATCH] Optimize ChanceHash random picker --- mark2.rb | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/mark2.rb b/mark2.rb index 24dd4a6..4dd75b9 100755 --- a/mark2.rb +++ b/mark2.rb @@ -52,11 +52,18 @@ class ChanceHash end def random - make_picker unless @valid_pick - pick = rand(@total) - @picker.each { |ch, el| - return el if pick < ch - } + case @hash.size + when 0 + return nil + when 1 + return @hash.keys.first + else + make_picker unless @valid_pick + pick = rand(@total) + @picker.each { |ch, el| + return el if pick < ch + } + end end end -- 2.32.0.93.g670b81a890