网站首页 > 文章中心 > 其它

杨辉三角函数Python

作者:小编 更新时间:2023-10-22 11:47:42 浏览量:129人看过

python杨辉三角形原理

不一样,插入的值是两个数的和

def?triangles(max):

L?=?[1]

n?=?0

while(nmax):

杨辉三角函数Python-图1

n?=?n+1

L=[1,1]

yield?L

else:

i?=?1

L1?=?[1,1]

杨辉三角函数Python-图2

L1.insert(i,L[i-1]+L[i])

i=i+1

L?=?L1

print?n

用Python输出一个杨辉三角的例子

用Python输出一个杨辉三角的例子

这篇文章主要介绍了用Python和erlang输出一个杨辉三角的例子,同时还提供了一个erlang版杨辉三角,需要的朋友可以参考下

关于杨辉三角是什么东西,右转维基百科:杨辉三角

稍微看一下直观一点的图:

代码如下:

杨辉三角有以下几个特点:

每一项的值等于他左上角的数和右上角的数的和,如果左上角或者右上角没有数字,就按0计算.

第N层项数总比N-1层多1个

def _yanghui_trangle(n, result):

if n == 1:

return [1]

return [sum(i) for i in zip([0] + result, result + [0])]

稍微完善一下代码:

def yanghui_trangle(n):

pre_result = []

for i in xrange(n):

pre_result = _yanghui_trangle(i + 1, pre_result)

yield pre_result

if __name__ == "__main__":

print line

_yanghui_trangle可以用lambda的方式简写,但是可读性感觉会变差,所以还是保持现状好了.

tips: 上面的程序并没有考虑数据格式化的问题,也就是说输出不是完美的三角形.

鉴于最近在学习erlang,补上一个erlang版本的,性能上没有测试过,不过还是要惊叹于函数式语言的表达能力:

-module(yanghui).

-author(lfyzjck).

-export([triangle/1]).

triangle_next(P) -

lists:zipwith(fun(X, Y) - X+Y end, [0|P], P ++ [0]).

triangle(1) -

[[1]];

triangle(N) -

L = triangle(N - 1),

[H|_] = L,

[triangle_next(H)|L].

如何用python输出杨辉三角

程序输出需要实现如下效果:

[1]

[1,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

实现逻辑:

①由于yield为生成器中断输出,所以有了第一个次输出为[1]

以此类推即可

python杨辉三角函数问题

[1, 1]

经过观察你就会发现这个列表推导式[L[i-1] + L[i] for i in range(len(L))]是产生每一行的杨辉三角数据的.

L[i-1]+L[i]是根据前一行指定索引位置的杨辉三角数据,产生新的一行的数据

杨辉三角函数Python-图3

关于杨辉三角python代码的问题

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

前提:每行端点与结尾的数为1.

每个数等于它上方两数之和.

每行数字左右对称,由1开始逐渐变大.

第n行的数字有n项.

第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).

将各行数字相排列,可得11的n-1(n为行数)次方:1=11^0;

①.1=11^1;

完整代码:

#!/usr/bin/python

#

__author__

=

'cy'

#输出杨辉三角数值表

def

triangle(num):

#初始表值为[1]

triangle=[[1]]

[1],

[1]]

for

i

in

num+1):

triangle.append([1]*i)

#改变triangle表的值,eg:

j

range(1,

i-1):

triangle[i-1][j]

return

triangle

#格式化输出(输出的是一个表)

printtriangle(triangle,

width):

#列宽

column

len(triangle[-1])*width

sublist

triangle:

result

[]

contents

sublist:

#控制间距

result.append('{0:^{1}}'.format(str(contents),

width))

#控制缩进,{0:^{1}}:空格在两边补齐空位'^'居中对齐,':'号后面带填充的字符

print('{0:^{1}}'.format(''.join(result),

column))

#启动函数

if

__name__

==

'__main__':

#输入整数

num

int(input('How

many

rows

do

you

want:'))

#打印信息

print

"The

as

follows:"

triangle(num)

width

width)

python实现杨辉三角

使用python实现杨辉三角

python教程-生成器

杨辉三角的特点:

①每行端点与结尾的数为1

知道这三个特点即可

使用python列表生成式:

当 n=0 时, n-1=-1 ,这时候取倒数第一个元素 0 ,所以 1+0 = 1

剩下的元素就是 n + (n-1) = 新的元素

最后输出:

以上就是土嘎嘎小编为大家整理的杨辉三角函数Python相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章