相关疑难解决方法(0)

溢出错误:(34,'结果太大')

我收到溢出错误(OverflowError:(34,'结果太大')
我想计算pi到100的小数,这是我的代码:

def pi(): 
    pi = 0 
    for k in range(350): 
        pi += (4./(8.*k+1.) - 2./(8.*k+4.) - 1./(8.*k+5.) - 1./(8.*k+6.)) / 16.**k 
    return pi 
print(pi())
Run Code Online (Sandbox Code Playgroud)

python pi decimal overflow

13
推荐指数
2
解决办法
4万
查看次数

因子函数在Python中起作用,为Julia返回0

我在Python中定义了一个阶乘函数如下:

def fact(n):
    if n == 1:
        return n
    else:
        return n * fact(n-1)

print(fact(100))
Run Code Online (Sandbox Code Playgroud)

如下朱莉娅:

function fact(n)
    if n == 1
        n
    else
        n * fact(n-1)
    end
end

println(fact(100))
Run Code Online (Sandbox Code Playgroud)

python程序返回一个非常大的数字,用于评估100(如预期的那样).Julia返回0.使用较小的数字(如10)它们都可以工作.

我有两个问题:

  1. 为什么Python处理这个没关系,朱莉娅没有.
  2. 为什么Julia不会抛出错误而只是打印0?

python julia

12
推荐指数
3
解决办法
2595
查看次数

处理代码中的大数字

我正在编写一个编程问题,我需要处理一个涉及100000位数的数字.python可以处理这样的数字吗?

python algorithm

9
推荐指数
3
解决办法
3万
查看次数

在R [Inf]和Python中处理大量数字

我这些天正在学习Python,这可能是我关于Python的第一篇文章.我对R也相对较新,并且已经使用R大约一年了.我在学习Python时比较两种语言.如果这个问题太基础,我道歉.

我不确定为什么py输出Inf的R输出没有.我们2^1500以此为例.

在R:

nchar(2^1500)
[1] 3
2^1500
[1] Inf
Run Code Online (Sandbox Code Playgroud)

在Python中:

len(str(2**1500))
Out[7]: 452
2**1500
Out[8]: 3507466211043403874...
Run Code Online (Sandbox Code Playgroud)

我有两个问题:

a)Inf当Python没有时,为什么R提供.

b)我研究了如何在R中使用大数?线.这似乎Brobdingnag可以帮助我们解决大量问题.但是,即使在这种情况下,我也无法计算nchar.如何计算上面的表达式,即R中的2 ^ 1500

2^Brobdingnag::as.brob(500)
[1] +exp(346.57)
> nchar(2^Brobdingnag::as.brob(500))
Error in nchar(2^Brobdingnag::as.brob(500)) : 
  no method for coercing this S4 class to a vector
Run Code Online (Sandbox Code Playgroud)

python r

8
推荐指数
2
解决办法
863
查看次数

生成斐波纳契数时,溢出错误'数值结果超出范围'

可能重复:
在Python中处理非常大的数字

我有一个python函数来生成斐波纳契数:

def fib(n):                                                                                                            
        return ((1+math.sqrt(5))**n - (1-math.sqrt(5))**n)/(2**n*math.sqrt(5))
Run Code Online (Sandbox Code Playgroud)

我可以提供最多700的fib功能数字,它开始

OverflowError: (34, 'Numerical result out of range')
Run Code Online (Sandbox Code Playgroud)

我是否需要使用特殊类型来解决这个问题?

python fibonacci

6
推荐指数
1
解决办法
2万
查看次数

Python 如何处理大于 64 位无符号整数限制的数字?

从这个问题(How big can a 64bitsigned integer be?),我了解到在 64 位机器上可以使用的最大数字是2^64-1,即92,233,720,368,547,758,070。这意味着,即使我添加1它,它也应该返回inf. 但它没有显示inf。这是我观察到的:

>>> max = sys.maxsize
>>> format(max, ',')
'9,223,372,036,854,775,807'
>>> a = max * 10
>>> format(a, ',')
'92,233,720,368,547,758,070'
>>> a / max
10.0
Run Code Online (Sandbox Code Playgroud)

即使由于某种原因92,233,720,368,547,758,070不是Python的最大数字,那么 又有什么用呢sys.maxsize

其次,64位的数字不应该占用64位的内存空间吗?为什么 和maxa服用36 bytes

>>> sys.getsizeof(max)
36
>>> sys.getsizeof(a)
36
Run Code Online (Sandbox Code Playgroud)

谁能描述一下这两种混乱吗?

python 64-bit integer

5
推荐指数
1
解决办法
4063
查看次数

无法在数学计算中看到Python的近似值

问题:当我使用Python时,看看计算机何时在数学计算中进行近似

问题示例:

我的老教师曾经说过以下陈述

You cannot never calculate 200! with your computer. 
Run Code Online (Sandbox Code Playgroud)

我现在还不完全确定它是否真实.它似乎是,因为我从Python脚本得到了很多零.

你怎么知道你的Python代码何时进行近似?

python

1
推荐指数
1
解决办法
319
查看次数

当给出具有较大值的输入时,不给出输出

我写了一个代码来输出字​​母'a'在列表的给定长度内重复的次数,它与长度小于1000000的输入完美配合,但没有长度大于1000000的输出。我非常感谢您的帮助。

代码:

n = int(input("Length: "))
s = list(input("String: "))
a = s
for i in s:
    if len(a) < n:
        a.append(i)
print(a.count("a"))
print(a)
Run Code Online (Sandbox Code Playgroud)

例如,如果给出如下输入,则不会执行代码

Length: 100000000000000
String: abcasc
Run Code Online (Sandbox Code Playgroud)

我还注意到,当该程序运行时打开/运行另一个应用程序时,我的计算机会死机。

python algorithm python-3.x

1
推荐指数
1
解决办法
44
查看次数

标签 统计

python ×8

algorithm ×2

64-bit ×1

decimal ×1

fibonacci ×1

integer ×1

julia ×1

overflow ×1

pi ×1

python-3.x ×1

r ×1