[英]How do I find an optimal combination when an exhaustive search would take way too long?
[英]How do I find out if a power will take too long to compute? (Python)
我寫了一個生成隨機數學字符串的python程序,例如"2+3**4/3"
和"3**3**50-2"
,然后使用eval()
來計算它們。
計算"2+3**4/3"
可以正常工作,但計算"3**3**50-2"
將花費太長時間,因為它將是一個非常大的數字。 我需要在嘗試之前檢查功率是否太大而無法計算,或者我需要在一定時間后終止該函數。
由於這個函數需要運行幾萬次,所以效率很重要
我已經嘗試使用“多處理”和“線程”庫來終止線程,如果它需要超過一秒鍾,但是這些解決方案會大大減慢程序的速度。
有什么建議? 我完全被這個難住了。 謝謝。
我找到了一個快速簡單的解決方案:
try:
eval("math.pow(a,b)")
except:
print("too long to compute")
我沒有使用**
使用math.pow
因此如果 'a' 和 'b' 太大,它會返回一個溢出錯誤。 然后可以使用 try-except 語句處理異常。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.