首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >递推二项式系数

递推二项式系数
EN

Stack Overflow用户
提问于 2014-10-15 09:12:27
回答 1查看 7.2K关注 0票数 0

我必须定义一个函数,它接受两个数字:n和k (n,>=,k),并返回这两个数字的二项式系数。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#defining a function that computes the factorial of an integer

def fac(b):
    if b==1:
        return 1
    else:
        return b * fac(b-1)

#takes two integers and does the binomial coefficient operand

def combinations(n,k):
    result = (fac(n)) / (fac(k) * fac(n-k))
    return result

n=10
k=2

print(combinations(n,k))    

这对于小数字来说很好,但是当我取1000等较大的数字时,它就不起作用了。它返回: fac中的第5行多次返回b* fac(b-1)。其次是: RuntimeError:比较中超过了最大递归深度。

有人能解释一下为什么这些函数不适用于大量的数据,或者给出一些我能做些什么来解决这个问题的提示吗?python如何处理递归和大数?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-15 09:26:15

默认情况下,Python将递归深度限制在1000。您可以通过在代码开始时添加以下内容来改变这一点(在本例中将限制设置为2000 ):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import sys
sys.setrecursionlimit(2000)

若要向用户询问输入,请尝试:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
n=int(input("Enter n:"))
k=int(input("Enter k:"))

下面是完整的代码(只需复制/粘贴它):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import sys
sys.setrecursionlimit(2000)

def fac(b):
    if b==1:
        return 1
    else:
        return b * fac(b-1)

def combinations(n,k):
    result = (fac(n)) / (fac(k) * fac(n-k))
    return result

n=int(input("Enter n:"))
k=int(input("Enter k:"))

print(n, k, combinations(n,k))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26388226

