Newer
Older
Ruby / #hello1.rb#
#!/usr/bin/env ruby
# -*- coding:utf-8 -*-
#timeoutとモンテカルロ法〜
require'timeout'
min=[0,0]
begin
  Timeout.timeout(5){
    loop do
      x=rand
      y=rand
      x**2+y**2<1.0?min[0]+=1: min[1]+=1
    end
  }
rescue Timeout::Error
  puts("timeout")
end

printf("%d: pi=%f\n",min[0]+min[1],min[0]*4.0/(min[0]+min[1]))