Python|杨辉三角那点儿事

简介: Python|杨辉三角那点儿事

问题描述

杨辉三角大家并不陌生,从小学开始,就经常出现在找规律的题目中。

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

................

它的每一个数等于它两肩上的和,这个性质是最为熟悉不过的了,由此可以利用python打出杨辉三角。

代码示例:

def triangles(n):

    L = [1]

    for m in range(n):

        yield L

        L = L[:1] + [L[i]+L[i+1] for i in range(len(L)-1)] + L[-1:]

n = int(input())

l = triangles(n)

for i in l:

    for m in i:

        print(m,end=' ')

    print()

除了以此性质外,还有学习过高中数学的就知道,与它最密切相连的是二次项定理。所以接下来需要做的是用二次项定理打出杨辉三角。


解决方案

首先要知道杨辉三角与二次项定理的关系。就是杨辉三角的第i+1行是(a+bi展开的每一项系数。然后二次项展开系数公式就是数学中的公式.

系数展开公式:


知道公式后就很简单了,利用for循环,第几行i+1就等于几,当然python中是没有直接运算组合数的,这就需要自己分步计算。只需要写两个函数,一个是排列运算函数,一个是阶乘函数,具体代码如下。

代码示例:

def jiang(x):

    if x == 0:

        return 1

    else:

        return x*jiang(x-1)

def jiang1(n,x):

    sum = 1

    for i in range(x):

        sum *= n

        n -= 1

    return sum

def jiang2(n,x):

    return jiang1(n,x)//jiang(x)

floor = int(input())

for n in range(floor):

    for x in range(n+1):

        print(jiang2(n,x),end=' ')

    print()

最总运行效果:

 

结语

条条大路通罗马,两种方法都可以打出杨辉三角,第一种是常见的,第二种就更需要一定数学知识了,相比第一种,个人更倾向于后者,毕竟,要学好编程,数学思维是必不可少的。


目录
相关文章
|
8月前
|
数据可视化 Python
【python】python实现杨辉三角的三种方法
【python】python实现杨辉三角的三种方法
653 1
|
1月前
|
算法 Python Java
Python每日一练(20230429) 地下城游戏、杨辉三角II、旋转数组
Python每日一练(20230429) 地下城游戏、杨辉三角II、旋转数组
42 0
Python每日一练(20230429) 地下城游戏、杨辉三角II、旋转数组
|
1月前
|
C++ Python Java
Python每日一练(20230422) 杨辉三角、最长回文子串、逆波兰表达式求值
Python每日一练(20230422) 杨辉三角、最长回文子串、逆波兰表达式求值
19 0
Python每日一练(20230422) 杨辉三角、最长回文子串、逆波兰表达式求值
|
Python
Python 用类重载乘法运算符计算和打印杨辉三角形
Python 用类重载乘法运算符计算和打印杨辉三角形
69 0
|
Python
Python 杨辉三角形的若干种求法
Python 杨辉三角形的若干种求法
43 0
|
存储 机器人 定位技术
Python 机器人魔鬼的步伐中居然隐藏着杨辉三角形
Python 机器人魔鬼的步伐中居然隐藏着杨辉三角形
58 0
|
算法 Python
备战蓝桥杯历年试题:杨辉三角形 省赛B组 Python详解
备战蓝桥杯历年试题:杨辉三角形 省赛B组 Python详解
173 0
备战蓝桥杯历年试题:杨辉三角形 省赛B组 Python详解
|
存储 算法 C++
杨辉三角案例的C/C++与Python实现
杨辉三角,是二项式系数在三角形中的一种几何排列,中国南宋数学家杨辉1261年所著的《详解九章算法》一书中出现。在欧洲,帕斯卡(1623----1662)在1654年发现这一规律,所以这个表又叫做帕斯卡三角形。帕斯卡的发现比杨辉要迟393年,比贾宪迟600年。
113 0
杨辉三角案例的C/C++与Python实现
|
Python
Python经典编程习题100例:第61例:打印出杨辉三角
Python经典编程习题100例:第61例:打印出杨辉三角
77 0
|
Java C++ Python
蓝桥杯官网 试题 PREV-284 历届真题 杨辉三角形【第十二届】【省赛】【研究生组】【C++】【C】【Java】【Python】四种解法
蓝桥杯官网 试题 PREV-284 历届真题 杨辉三角形【第十二届】【省赛】【研究生组】【C++】【C】【Java】【Python】四种解法
404 0
蓝桥杯官网 试题 PREV-284 历届真题 杨辉三角形【第十二届】【省赛】【研究生组】【C++】【C】【Java】【Python】四种解法