创建Pascal';使用Python递归的s三角形
我正在做一个家庭作业,要求我用递归函数创建一个Pascal三角形。下面是我到目前为止所做的工作,以及我被赋予的工作。我对Python和编程还很陌生,所以我不知道从这里该往哪里走,如果有任何帮助,我将不胜感激创建Pascal';使用Python递归的s三角形,python,recursion,python-3.4,Python,Recursion,Python 3.4,我正在做一个家庭作业,要求我用递归函数创建一个Pascal三角形。下面是我到目前为止所做的工作,以及我被赋予的工作。我对Python和编程还很陌生,所以我不知道从这里该往哪里走,如果有任何帮助,我将不胜感激 def组合(n,k): 打印((n-1)/(k-1))+((n-1)/k) def pascals_三角形(行): 对于范围内的行(行): 答案=”“ 对于范围(行+1)中的列: 答案=答案+组合(行、列)+“\t” 打印(答案) 帕斯卡三角(5) 事实上,您的答案中根本没有使用递归。我认为
def组合(n,k):
打印((n-1)/(k-1))+((n-1)/k)
def pascals_三角形(行):
对于范围内的行(行):
答案=”“
对于范围(行+1)中的列:
答案=答案+组合(行、列)+“\t”
打印(答案)
帕斯卡三角(5)
事实上,您的答案中根本没有使用递归。我认为您正在尝试编写公式nCk=(n-1)C(k-1)+(n-1)Ck。因此,您需要从自身内部调用组合
(带有“结束”条件的保护:nC0=nCn=1):
输出:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
请注意,这是一种效率极低的方法:每次获得二项式系数时,都要使用相同的参数多次调用combination
。你可以考虑缓存你找到的系数,
代码的另一个问题是,
组合
函数实际上没有返回任何内容,它只是打印一个值并退出(返回无
)。事实上,您在回答中根本没有使用递归。我认为您正在尝试编写公式nCk=(n-1)C(k-1)+(n-1)Ck。因此,您需要从自身内部调用组合
(带有“结束”条件的保护:nC0=nCn=1):
输出:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
请注意,这是一种效率极低的方法:每次获得二项式系数时,都要使用相同的参数多次调用combination
。你可以考虑缓存你找到的系数,
代码的另一个问题是,
组合
函数实际上没有返回任何内容,它只是打印一个值并退出(返回无
)。事实上,您在回答中根本没有使用递归。我认为您正在尝试编写公式nCk=(n-1)C(k-1)+(n-1)Ck。因此,您需要从自身内部调用组合
(带有“结束”条件的保护:nC0=nCn=1):
输出:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
请注意,这是一种效率极低的方法:每次获得二项式系数时,都要使用相同的参数多次调用combination
。你可以考虑缓存你找到的系数,
代码的另一个问题是,
组合
函数实际上没有返回任何内容,它只是打印一个值并退出(返回无
)。事实上,您在回答中根本没有使用递归。我认为您正在尝试编写公式nCk=(n-1)C(k-1)+(n-1)Ck。因此,您需要从自身内部调用组合
(带有“结束”条件的保护:nC0=nCn=1):
输出:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
请注意,这是一种效率极低的方法:每次获得二项式系数时,都要使用相同的参数多次调用combination
。你可以考虑缓存你找到的系数,
代码的另一个问题是,
composition
函数实际上没有返回任何内容,它只是打印一个值并退出(返回None
)。此时您无法解决的问题到底是什么?看起来您希望composition(行、列)
返回一个字符串,但它只是打印到终端,然后返回None
@我得到了一个ZeroDivision错误,我不知道为什么。@RialJohnson你得到的是被零除的结果,因为range(n)
从0
迭代到n-1
。你到底有什么问题不能解决,此时?看起来您希望组合(行、列)
返回一个字符串,但它只是打印到终端,然后返回None
@I得到了一个ZeroDivision错误,我不知道为什么。@RialJohnson您得到的是被零除的结果,因为范围(n)
从0
迭代到n-1
。此时您无法解决的问题到底是什么?看起来您希望组合(行、列)
返回字符串,但它只是打印到终端,然后返回None
@我得到了一个ZeroDivision错误,我不知道为什么。@RialJohnson你得到的是被零除的结果,因为range(n)
从0
迭代到n-1
。你到底有什么问题不能解决,此时?看起来您希望组合(行、列)
返回一个字符串,但它只是打印到终端,然后返回None
@I得到了一个ZeroDivision错误,我不知道为什么。@RialJohnson您得到的是被零除的结果,因为范围(n)
从0
迭代到n-1
。谢谢,这非常适合我的需要!在阅读了大量有关递归的书籍(我是一名学生,对Python非常陌生)之后,我能够接近您给出的解决方案,但是您的解释确实帮助了很多!谢谢,这完全符合我的需要!在阅读了大量有关递归的书籍(我是一名学生,对Python非常陌生)之后,我能够接近您给出的解决方案,但是您的解释确实帮助了很多!谢谢,这完全符合我的需要!在阅读了大量有关递归的书籍(我是一名学生,对Python非常陌生)之后,我能够接近您给出的解决方案,但是您的解释确实帮助了很多!谢谢,这非常有效