# 前回までの目の合計ごとのパターン数 pr # 今回振るさいころの目 rolls # 今回振った後の目の合計ごとのパターン数 戻り値 def dice pr,rolls # pr 0 1 1 1 1 1 1 # rolls # 1 0 1 1 1 1 1 1 # 2 0 1 1 1 1 1 1 # 3 0 1 1 1 1 1 1 # 4 0 1 1 1 1 1 1 # 5 0 1 1 1 1 1 1 # 6 0 1 1 1 1 1 1 # ret 0 1 2 3 4 5 6 6 5 4 3 2 1 # pr 0 1 1 1 1 1 1 # rolls # 4 0 1 1 1 1 1 1 # 5 0 1 1 1 1 1 1 # 6 0 1 1 1 1 1 1 # 4 0 1 1 1 1 1 1 # 5 0 1 1 1 1 1 1 # 6 0 1 1 1 1 1 1 # ret 0 0 0 0 0 2 4 6 6 6 6 4 2 rolls.map{|i|(pr+[0]*rolls.size).rotate(-i)}.transpose.map{|i|i.inject(:+)} end n=gets.to_i k=gets.to_i jiro=[1]#さいころを0回振ったときに出る目(index)の合計のパターン数・・・0が1回のみ n.times{ jiro=dice(jiro,(1..6)) } taro=[1] (n-k).times{ taro=dice(taro,(1..6)) } k.times{ taro=dice(taro,[*4..6]*2) } v=0 jiro_sum=jiro.map{|i|v+=i;v-i}#目の合計がindex以下になるパターン数 p jiro_sum.zip(taro).map{|i,j|i*j}.inject(:+).to_f/(6**(2*n))#太郎が勝つパターン数/全パターン数