复制
相关文章
[iOS开发bundle identifier修改不了(解决bundle ID无法修改的问题
iOS开发bundle identifier修改不了(解决bundle ID无法修改的问题)
Python疯子
2018/09/06
3.3K0
安装PG
官网地址:点击访问下载地址:点击访问Windows安装完成后,如下是Windows下两种登录方式:图片直接远程连接会报错:图片修改配置文件允许远程访问连接并重启生效:图片图片Centos7安装:sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpmsudo yum install -y postgresql14-serve
用户14527
2022/08/07
4180
安装PG
SVN安装---本机安装(1)
首先要准备的资料: 安装包: 我机子是64位的  先安装  Setup-Subversion 很简单的 根据那个操作步骤来 一步一步往下走, 主要是配置路径的时候自己新建一个   不要带有空格和汉字的
wust小吴
2019/07/05
2.4K0
SVN安装---本机安装(1)
git的本机安装和配置
1.git的本机安装和配置: 第一步下载安装:msysgit,下载地址为http://msysgit.github.io/ 下载安装之后,单击开始菜单,Git/Git Bush 在Bush 窗口中,输入以下命令,git --version 可以看到版本信息。设置你机器的用户名和email(将来eclipse的插件会自动读取出来。因为这时你即使cmd打开一个系统窗口,输入git命令, 也会有反应。说明eclipse的插件的git命令也使用的是你刚装的msysgit。) git config --global user.name "mark" git config --global user.email "iscp9158_work@163.com"
马克java社区
2019/08/13
7340
git的本机安装和配置
linux postgresql 安装扩展dblink,提示无法打开扩展控制文件的解决办法
dblink是psql下的扩展功能,可以实现在一个数据库中远程操作另外一个数据库,是实现跨库的一种方法。
好派笔记
2021/09/14
3.6K0
C#/.NET 如何创建带有本机依赖的多框架多系统 NuGet 包
正常如果你想写一个 .NET 的 NuGet 包,直接打包就好了,你的引用程序集会出现在 NuGet 包内的 lib 文件夹内。然而,如果我们的 NuGet 包包含本机依赖的话怎么办呢?
walterlv
2023/10/23
8750
C#/.NET 如何创建带有本机依赖的多框架多系统 NuGet 包
kong网关架构_kong网关性能
Kong是一个使用了lua-nginx-module运行在Nginx之上的Lua应用。Kong是一个成熟的API网关解决方案。API 网关,即API Gateway,是大型分布式系统中,为了保护内部服务而设计的一道屏障,可以提供高性能、高可用的 API托管服务,从而帮助服务的开发者便捷地对外提供服务,而不用考虑安全控制、流量控制、审计日志等问题,统一在网关层将安全认证,流量控制,审计日志,黑白名单等实现。网关的下一层,是内部服务,内部服务只需开发和关注具体业务相关的实现。网关可以提供API发布、管理、维护等主要功能。开发者只需要简单的配置操作即可把自己开发的服务发布出去,同时置于网关的保护之下。
全栈程序员站长
2022/10/01
1.9K0
kong网关架构_kong网关性能
SVN安装---本机安装---SVN仓库(3)
此时有个弊端  就是dos那个窗口不能关,,关了服务器就停了  这个时候如果你要查看3690端口 必须重新开一个dos
wust小吴
2019/07/05
3K0
SVN安装---本机安装---SVN仓库(3)
解除谷歌浏览器Chrome无法安装扩展插件的限制
今天将谷歌浏览器升级到了最新版本,在安装扩展脚本的时候,却发现Chrome 21+系列增加了对扩展插件安装的限制, 用户只能安装谷歌浏览器(Chrome Store)内的扩展插件,很是郁闷。经过查找相关资料,现整理解决方法如下:
Enjoy233
2019/03/05
2.5K0
SVN安装---本机安装---SVN仓库(2)
仓库是需要一个文件夹的   有习惯的人  一般是  专门建个DevRepository/SvnRep 这是我专门用来放   svn的仓库的 然后就是在DOS命令行里面创建仓库了, 键入命令行:svna
wust小吴
2019/07/05
1.2K0
SVN安装---本机安装---SVN仓库(2)
Rails + PostgreSQL 常见问题及解决办法
问题重现: 在bundle的时候出现gem包pg-0.18.4安装出错的情况,错误代码如下:
零式的天空
2022/03/22
1.1K0
Maven私服nexus-bundle的安装和启动
Nexus提供了两种安装方式,第一种是内嵌Jetty的bundle,只要你有JRE就能直接运行。第二种方式是WAR,只须简单的将其发布到web容器中即可使用。关于war的安装,请参考 http://www.linuxidc.com/Linux/2013-11/92785.htm 。本文主要介绍bundle的安装。
星哥玩云
2022/06/28
4670
Gentoo安装SNMP & MRTG 本机监控
现在就有一个html文件生成好了/var/www/localhost/www/index.html 将你的web服务器设置好,打开流量器就可以看到统计数据了。
EltonZheng
2021/01/22
7380
【PostgreSQL】PostgreSQL扩展:pg_stat_statements 优化SQL
扩展能够扩展,更改和推进Postgres的行为。怎么样?通过挂钩到低级的Postgres API挂钩。可以水平扩展Postgres的开源Citus数据库本身是作为PostgreSQL扩展实现的,这使Citus可以与Postgres版本保持最新,而不会像其他Postgres fork那样落后。尽管我想更深入地研究最有用的Postgres扩展:pg_stat_statements,但我之前已经写过各种扩展类型。
架构师研究会
2020/07/20
1.6K0
【PostgreSQL】PostgreSQL扩展:pg_stat_statements 优化SQL
Linux环境下PG 14的安装部署
https://yum.postgresql.org/14/redhat/rhel-7-x86_64/repoview/postgresqldbserver14.group.html
AiDBA宝典
2022/05/25
3.2K0
Linux环境下PG 14的安装部署
VM for Linux 版本的Bundle格式文件的安装
https://www.vmware.com/products/workstation-pro/workstation-pro-evaluation.html
拓荒者
2019/05/23
4.1K0
VM for Linux 版本的Bundle格式文件的安装
SVN安装---本机安装---SVN 安装到eclipse中(6)
在eclipse里面用SVN: 首先是插件: 放到eclipse的dropins下面: 然后重启eclipse就好了 再就是到 windows preference
wust小吴
2019/07/05
8060
SVN安装---本机安装---SVN 安装到eclipse中(6)
Bundle的遍历方法
Bundle的遍历不能像LIst,ArrayList,数组那样通过for循环进行遍历子元素。它类似于map hashmap的遍历。
林老师带你学编程
2022/11/30
8170
SVN安装---本机安装---SVN 命令行(5)
SVN 中有三种最重要的命令   checkout  commit  update
wust小吴
2019/07/05
1.3K0
SVN安装---本机安装---SVN 命令行(5)
android之bundle是什么_什么是bundle
Bundle,是Android开发中的一个类,用于Activity之间传输数据用。
全栈程序员站长
2022/07/20
1.2K0

相似问题

安装带有本机扩展的pg 1.1.3失败

20

$ bundle安装:无法构建gem本机扩展

51

bundle install libv8安装失败(带有本机扩展)

20

安装pg宝石;错误:无法构建gem本机扩展

88

安装pg gem 0.14.1时架构不匹配

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文