杨辉三角专题

杨辉三角;二项式

1
1、求杨辉三角的第m行第k个元素
第m行有m项,m是正整数,因此k一定不会大于m
第n行的m个数可表示为C(n-1, m-1),即为从n-1个不同元素中取m-1个元素的组合数
解答:
#算法1:首尾补1
m = 5
k = 4
triangle = [] #使用嵌套结构[[]]
for i in range(m):
row = [1]
triangle.append(row)
if i == 0: #第0行直接返回
continue
for j in range(1,i):
row.append(triangle[i-1][j-1] + triangle[i-1][j])
row.append(1)
print(triangle)
print(“—————-“)
print(triangle[m-1][k-1])
#算法2:组合数公式
参考:【图文】杨辉三角与组合数性质_百度文库 https://wenku.baidu.com/view/244b7925482fb4daa58d4b1d.html
2
#组合数公式C(m,n) = m!/(n!(m-n)!)
#m行k列的值,C(m-1,k-1)组合数
m = 9
k = 5
#c(n,r) = c(m-1,k-1) = (m-1)!/((k-1)!(m-r)!)
n = m – 1
r = k – 1
d = n – r
targets = [] #r, n-r, n
factorial = 1
for i in range(1, n+1):
factorial *= i
if i == r:
targets.append(factorial)
if i == d:
targets.append(factorial)
if i == n:
targets.append(factorial)
print(targets)
print(targets[2]//(targets[0]*targets[1]))

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/95591

(0)
JacoJaco
上一篇 2018-04-09 19:30
下一篇 2018-04-09 23:18

相关推荐

  • 序列化 Json MessagePack

    序列化 反序列化 pickle模块
    Json 模块
    MessagePack

    2018-05-02
  • Python第十四周网络知识和数据库知识总结

    高性能集群Linux virtual server、Nginx、高可用性集群keepalived

    Python笔记 2018-06-10
  • PYTHON类型注解

    PYTHON类型注解 函数定义的弊端 Python是动态语言,变量随时可以被赋值,且能赋值为不同的类型 Python不是静态编译型语言,变量类型是在运行器决定的 动态语言很灵活,但是这种特性也是弊端 def add(x, y):return x + yprint(add(4, 5))print(add(‘hello’, ‘…

    Python笔记 2018-05-02
  • 递归函数

    递归函数 def foo(b,b1=3):print(“foo1 called “,b,b1)def foo2(c):foo3(c)print(“foo2 called”,c)def foo3(d):print(“foo3 called”)def mian():print(“…

    2018-04-16
  • Python第二周小结

    不知不觉已经正式学习接触Python两周了,第二周主要开始了Python内置数据结构的学习,包括从一开始的列表list,元组tuple,字符串string,再到后来的bytes, bytearray, 以及最后的集合set。这些数据结构可以说Python最为基础的几种类型,想要用Python写出漂亮的代码离不开对他们的熟练掌握与深刻理解。这几个结构各有各的特…

    Python笔记 2018-03-31
  • Python 部分知识点总结(二)

    此篇博客只是记录第四周未掌握或不熟悉的知识点,用来加深印象。

    Python笔记 2018-03-30