From: "Victor \"Zverok\" Shepelev" Date: 2007-05-28T15:59:16+09:00 Subject: Some probabilities fun Hello all. Only wanted to show two short probability tricks, which can make use in games or other "random" environments. ----------------- #Trick 1: use ~ sign to say "approximately" class Numeric LEVEL = 0.3 def ~ self + self * rand(LEVEL) - self* LEVEL/2.0 end end #testing it: 10.times{puts "=" * ~15.0} #now you shall see 10 bars with random lengthes in range 15 +-15% #can be used, for example, in game charactes move: go(~10.0), turn(~15.0) #!warning: we still leave Fixnum#~ as byte negation #you can rewrite it too, but on your own risk! ---------------- #Trick 2: indeterminate event def probable(pct) yield if rand(0.99999999) < pct end res = 0 100.times{ probable(0.4){res += 1} } #100 times increase res with 40% probability p res #you should see something between 30 and 50... Isn't cool? :) V.