python实现杨辉三角思路
程序输出需要实现如下效果:
[1]
[1,1]
[1,2,1]
[1,3,3,1]
......
方法:迭代,生成器
def triangles() L = [1] while True: yiled L L =[1] + [L[i] + L[I+1] for i in range(len(L)-1)] + [1] n = 0 for t in triangles(): print(t) n += 1 if n == 10: break
实现逻辑:
1.由于yield为生成器中断输出,所以有了第一个次输出为[1]
2.继续while下面的yield后的循环,此时list长度为1,将其代入L中的len(L),得出[L[i]+L[i+1] for i in range(1-1)]得出为空值,所以yield L输出为[1,1]
3.此时len(L)值为2,代入得出[L[i]+L[i+1] for i in range(2-1)]为[L[i]+L[i+1] for i in range(1)],i能取值为0,代入后为[L[0]+L[1]],而L[0]和L[1]的值均为1(有上面结果可知),所以输出结果为[1,2,1]
4.由第三条可知此时len(L)值为3,代入得出[L[i]+L[i+1] for i in range(2)],i取值为0和1,通过循环输出有两个值,均为3,分别由[L[0]+L[1]],[L[1]+L[2]]
以此类推即可
相关推荐
-
python 生成器生成杨辉三角的方法(必看)
用Python写趣味程序感觉屌屌的,停不下来 #生成器生成展示杨辉三角 #原理是在一个2维数组里展示杨辉三角,空的地方用0,输出时,转化为' ' def yang(line): n,leng=0,2*line - 1 f_list = list(range(leng+2)) #预先分配,insert初始胡会拖慢速度,最底下一行,左右也有1个空格 #全部初始化为0 for i,v in enumerate(f_list): f_list[v] = 0 ZEROLIST = f_list[:] #预
-
用Python输出一个杨辉三角的例子
关于杨辉三角是什么东西,右转维基百科:杨辉三角 稍微看一下直观一点的图: 复制代码 代码如下: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 11 8 28 56 70 56 28 8 1 杨辉三角有以下几个特点: 每一项的值等于他左上角的数和右上角的数的和,如果左上角或者右上角没有数字,就按0计算.第N层项数总比N-1层多1个 计算第N层的杨辉三角,必须知道N-1层的数字,然后将相邻
-
利用python打印出菱形、三角形以及矩形的方法实例
前言 本文主要给大家介绍了关于利用python打印出菱形.三角形以及矩形的相关内容,分享出来供大家参考学习,话不多说,来一起看看详细的介绍: 实例代码 #coding:utf-8 rows = int(raw_input('输入列数: ')) i = j = k = 1 #声明变量,i用于控制外层循环(图形行数),j用于控制空格的个数,k用于控制*的个数 #等腰直角三角形1 print "等腰直角三角形1" for i in range(0, rows): for k in range
-
Python使用matplotlib实现在坐标系中画一个矩形的方法
本文实例讲述了Python使用matplotlib实现在坐标系中画一个矩形的方法.分享给大家供大家参考.具体实现方法如下: import matplotlib.pyplot as plt from matplotlib.patches import Rectangle class Annotate(object): def __init__(self): self.ax = plt.gca() self.rect = Rectangle((0,0), 1, 1) self.x0 = None s
-
Python极简代码实现杨辉三角示例代码
杨辉三角,又称贾宪三角形,帕斯卡三角形,是二项式系数在三角形中的一种几何排列. 把每一行看做一个list,写一个generator,不断输出下一行的list 实现下列输出效果: # [1] # [1, 1] # [1, 2, 1] # [1, 3, 3, 1] # [1, 4, 6, 4, 1] # [1, 5, 10, 10, 5, 1] # [1, 6, 15, 20, 15, 6, 1] # [1, 7, 21, 35, 35, 21, 7, 1] # [1, 8, 28, 56, 70,
-
python实现杨辉三角思路
程序输出需要实现如下效果: [1] [1,1] [1,2,1] [1,3,3,1] ...... 方法:迭代,生成器 def triangles() L = [1] while True: yiled L L =[1] + [L[i] + L[I+1] for i in range(len(L)-1)] + [1] n = 0 for t in triangles(): print(t) n += 1 if n == 10: break 实现逻辑: 1.由于yield为生成器中断输出,所以有了第
-
python实现杨辉三角的几种方法代码实例
方法一:迭代 def triangle_1(x): """ :param x: 需要生成的杨辉三角行数 :return: """ triangle = [[1], [1, 1]] # 初始化杨辉三角 n = 3 # 从第三行开始计数,逐行添加 while n <= x: for i in range(0, n-1): if i == 0: # 添加初始列表[1,1],杨辉三角每行的首位和末位必为1 triangle.append([1, 1
-
用Python生成N层的杨辉三角的实现方法
[杨辉三角简介] 杨辉三角,是二项式系数在三角形中的一种几何排列.在欧洲,这个表叫做帕斯卡三角形. [代码实现] n = eval(input("请问你想生成几层的杨辉三角呢?")) result= [] def fun(N): # 杨辉三角生成函数 if N == 1: result.append([1]) elif N == 2: result.append([1]) result.append([1,1]) else: result.append([1]) result.ap
-
使用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
-
C语言打印杨辉三角示例汇总
杨辉三角是我们从初中就知道的,现在,让我们用C语言将它在计算机上显示出来. 在初中,我们就知道,杨辉三角的两个腰边的数都是1,其它位置的数都是上顶上两个数之和.这就是我们用C语言写杨辉三角的关键之一.在高中的时候我们又知道,杨辉三角的任意一行都是的二项式系数,n为行数减1.也就是说任何一个数等于这个是高中的组合数.n代表行数减1,不代表列数减1.如:第五行的第三个数就为=6. 现在我们按第一种思路来写:先定义一个二维数组:a[N][N],略大于要打印的行数.再令两边的数为1,即当每行的第一个数和
-
PHP实现的杨辉三角求解算法分析
本文实例讲述了PHP实现的杨辉三角求解算法.分享给大家供大家参考,具体如下: ♥ 前言 对于 杨辉三角 是什么的问题,请参考百度百科的详细解释: 杨辉三角 杨辉三角,是二项式系数在三角形中的一种几何排列.在欧洲,这个表叫做帕斯卡三角形.帕斯卡(1623--1662)是在1654年发现这一规律的,比杨辉要迟393年,比贾宪迟600年.杨辉三角是中国古代数学的杰出研究成果之一,它把二项式系数图形化,把组合数内在的一些代数性质直观地从图形中体现出来,是一种 离散型的数与形 的结合 ♠ 代码实现 题目的
-
用java实现杨辉三角的示例代码
之前有学弟问过我一道java的面试题,题目不算难.用java实现杨辉三角.我花了点时间整理了一下,发现挺有意思的,于是想写下来分享一下.在写代码之前,我们先理清下面两个问题. 什么是杨辉三角 杨辉三角,是二项式系数在三角形中的一种几何排列.在我国南宋数学家杨辉1261年所著的<详解九章算法>有提到过.在欧洲叫做帕斯卡三角形,如图. 杨辉三角 杨辉三角的规律即原理 1.每个数等于它上方两数之和. 2.每行数字左右对称,由1开始逐渐变大. 3.第n行的数字有n项. 4.第n行数字和为2n-1. 5
随机推荐
- WIN7下ORACLE10g服务端和客户端的安装图文教程
- SqlServer修改数据库文件及日志文件存放位置
- 详解Vue 普通对象数据更新与 file 对象数据更新
- 详解nginx同一端口监听多个域名和同时监听http与https
- .net 运用二进制位运算进行数据库权限管理
- phpmyadmin打开很慢的解决方法
- php面向对象全攻略 (三)特殊的引用“$this”的使用
- JSP Spring防止用户重复登录的实现方法
- React Native中Android物理back键按两次返回键即退出应用
- Android编程实现简单的UDP Client实例
- SQL语句中SUM与COUNT的区别深入分析
- 使用Jackson来实现Java对象与JSON的相互转换的教程
- Linux中查看物理CPU个数、核数、逻辑CPU个数的方法
- 判断是否是IE6版本并给出提示升级浏览器
- jsp 自动编译机制详细介绍
- 浅析Yii2集成富文本编辑器redactor实例教程
- php事件驱动化设计详解
- 详解Android:向服务器提供数据之get、post方式
- Mingw64编译wxWidgets 3.0.2常见错误分析
- golang中的net/rpc包使用概述(小结)