#17658: python


imsubaruisme@gmail.com (蔡月昴 Emiliatan·Maji·Tenshi)

學校 : 國立嘉義高級中學
編號 : 96365
來源 : [223.139.254.238]
最後登入時間 :
2020-03-18 01:00:23
e024. 少年πの超大數運算(1) -- π | From: [36.236.62.140] | 發表日期 : 2019-05-02 22:23

請問python要怎麼做才可以壓到一秒內?

我試過decimal但是我不知道怎麼把科學記號取消掉。

求大大解答

 
#17662: Re:python


314159265358979323846264338327 ... (少年π)

學校 : 臺北市私立延平高級中學
編號 : 69058
來源 : [223.137.74.225]
最後登入時間 :
2024-04-18 19:26:56
e024. 少年πの超大數運算(1) -- π | From: [203.72.178.252] | 發表日期 : 2019-05-03 17:17

請問python要怎麼做才可以壓到一秒內?

我試過decimal但是我不知道怎麼把科學記號取消掉。

求大大解答

我看過你的原始碼
問題如下:
Decimal的prec(有效位數)預設為28位

但這題最大到10^500000,不能使用預設的

可以用getcontext或setcontext來設定prec

提醒一下:若是整數運算(不出現小數點),prec至少要是(最大測資位數+1)

 

 

 
#17664: Re:python


imsubaruisme@gmail.com (蔡月昴 Emiliatan·Maji·Tenshi)

學校 : 國立嘉義高級中學
編號 : 96365
來源 : [223.139.254.238]
最後登入時間 :
2020-03-18 01:00:23
e024. 少年πの超大數運算(1) -- π | From: [122.121.158.84] | 發表日期 : 2019-05-03 17:54

  File "/4697584/code_4697584.py", line 5, in 
    getcontext().prec = 10 ** 500000 + 1
OverflowError: Python int too large to convert to C ssize_t


爆掉了OAO
 
#17666: Re:python


asnewchien@gmail.com (david)

學校 : 不指定學校
編號 : 68108
來源 : [1.168.27.116]
最後登入時間 :
2024-03-31 17:58:15
e024. 少年πの超大數運算(1) -- π | From: [61.223.56.105] | 發表日期 : 2019-05-03 18:11

  File "/4697584/code_4697584.py", line 5, in 
    getcontext().prec = 10 ** 500000 + 1
OverflowError: Python int too large to convert to C ssize_t


爆掉了OAO



n^m 預期有多長

getcontext().prec 就設多大

 
#17668: Re:python


imsubaruisme@gmail.com (蔡月昴 Emiliatan·Maji·Tenshi)

學校 : 國立嘉義高級中學
編號 : 96365
來源 : [223.139.254.238]
最後登入時間 :
2020-03-18 01:00:23
e024. 少年πの超大數運算(1) -- π | From: [122.121.158.84] | 發表日期 : 2019-05-03 22:10

getcontext().prec = 10 ** 500000 + 1

我設定成測資的最大位數,但是出現了下面的錯誤訊息 。゚(゚´ω`゚)゚。

OverflowError: Python int too large to convert to C ssize_t
 
#17670: Re:python


314159265358979323846264338327 ... (少年π)

學校 : 臺北市私立延平高級中學
編號 : 69058
來源 : [223.137.74.225]
最後登入時間 :
2024-04-18 19:26:56
e024. 少年πの超大數運算(1) -- π | From: [114.136.255.80] | 發表日期 : 2019-05-04 09:13

getcontext().prec = 10 ** 500000 + 1

我設定成測資的最大位數,但是出現了下面的錯誤訊息 。゚(゚´ω`゚)゚。

OverflowError: Python int too large to convert to C ssize_t

再說清楚一點:10^500000有500001位,所以設500001(而不是10^500000)就夠了(上篇沒講清楚,抱歉)


 
#17672: Re:python


imsubaruisme@gmail.com (蔡月昴 Emiliatan·Maji·Tenshi)

學校 : 國立嘉義高級中學
編號 : 96365
來源 : [223.139.254.238]
最後登入時間 :
2020-03-18 01:00:23
e024. 少年πの超大數運算(1) -- π | From: [61.227.134.236] | 發表日期 : 2019-05-04 10:34

已AC。感謝。

 
ZeroJudge Forum