On 12 March 2011 23:29, Conrad Taylor <conra...@gmail.com> wrote: > On Sat, Mar 12, 2011 at 1:07 PM, Colin Law <clan...@googlemail.com> wrote: >> >> On 12 March 2011 20:47, Michael Pavling <pavl...@gmail.com> wrote: >> > On 12 March 2011 14:23, Colin Law <clan...@googlemail.com> wrote: >> >> On 12 March 2011 13:42, Rob Biedenharn <r...@agileconsultingllc.com> >> >> wrote: >> >>> def usually_one >> >>> rand < 0.80 ? 1 : 2 >> >>> end >> >> >> >> Yes, much better. I suppose it is the old programmer in me >> >> instinctively avoiding floating point to save on processor time. A >> >> bit silly when everything has hardware floating point. >> > >> > Although I prefer Rob's suggestion as a better example of self >> > documented code; this is another alternative... >> > >> > def usually_one >> > [1,2,2,2,2][rand(5)] >> > end >> > >> >> Ha! Vindicated >> >> ruby-1.8.7-p302 > begin >> ruby-1.8.7-p302 > t=Time.now >> ruby-1.8.7-p302 ?> 1000000.times{(rand(100) + 120)/100} >> ruby-1.8.7-p302 ?> puts Time.now-t >> ruby-1.8.7-p302 ?> end >> 0.905431 >> >> ruby-1.8.7-p302 > begin >> ruby-1.8.7-p302 > t=Time.now >> ruby-1.8.7-p302 ?> 1000000.times{rand < 0.80 ? 1 : 2} >> ruby-1.8.7-p302 ?> puts Time.now-t >> ruby-1.8.7-p302 ?> end >> 1.712769 >> >> ruby-1.8.7-p302 > begin >> ruby-1.8.7-p302 > t=Time.now >> ruby-1.8.7-p302 ?> 1000000.times{ [1,2,2,2,2][rand(5)] } >> ruby-1.8.7-p302 ?> puts Time.now-t >> ruby-1.8.7-p302 ?> end >> 1.150481 > > Here's my number from within and outside IRB from Mac OS 10.6.6: > ruby-1.9.2-head :001 > begin > ruby-1.9.2-head :002 > t=Time.now > ruby-1.9.2-head :003?> 1000000.times{(rand(100) + 120)/100} > ruby-1.9.2-head :004?> puts Time.now-t > ruby-1.9.2-head :005?> end > from-irb: 0.16657 from-ruby-script: 0.159452
I think I need a new laptop. Colin > ruby-1.9.2-head :006 > begin > ruby-1.9.2-head :007 > t=Time.now > ruby-1.9.2-head :008?> 1000000.times{rand < 0.80 ? 1 : 2} > ruby-1.9.2-head :009?> puts Time.now-t > ruby-1.9.2-head :010?> end > from-irb: 0.280634 from-ruby-script: 0.150247 > ruby-1.9.2-head :011 > begin > ruby-1.9.2-head :012 > t=Time.now > ruby-1.9.2-head :013?> 1000000.times{[1,2,2,2,2][rand(5)]} > ruby-1.9.2-head :014?> puts Time.now-t > ruby-1.9.2-head :015?> end > from-irb: 0.521992 from-ruby-script: 0.35944 > -Conrad > >> >> > ...there's many ways to skin a cat :-) >> >> But how fast can you do it? >> >> Colin >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Ruby on Rails: Talk" group. >> To post to this group, send email to rubyonrails-talk@googlegroups.com. >> To unsubscribe from this group, send email to >> rubyonrails-talk+unsubscr...@googlegroups.com. >> For more options, visit this group at >> http://groups.google.com/group/rubyonrails-talk?hl=en. >> > > -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Talk" group. > To post to this group, send email to rubyonrails-talk@googlegroups.com. > To unsubscribe from this group, send email to > rubyonrails-talk+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/rubyonrails-talk?hl=en. > -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk@googlegroups.com. To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.