f = [ 0.0000000000000000, 0.0833333333333333, 0.1666666666666667, 0.2500000000000001, 0.0833333333333329, 0.2499999999999999, 0.1666666666666671 ] e = [0.0000000000000000] MAX_N = 10**6 (1..MAX_N).each { |i| e << (1..6).sum { f[_1] * e[[i - _1, 0].max] } + 1 } gets.to_i.times { puts e[gets.to_i] }