Asp Forum
Home
|
Login
|
Register
|
Search
Forums
>
comp.lang.ruby
Re: [QUIZ] Probable Iterations (#141
Urs Meyer
10/3/2007 5:28:00 PM
my first contribution... nothing spectacular.
/urs
#!/usr/bin/ruby
#
# 141 probable iterations
require 'optparse'
def generate(n, m, &blk)
if n == 0
yield []
else
1.upto(m) { |i|
generate(n-1, m) { |result| yield result + [i] }
}
end
end
options = {}
OptionParser.new do |opts|
opts.on("-v", "--verbose", "verbose") { |v| options[:verbose] = v }
opts.on("-s", "--samples", "show samples") { |v| options[:samples] = v }
end.parse!
if ARGV.length != 2
STDERR.puts "usage: #{$0} [-s|-v] n k"
exit
end
n = ARGV[0].to_i
k = ARGV[1].to_i
possible = desired = 0
# generate all possible solutions of throwing n dice
generate(n, 6) { |soln|
possible += 1
# selection criteria: at least k fives
found = soln.select{ |i| i==5 }.size >= k
desired += 1 if found
puts "%10d" % possible + " " + soln.inspect + (found ? " <==" : "") if ( options[:verbose] || options[:samples] && possible % 50000 == 1)
}
puts
puts "Number of possible outcomes is #{possible}"
puts "Number of desired outcomes is #{desired}"
puts
puts "Probability is #{desired.to_f/possible}"
--
GMX FreeMail: 1 GB Postfach, 5 E-Mail-Adressen, 10 Free SMS.
Alle Infos und kostenlose Anmeldung:
http://www.gmx.net/de/g...
Servizio di avviso nuovi messaggi
Ricevi direttamente nella tua mail i nuovi messaggi per
Re: [QUIZ] Probable Iterations (#141
Inserendo la tua e-mail nella casella sotto, riceverai un avviso tramite posta elettronica ogni volta che il motore di ricerca troverà un nuovo messaggio per te
Il servizio è completamente GRATUITO!
x
Login to ForumsZone
Login with Google
Login with E-Mail & Password