杨辉三角专题

杨辉三角;二项式

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

相关推荐

  • 装饰器

    装饰器 需求 一个加法函数,想增强它的功能,能够输出被调用过以及调用的参数信息 def add(x, y): return x + y 增加信息输出功能 def add(x, y): print(“call add, x + y”)  # 日志输出到控制台 return x + y p 上面的加法函数是完成了需求,但是有以下的缺点 打…

    Python笔记 2018-04-23
  • Python 部分知识点总结(一)

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

    Python笔记 2018-03-26
  • Python函数

    函数 数学函数 Python函数 若干语句块、函数名称、参数列表构成,组织代码的最小单元 完成一定的功能 作用 结构化编程对代码的最基本的封装,一般按照功能组织一段代码 复用,减少冗余代码 简洁美观,可读易懂 函数分类 内建函数,max()、reversed() 库函数,math.ceil() 函数定义、调用 def语句定义函数 def 函数名(参数列表):…

    2018-04-16
  • 面向对象,魔术方法

    面向对象 一面向对象 什么是面向对象: 一种认识世界、分析世界的方法论。将万事万物抽象为类。 类class: 类是抽象的概念,是万事万物的抽象,是一类事物的共同集合的集合。 用计算机语言来描述类,就是属性和方法的集合。 对象instance,object: 对象是类的具象,是一个实体。 每个个体都是抽象类的不同实体。 哲学 一切皆对象 对象是数据和操作的封装…

    Python笔记 2018-05-14
  • 内置数据结构

    list,tuple,str,bytes,bytearray,set,切片,分装解构,冒泡法

    2018-03-31
  • 高阶函数

    高阶函数 Frist class object 函数在python中是一等公民 函数也是对象,可调用的对象 函数可以作为普通变量,参数,返回值等等 数学概念y=g(f(x)) 在数学和计算机科学中,高阶函数应当是至少满足下面一个条件的函数 接受一个或者多个函数作为参数 输出一个函数 计数器: def counter(base):def inc(step=1)…

    Python笔记 2018-04-23