使用python打印十行杨辉三角过程详解

yipeiwu_com6年前Python基础

杨辉三角,是二项式系数在三角形中的一种几何排列

  • 每个数等于它上方两数之和。
  • 每行数字左右对称,由1开始逐渐变大。
  • 第n行的数字有n项。
  • 第n行数字和为2n-1。
  • 第n行的m个数可表示为 C(n-1,m-1),即为从n-1个不同元素中取m-1个元素的组合数。
  • 第n行的第m个数和第n-m+1个数相等 ,为组合数性质之一。
  • 每个数字等于上一行的左右两个数字之和。可用此性质写出整个杨辉三角。即第n+1行的第i个数等于第n行的第i-1个数和第i个数之和,这也是组合数的性质之一。即 C(n+1,i)=C(n,i)+C(n,i-1)。
  • (a+b)n的展开式中的各项系数依次对应杨辉三角的第(n+1)行中的每一项。

性质5和性质7是杨辉三角的基本性质,是研究杨辉三角其他规律的基础。

代码

num=input('请输入行数:')
num =int(num)

list1 =[] #list 用来保存杨辉三角
for n in range(num):
  row =[1] #保存行
  list1.append(row)

  if n ==0:
    print(row)
    continue
  for m in range(1,n):
    row.append(list1[n - 1][m - 1] + list1[n - 1][m])
  row.append(1)

  print(row)

结果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python实现LBP方法提取图像纹理特征实现分类的步骤

python实现LBP方法提取图像纹理特征实现分类的步骤

题目描述 这篇博文是数字图像处理的大作业. 题目描述:给定40张不同风格的纹理图片,大小为512*512,要求将每张图片分为大小相同的9块,利用其中的5块作为训练集,剩余的4块作为测...

Python与shell的3种交互方式介绍

概述 考虑这样一个问题,有hello.py脚本,输出”hello, world!”;有TestInput.py脚本,等待用户输入,然后打印用户输入的数据。那么,怎么样把hello.py输...

Python合并两个字典的常用方法与效率比较

本文实例讲述了Python合并两个字典的常用方法与效率比较。分享给大家供大家参考。具体分析如下: 下面的代码举例了5种合并两个字典的方法,并且做了个简单的性能测试 #!/usr/bi...

Python字符编码判断方法分析

本文实例讲述了Python字符编码判断方法。分享给大家供大家参考,具体如下: 方法一: isinstance(s, str) 用来判断是否为一般字符串 isinstance(s, uni...

Python中关于使用模块的基础知识

 一个模块可以在逻辑上组织Python代码。将相关的代码到一个模块中,使代码更容易理解和使用。模块是可以绑定和借鉴任意命名属性的Python对象。 简单地说,一个模块是由Pyt...