使用递归来填充二项式

时间:2013-11-26 15:47:21

标签: python math recursion

我正试图用Pascal的三角形来挫败二项式。我有代码:

def next(row):
  newrow = [ row[k-1]+row[k]
             for k in range(1,len(row)) ]
  return [1] + newrow + [1]
def pascal(rowsleft,oldrow):
  if rowsleft > 0:
    R = next(oldrow)
    pascal(rowsleft-1,R)
list1 = [1]
list121 = [1,2,1]
pascal(3,[1,2,1])
rowsleft = exponent

我要做的全部事情就是采用等式“(x + 1)^ 3”,然后把它贴到[(1x ^ 3 * 1 ^ 0)+(3x ^ 2 * 1 ^ 1) +(3x ^ 1 * 1 ^ 2)+(3x ^ 0 * 1 ^ 3)],结果连接到:x ^ 3 + 3x ^ 2 + 3x + 1

1 个答案:

答案 0 :(得分:0)

对于解析输入(我看到,这就是你真正需要的),你可以使用其中一个:str.partition(也检查rpartition)或str.split

示例(断言持有):

assert "a;b;c".parition(";") == ("a", ";", "b;c")
assert "a;b;c".split(";") == ["a", "b", "c"]

我使用分区,在括号之间(通过“^”分区),元组的最后部分我假设是无效的。然后,我会检查第一部分是以“(”开头还是以“)”开头。现在,我将删除“(”和“)”并拆分“+”留下的内容。如果不存在“+”,我会用“ - ”拆分并假设sum的第二部分为负数。现在你有两个加数和expotent,你可以用来形成输出。