杨辉三角专题

杨辉三角;二项式

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

相关推荐

  • Python函数返回值、作用域以及树的概念

    Python函数返回值、作用域以及树的概念

    Python笔记 2018-04-15
  • 元组与字符串

    元组tuple 一个有序的元素组成的集合,不可变,用()表示,可进行索引,正索引:从左至右,从0开始;负索引:从右至左,从-1开始,正负索引不可超界,否则引发indexerror,tuple[index],index就是索引,使用中括号访问 元组是只读的,所以没有增,改,删的方法 冒泡法:属于交换排序,两两比较大小,交换位置,结果分为升序和降序排列 升序:n…

    Python笔记 2018-04-01
  • 高阶函数

    高阶函数
    柯里化
    装饰器、文档字符串
    functools 模块 inspect 模块

    2018-04-25
  • 树 非线性结构,每个元素都可以有多个前驱和后继 树是n(n>=0)个元素 n = 0时,称为空树 树只有一个特殊的没有前驱的元素,称为树的根root 树中除了根结点,其余元素只能有一个前驱,可以有0个或者多个后继 递归定义 树T是n(n>=0)个元素的集合,n=0时,称为空树 有且只有一个特殊元素根,剩余元素都可以被划分为m个互不相交的集合T1,…

    2018-04-16