python3练习-杨辉三角/帕斯卡三角形

杨辉三角形式如下:          1
        1   1
      1   2   1
    1   3   3   1
  1   4   6   4   1
1   5   10  10  5   1    
# 期待输出:
# [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, 56, 28, 8, 1]
# [1, 9, 36, 84, 126, 126, 84, 36, 9, 1]
n = 0
for t in triangles():
    print(t)
    n = n + 1
    if n == 10:
        break
思路:
1、第i-1行最后补0,将长度与第i行保持一致;
2、第i行第n个元素值为L(i)[n] = L(i-1)[n-1]+L(i-1)[n]
例如:
1、i=3时,此时集合为[1,3,3,1];
2、i-1行集合补0后,集合为[1,2,1,0]
3、L(3)[0]=L(2)[-1]+L(2)[0]=0+1=1
     L(3)[1]=L(2)[0]+L(2)[1]=1+2=3
     .....
代码如下:
def triangles():
    L = [1]
    while True:
        yield L
        L.append(0)
        L = [L[i - 1] + L[i] for i in range(len(L))]

n=0
for t in triangles():
    print(t)
    n = n + 1
    if n == 10:
        break

python3中,list[-1]表示为list集合中的最后一个元素

其他相关:

此练习源于学习python过程中的笔记。

学习网站来源于廖雪峰的官方网站:http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000

相关章节链接:

http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014317799226173f45ce40636141b6abc8424e12b5fb27000

时间: 2024-10-27 12:04:56

python3练习-杨辉三角/帕斯卡三角形的相关文章

python3 实现 杨辉三角

杨辉三角,是二项式系数在三角形中的一种几何排列.在欧洲,这个表叫做帕斯卡三角形.帕斯卡(1623----1662)是在1654年发现这一规律的,比杨辉要迟393年,比贾宪迟600年 概述 前提:每行端点与结尾的数为1. 每个数等于它上方两数之和. 每行数字左右对称,由1开始逐渐变大. 第n行的数字有n项. 第n行数字和为2n-1. 第n行的m个数可表示为 C(n-1,m-1),即为从n-1个不同元素中取m-1个元素的组合数. 第n行的第m个数和第n-m+1个数相等 ,为组合数性质之一. 每个数字

二项式定理与杨辉三角

(a + b)2 = a2 + 2ab + b2 (a + b)3 = a3 + 3a2b + 3ab2 + b3 (a + b)4 = a4 + 4a3b + 6a2b2 + 6ab3 + b4 (a + b)5 = a5 + 5a4b + 10a3b2 + 10a2b3 + 5ab4 + b5 (a + b)6 = a6 + 6a5b + 15a4b2 + 20a3b3 + 15a2b4 + 6ab5 + a6 … … (a + b)n = ? 在二项式 (a + b)n 中,每一单项式的次

Leecode刷题之旅-C语言/python-118杨辉三角

/* * @lc app=leetcode.cn id=118 lang=c * * [118] 杨辉三角 * * https://leetcode-cn.com/problems/pascals-triangle/description/ * * algorithms * Easy (60.22%) * Total Accepted: 17.6K * Total Submissions: 29.2K * Testcase Example: '5' * * 给定一个非负整数 numRows,生成

【LeetCode-面试算法经典-Java实现】【119-Pascal's Triangle II(帕斯卡三角形(杨辉三角)II)】

[119-Pascal's Triangle II(帕斯卡三角形(杨辉三角)II)] [LeetCode-面试算法经典-Java实现][所有题目目录索引] 原题 Given an index k, return the kth row of the Pascal's triangle. For example, given k = 3, Return [1,3,3,1]. Note: Could you optimize your algorithm to use only O(k) extra

C输出帕斯卡三角(杨辉三角)递归实现

1 /*帕斯卡三角形(杨辉三角)*/ 2 int Recursive_Pascal_Triangle( int i, int j ) 3 { 4 if( (j == 0) || (i == j) ) 5 return 1; 6 else{ 7 return Recursive_Pascal_Triangle(i-1,j-1) + Recursive_Pascal_Triangle( i-1, j ); 8 } 9 } 10 11 /*输出三角形*/ 12 void display_triangl

杨辉三角,二项式系数,组合数,斐波那契数列

古人就是厉害,在此%杨辉大佬,这个杨辉三角真的是好厉害啊. 杨辉三角 杨辉三角,是二项式系数在三角形中的一种几何排列.在欧洲,这个表叫做帕斯卡三角形.帕斯卡(1623----1662)是在1654年发现这一规律的,比杨辉要迟393年,比贾宪迟600年. 排列信息: 杨辉三角有多种重要的性质. 概述: 前提:每行端点与结尾的数为1. 每个数等于它上方两数之和. 每行数字左右对称,由1开始逐渐变大. 第n行的数字有n项. 第n行数字和为2n-1. 第n行的m个数可表示为 C(n-1,m-1),即为从

Pascal's Triangle leetcode java(杨辉三角)

题目: Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5, Return [ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ] 题解:既然讲到了Pascal‘s Triangle,即杨辉三角.那么就先去Wikipedia上面复习一下杨辉三角吧:”杨辉三角形,又称賈憲三角形.帕斯卡三角形.海亚姆三角形,是二项式係數在的

[LeetCode] 118. Pascal's Triangle 杨辉三角

Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5,Return [ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ] 杨辉三角形,又称贾宪三角形.帕斯卡三角形.海亚姆三角形.巴斯卡三角形,是二项式系数在的一种写法,形似三角形,在中国首现于南宋杨辉的<详解九章算术>得名,书中杨辉说明是引自贾宪的<释锁算术>

matlab算法之杨辉三角

% 帕斯卡三角形 % 杨辉三角,又名 贾宪三角形 global N; N=12; paint(); ---------------------------------------------------------- function []=paint() global N; N=12; for n=0:N; for r=0:n; if(r==0) for i=0:N-n fprintf('  '); end else fprintf('  '); end fprintf('%3d',combi