python大数字计算时没有响应_Python:计算pi时“long int太大,无法转换为float”

在使用Gauss-Legendre算法计算π时,遇到Python错误:'long int too large to convert to float'。当迭代超过1024次后,程序抛出异常。代码中动态更新变量并计算π的过程可能导致了此问题。用户希望找到解决大数字计算时的限制,以便进行大量迭代。
摘要由CSDN通过智能技术生成

当使用python脚本使用Gauss-Legendre算法计算pi时,我得到了这个错误。在获得以下结果之前,最多只能使用1024次迭代:C:\Users\myUsernameHere>python Desktop/piWriter.py

End iteration: 1025

Traceback (most recent call last):

File "Desktop/piWriter.py", line 15, in

vars()['t' + str(sub)] = vars()['t' + str(i)] - vars()['p' + str(i)] * math.

pow((vars()['a' + str(i)] - vars()['a' + str(sub)]), 2)

OverflowError: long int too large to convert to float

这是我的代码:import math

a0 = 1

b0 = 1/math.sqrt(2)

t0 = .25

p0 = 1

finalIter = input('End iteration: ')

finalIter = int(finalIter)

for i in range(0, finalIter):

sub = i + 1

vars()['a' + str(sub)] = (vars()['a' + str(i)] + vars()['b' + str(i)])/ 2

vars()['b' + str(sub)] = math.sqrt((vars()['a' + str(i)] * vars()['b' + str(i)]))

vars()['t' + str(sub)] = vars()['t' + str(i)] - vars()['p' + str(i)] * math.pow((vars()['a' + str(i)] - vars()['a' + str(sub)]), 2)

vars()['p' + str(sub)] = 2 * vars()['p' + str(i)]

n = i

pi = math.pow((vars()['a' + str(n)] + vars()['b' + str(n)]), 2) / (4 * vars()['t' + str(n)])

print(pi)

理想情况下,我希望能够插入一个非常大的数字作为迭代值,稍后再回来查看结果。

感谢任何帮助!

谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值