Python二项式系数混淆

2024-06-16 13:25:51 发布

您现在位置:Python中文网/ 问答频道 /正文

好吧,我们刚刚开始学习循环,我已经挠头好几天了,想弄明白它。我想打印帕斯卡的三角形。 我在网上找到了一些简单的代码,我真的能理解

rows = int(input("Enter the number of rows : ")) for i in range(0, rows): coff = 1 for j in range(1, rows-i): print(" ", end="") for k in range(0, i+1): print(" ", coff, end="") coff = int(coff * (i - k) / (k + 1)) print()

然而,他们是如何得到这个公式的coff = int(coff * (i - k) / (k + 1)), 我一直在网上搜索他们是如何得出这个结论的,但我仍然找不到任何答案。 我理解循环是如何工作的,但我对他们是如何得到公式来得到这些条件的问题感到困惑。谢谢你的帮助


Tags: the代码inforinputrangerows公式
1条回答
网友
1楼 · 发布于 2024-06-16 13:25:51

对于Pascal三角形中的每个位置,值为i Choose k,其中i是行(从第一行的0开始),而k是行中的位置(也从0开始)ik这里(几乎)与代码中的变量匹配

现在,Wikipedia运动着这个身份:

enter image description here

将其转换为代码的技巧是coff = int(coff * (i - k) / (k + 1))在打印coff之后运行,因此我们需要将1添加到k。 如果希望代码更接近公式,可以执行以下操作:

coff = 1
for k in range(1, i+2):
    print("  ", coff, end="")
    coff = int(coff * (i + 1 - k) / k)

相关问题 更多 >