我目前正在寻找帕斯卡三角形的行序列。我想输入行号并输出列表中的数字序列,直到该行。例如,(Pascal 4)
将给出结果(1 1 1 1 2 1 1 3 3 1)
。
我正在尝试使用我发现的算法。这是算法本身:
V c = V c-1 * ((r - c)/c)
r和c应该是行和列,并且V 0 =1。该算法可以在维基百科页面上标题为“计算和单个行或对角线”的部分中具体找到。
这是我到目前为止的代码:
(define pascal n)
(cond((zero? n) '())
((positive? n) (* pascal (- n 1) (/ (- n c)c))))
我知道这几乎没什么,但我一直在努力寻找使用 alet
或 alambda
来合并列值的函数范围。此外,我也一直在为递归而苦苦挣扎。我真的不知道如何建立基本案例以及如何进入下一步。基本上,我到处都迷路了。我知道这并没有显示太多,但我们将不胜感激朝着正确方向迈出的任何一步。