結果
| 問題 |
No.301 サイコロで確率問題 (1)
|
| コンテスト | |
| ユーザー |
しらっ亭
|
| 提出日時 | 2015-11-13 23:54:48 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 1,197 bytes |
| コンパイル時間 | 204 ms |
| コンパイル使用メモリ | 12,544 KB |
| 実行使用メモリ | 24,376 KB |
| 最終ジャッジ日時 | 2024-09-13 15:48:53 |
| 合計ジャッジ時間 | 4,625 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | TLE * 1 -- * 1 |
ソースコード
def mul(a, b):
n = len(a)
c = [[0] * n for i in range(n)]
for i in range(n):
ai = a[i]
for k in range(n):
bk = b[k]
for j in range(n):
c[i][j] += ai[k] * bk[j]
return c
def pw(a, n):
if n == 1:
return a
y = pw(mul(a, a), n // 2)
if n % 2 == 0:
return y
else:
return mul(a, y)
def solve():
ma = [[1. / 6, 1. / 6, 1. / 6, 1. / 6, 1. / 6, 1. / 6],
[1, 0, 0, 0, 0, 0],
[0, 1, 0, 0, 0, 0],
[0, 0, 1, 0, 0, 0],
[0, 0, 0, 1, 0, 0],
[0, 0, 0, 0, 1, 0],
]
mb = [[1. / 6, 1. / 6, 1. / 6, 1. / 6, 1. / 6, 1. / 6, 1],
[1, 0, 0, 0, 0, 0, 0],
[0, 1, 0, 0, 0, 0, 0],
[0, 0, 1, 0, 0, 0, 0],
[0, 0, 0, 1, 0, 0, 0],
[0, 0, 0, 0, 1, 0, 0],
[0, 0, 0, 0, 0, 0, 1],
]
T = int(input())
for i in range(T):
N = int(input())
if N <= 6:
print(6)
continue
an = pw(ma, N)
bn = pw(mb, N)
a = sum(an[0][1:6])
b = bn[0][6]
print(b / (1 - a))
if __name__ == '__main__':
solve()
しらっ亭