首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OverflowError python大型计算(除法)

OverflowError python大型计算(除法)
EN

Stack Overflow用户
提问于 2015-08-13 06:56:37
回答 1查看 371关注 0票数 1

我试图写一个程序来通过Python找到加泰罗尼亚的奇数,但显然Python不能除以真正的大数。有人知道我该怎么解决这个问题吗?下面是我的代码:

代码语言:javascript
复制
# catalan number python program

import math

f = math.factorial

def ncr(n,r):
    return f(n)//(f(r)*f(n-r))


def catalan(x):
    return (ncr(2*x,x)/(x+1))


for i in range(1,600):
    z = catalan(i)
    if not z%2 == 0:
        print(str(i) + ' : ' + str(z))

我试图获取至少前10,000个加泰罗尼亚数字,但我的代码目前甚至不能处理1000个数字。我不需要把大数字打印出来。我只想知道它的号码是多少。

编辑:添加导入数学(呼呼),错误为:

代码语言:javascript
复制
Traceback (most recent call last):
  File "C:/Python34/catalan odd tester.py", line 18, in <module>
    z = catalan(i)
  File "C:/Python34/catalan odd tester.py", line 14, in catalan
    return (ncr(2*x,x)/(x+1))
OverflowError: integer division result too large for a float
EN

回答 1

Stack Overflow用户

发布于 2015-08-13 07:07:50

这里有一个提示。代码可以找到加泰罗尼亚数字。现在只需添加语句即可找到奇数

代码语言:javascript
复制
def catalan(n):
    res = 0
    if( n <= 1):
        return 1
    for i in range(n):
        res += catalan(i) * catalan(n-i-1)
    return res
def main():
    for i in range(1000):
        print(catalan(i))
    return 0
main()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31976778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档