2008-07-02

ruby写的生日问题

关键字: ruby
才学ruby三天,写了个生日概率问题,和理论结果不同,暂时不知道错在何处? 
问题:n个人中有两个人生日相同的概率是多少?
#生日问题
arr = Array.new
a=0
b=1
person_num = 20  # 人数
loopnum =0
num=0   #记录person_num内生日相同的次数
sum=50000  #循环次数
while loopnum<sum
while a<person_num  and b==1
  
     arr[arr.size] = rand(365) #365内的随机数
    
    for i in 0..arr.size
     
      if arr[i]==arr.last and i!=(arr.size-1)
        # if i<person_num  #person_num人数内相同时
         
              num+=1
          
         #end       
      b = 0
       break     
      end
    end
    a+=1
   end #end of a
      loopnum+=1
      a=0  
       arr.clear    #清空数组 
       b=1 
end #end of loopnum
  puts   person_num.to_s + "个人生日相同的概率是"+(Float(num*100)/Float(sum)).to_s+"%"
评论
发表评论

您还没有登录,请登录后发表评论

chenwar
搜索本博客
最近加入圈子
最新评论