python - 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))
,我一直在网上搜索他们是如何得出这个结论的,但我仍然找不到任何答案。我了解循环是如何工作的,但我对他们如何获得公式来获得条款感到头疼。帮助表示赞赏!
解决方案
对于帕斯卡三角形中的每个位置,值为i Choose k
,其中i
是行(从第一行的 0 开始),k
是行中的位置(也是从 0 开始)。i
这里(几乎)与k
代码中的变量匹配。
现在,维基百科炫耀这个身份:
将其转换为您的代码的技巧是在打印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)
推荐阅读
- python - 为什么这个函数被无限调用?
- node.js - 如何使用 node-imagemagick 从缓冲区转换 pdf
- javascript - 如何在 vue.js 中使用 SVG.js 插件?
- python - 打印一个随机数会导致 Alexa 的技能出错
- android - isNullOrEmpty 不返回预期值
- python - 输入'int'没有可行的替代方法-带有Python Parser的ANTLR 4
- android - 工作室 3.2.1 中的 kapt 编译器问题,带有数据绑定和空间
- javascript - 在数据表中使用 column().visible() 隐藏列不起作用
- ios - UITextField 不响应以编程方式创建的 UI 中的点击
- python - 从函数调用时显示混淆矩阵