fork download
  1. #coding:utf-8
  2.  
  3. def func n , r
  4. ((n-r)...n).map do |i|
  5. puts "#{i} からB落とす"
  6. if rand(30) == 0
  7. puts "#{i}階で卵Bが割れた"
  8. puts "割れないのは#{i-1}階まで"
  9. return
  10. end
  11. end
  12. puts "卵Bは割れなかった"
  13. puts "割れないのは#{n-1}階"
  14. end
  15.  
  16. def f n , r , limit
  17. if n > limit
  18. puts "卵Aは#{limit}階でも割れなかった"
  19. return
  20. end
  21. puts "#{n} からA落とす"
  22. if rand(2) == 0
  23. puts "#{n}階で卵Aが割れた"
  24. func n , r - 1
  25. return
  26. else
  27. r /= 2
  28. r = 1 if r.zero?
  29. f n + r , r , limit
  30. end
  31. end
  32. f 50 , 50 , 100
  33.  
Success #stdin #stdout 0s 6264KB
stdin
Standard input is empty
stdout
50 からA落とす
75 からA落とす
75階で卵Aが割れた
51 からB落とす
52 からB落とす
53 からB落とす
54 からB落とす
55 からB落とす
56 からB落とす
57 からB落とす
58 からB落とす
59 からB落とす
60 からB落とす
61 からB落とす
62 からB落とす
63 からB落とす
64 からB落とす
65 からB落とす
66 からB落とす
67 からB落とす
68 からB落とす
69 からB落とす
70 からB落とす
71 からB落とす
72 からB落とす
73 からB落とす
74 からB落とす
卵Bは割れなかった
割れないのは74階