随机和发生

时间:2011-11-16 23:33:24

标签: ruby random iteration

我正在尝试创建一个程序:

  • 要求用户输入最大值。范围(a)
  • 要求用户输入最大值。迭代次数(b)
  • N = 1(N是迭代次数)

然后

  • 对于N< b生成0到
  • 之间的随机数
  • 计算生成的每个数字的出现次数

并在最后

  • put number =该数字的出现次数 (每个号码)

我尝试了很多东西,但我真的觉得我太复杂了,显然不能正常工作。

puts "range :"
$Sur = gets.to_f

$N = 1
$Iterations = 1

while ($N <= 50) do

  def rand
    num1 = 0
    num2 = 0
    num3 = 0
    num4 = 0
    num5 = 0
    num6 = 0
    num7 = 0
    num8 = 0
    num9 = 0
    num10 = 0

    r = [*0..$Sur].sample
    if (r == 1)
        num1 += 1
      elsif (r == 2)
        num2 += 1
      elsif (r == 3)
        num3 += 1
      elsif (r == 4)
        num4 += 1
      elsif (r == 5)
        num5 += 1
      elsif (r == 6)
        num6 += 1
      elsif (r == 7)
        num7 += 1
      elsif (r == 8)
        num8 += 1
      elsif (r == 9)
        num9 += 1
      elsif (r == 10)
        num10 += 1
    end

    occurence = array.[](num1, num2, num3, num4, num5, num6, num7, num8, num9, num10)
    puts "#{occurrence}"

  end

puts "r = #{rand}"+"  i = #{$Iterations}"
puts "Nombre de fois 1=#{num1}"
puts "Nombre de fois 2=#{num2}"
puts "Nombre de fois 3=#{num3}"
puts "Nombre de fois 4=#{num4}"
puts "Nombre de fois 5=#{num5}"
puts "Nombre de fois 6=#{num6}"
puts "Nombre de fois 7=#{num7}"
puts "Nombre de fois 8=#{num8}"
puts "Nombre de fois 9=#{num9}"
puts "Nombre de fois 10=#{num10}"

  $N += 1
  $Iterations = $N-1

end

  puts "_________________________________________________"
  puts "Fin de l\'algorithme."
  puts "\n"
  puts "N est superieur au maximum que vous avez entrer"
  puts "Nombre d\'iterations de N = #{$Iterations}"
  puts "_________________________________________________"

1 个答案:

答案 0 :(得分:2)

upper  = 10
count  = 50
result = Hash.new(0)

count.times do
  result[rand(upper)+1]+=1
end

(1..upper).each do |num|
  puts "Nombre de fois #{num} = #{result[num]}"
end