結果
問題 | No.2973 シュニレルマン積分入門 |
ユーザー |
|
提出日時 | 2024-12-02 21:59:13 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 967 bytes |
コンパイル時間 | 229 ms |
コンパイル使用メモリ | 82,432 KB |
実行使用メモリ | 89,984 KB |
最終ジャッジ日時 | 2024-12-02 21:59:32 |
合計ジャッジ時間 | 18,078 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 25 WA * 5 |
ソースコード
import cmathimport mathfrom fractions import FractionN = int(input())M = 1 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * 10val = 0for k in range(M):num = cmath.exp(2 * k * N * math.pi * 1j / M)dnm = cmath.exp(4 * k * math.pi * 1j / M)dnm += cmath.exp(2 * k * math.pi * 1j / M)dnm += 10val += num / dnmval /= M# print(val)# これもだめdnm = 10**max(-N+1,0)num = round(val.real * dnm)print(num, dnm, sep='/')# Fraction で有理数近似しようと思ったけど精度が足りない# x = Fraction(val.real)# y = x.limit_denominator(10**(-N+1))# # print(y)# y_num = y.numerator# y_dnm = y.denominator# tmp = y_dnm# c2 = 0# c5 = 0# while tmp % 2 == 0:# c2 += 1# tmp //= 2# while tmp % 5 == 0:# c5 += 1# tmp //= 5# # print(c2, c5, tmp)# if c2 > c5:# y_num *= 5**(c2-c5)# y_dnm *= 5**(c2-c5)# elif c2 < c5:# y_num *= 2**(c5-c2)# y_dnm *= 2**(c5-c2)# print(y_num, y_dnm, sep='/')