結果
問題 | No.58 イカサマなサイコロ |
ユーザー | gigurururu |
提出日時 | 2014-11-05 09:05:18 |
言語 | Ruby (3.3.0) |
結果 |
AC
|
実行時間 | 83 ms / 5,000 ms |
コード長 | 1,297 bytes |
コンパイル時間 | 183 ms |
コンパイル使用メモリ | 7,552 KB |
実行使用メモリ | 12,416 KB |
最終ジャッジ日時 | 2024-06-09 19:08:31 |
合計ジャッジ時間 | 1,610 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 81 ms
12,416 KB |
testcase_01 | AC | 79 ms
12,416 KB |
testcase_02 | AC | 77 ms
12,288 KB |
testcase_03 | AC | 79 ms
12,288 KB |
testcase_04 | AC | 81 ms
12,288 KB |
testcase_05 | AC | 82 ms
12,288 KB |
testcase_06 | AC | 78 ms
12,288 KB |
testcase_07 | AC | 80 ms
12,416 KB |
testcase_08 | AC | 81 ms
12,416 KB |
testcase_09 | AC | 83 ms
12,288 KB |
コンパイルメッセージ
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))#太郎が勝つパターン数/全パターン数