結果
| 問題 |
No.58 イカサマなサイコロ
|
| ユーザー |
|
| 提出日時 | 2014-11-05 09:05:18 |
| 言語 | Ruby (3.4.1) |
| 結果 |
AC
|
| 実行時間 | 100 ms / 5,000 ms |
| コード長 | 1,297 bytes |
| コンパイル時間 | 150 ms |
| コンパイル使用メモリ | 7,296 KB |
| 実行使用メモリ | 12,160 KB |
| 最終ジャッジ日時 | 2024-12-30 17:43:23 |
| 合計ジャッジ時間 | 2,042 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 10 |
コンパイルメッセージ
Syntax OK
ソースコード
# 前回までの目の合計ごとのパターン数 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))#太郎が勝つパターン数/全パターン数