杨辉三角python代码 不要括号_关于杨辉三角python代码的问题

匿名用户

1级

2017-09-02 回答

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

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

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

每行数字左右对称,由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)行中的每一项。

将第2n+1行第1个数,跟第2n+2行第3个数、第2n+3行第5个数……连成一线,这些数的和是第4n+1个斐波那契数;将第2n行第2个数(n>1),跟第2n-1行第4个数、第2n-2行第6个数……这些数之和是第4n-2个斐波那契数。

将各行数字相排列,可得11的n-1(n为行数)次方:1=11^0; 11=11^1; 121=11^2……当n>5时会不符合这一条性质,此时应把第n行的最右面的数字”1”放在个位,然后把左面的一个数字的个位对齐到十位… …,以此类推,把空位用“0”补齐,然后把所有的数加起来,得到的数正好是11的n-1次方。以n=11为例,第十一行的数为:1,10,45,120,210,252,210,120,45,10,1,结果为 25937424601=1110。

完整代码:

#!/usr/bin/python

#coding=utf-8

# __author__ = 'cy'

#输出杨辉三角数值表

def triangle(num):

#初始表值为[1]

triangle=[[1]]

#添加i个值([1])至triangle表,eg:[1]*3,triangle=[[1], [1], [1]]

for i in range(2, num+1):

triangle.append([1]*i)

#改变triangle表的值,eg:

#当num=5时,i取5,j取3

#triangle[4][1] = triangle[3][1]+triangle[3][0]

#triangle[4][2] = triangle[3][2]+triangle[3][1]

#triangle[4][3] = triangle[3][3]+triangle[3][2]

#相当于triangle表的第4位的值(这里的值为一个表)的第1,2,3位值等于第3位的值(这里的值也是一个表)的第1,2,3位值和0,1,2的值分别相加(即错位相加)。

for j in range(1, i-1):

triangle[i-1][j] = triangle[i-2][j]+triangle[i-2][j-1]

return triangle

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

def printtriangle(triangle, width):

#列宽

column = len(triangle[-1])*width

for sublist in triangle:

result = []

for contents in 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 triangle rows as follows:"

triangle = triangle(num)

#列宽

width = len(str(triangle[-1][len(triangle[-1])//2]))+3

printtriangle(triangle, width)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/245243.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python 双向链表_Python实现双向链表

打开Python开发工具IDLE,新建‘DoubleLinkedList.py’文件,并写代码如下; class Node: def __init__(self,item): self.item item self.next None self.pre None class DoubleLinkedList: def __init__(self): self.__head None def add(self,item):…

android自定义view生命周期,android基础之自定义view

一、Custom View1、view的继承关系view继承关系.png2、Android 如何绘制试图层次当activity获取焦点时,它必须提供layout层次的根节点,然后android 系统开始视图的绘制过程。绘制是从layout的根节点开始的,按照从上往下的顺序,父元…

python网课期中答案_中国大学python编程答案网课MOOC考试期末慕课答案

简述班主任的职责。创新需要提出问题,问题产生于()。A、好奇B、质疑C、想象D、矛盾“玄米色”的炒麦香属于()A.茶类香B.品种香C.地域香D.附加香已知某实心小球是由下表中所列塑料材料中的一种制成的.塑料名称密度(kg/m3〕聚甲基戊烯0.8103聚丙…

python import如何使用_Python如何import其它.py文件及其函数

​ 如上图所示,我想在test_1.py文件中import我在lstm_1.py中定义的LstmParam和 LstmNetwork。我直接采用的是最简单的引用方法:from lstm_1 import LstmParam, LstmNetwork,但是很明显报错了,不能直接这样引用。因为,编…

android 数据库 字节数组,Android上的GreenDAO:字节数组作为主键/构建包含字节数组属性Where子句的查询...

关于字节[]又名在greendao BLOB:看着de.greenrobot.dao.query.WhereCondition.PropertyCondition.checkValueForType条件01目前不支持,因为如果值的类型为byte[],以下几行将始终引发异常。if (value ! null && value.getClass().isAr…

艾为数字ic面试题_每日学习:数字后端面试100问(2019全新版)

关注并标星大同学吧每天1次,打卡学习积累1个新知识,增1分职场底气作者称谓:Tao涛个人介绍:摸爬滚打多年的数字后端工程师微信公众号:数字后端IC芯片设计半导体知识分享第29期技能升级,从这里开始最近项目刚…

not null primary key什么意思_explain都不会用,你还好意思说精通Mysql查询优化?

Explain简介Explain关键字是Mysql中sql优化的常用「关键字」,通常都会使用Explain来「查看sql的执行计划,而不用执行sql」,从而快速的找出sql的问题所在。在讲解Explain之前首先创建需要的「用户表user、角色表role、以及用户角色关系表role_…

android 如何修改百度导航诱导界面,Android 百度导航SDK

1)AndroidManifest.xml增加权限,声明service和ak鉴权android:allowBackup"true"android:icon"mipmap/ic_launcher"android:label"string/app_name"android:roundIcon"mipmap/ic_launcher_round"android:supportsRtl"true"an…

飞桨模型保存_飞桨实战笔记:自编写模型如何在服务器和移动端部署

​作为深度学习小白一枚,从一开始摸索如何使用深度学习框架,怎么让脚本跑起来,到现在开始逐步读懂论文,看懂模型的网络结构,按照飞桨官方文档进行各种模型训练和部署,整个过程遇到了无数问题。非常感谢飞桨…

docker always_Ubuntu+Docker+STF环境搭建

Ubuntu提前先安装配置好 Ubuntu server 14.04.5参考资料:Ubuntu 16.04 Server 版安装过程图文详解Dcoker安装Ubuntu 14.04/16.04 (使用apt-get进行安装)安装最新版本# step 1: 安装必要的一些系统工具安装指定版本# 安装指定版本的Docker-CE:安装校验rootubuntu:/ho…

android使用桢布局,Android 常用布局

Android的布局有:LinearLayout线性布局RelativeLayout 相对布局FrameLayout单桢布局TableLayout表格布局GridLayout网格布局Android4.0AbsoluteLayout绝对布局不常用(淘汰)LinearLayout线性布局:LinearLayout是一种线型的布局方式。LinearLay…

导入obj_3D模型obj文件格式详解

3d打印机导入三维模型通常都是obj格式,下面我们来看一下这种文件的格式。为我们进行产品开发提供技术基础储备。obj格式有4种数据,分别以一下字母开头:v顶点vt纹理坐标vn顶点法向量f 面一、顶点格式:v x y z意义:每个顶…

import java.io 包下载_Go 包管理机制深入分析

前言随着 Go 语言的深入使用,其依赖管理机制也一直是各位 Gopher 热衷于探讨的话题。Go 语言的源码依赖可通过 go get 命令来获取,但自动化程度不高,于是官方提供了 Dep 这样的自动化批量管理依赖的工具。虽然 Go 语言的依赖管理在很多方面还…

android进出动画有白屏,Android启动白屏原因及解决方案

如果大家碰到了这个问题,相信刚开始大家都是很委屈的吧,心里想:我什么都没干啊,就写了个setContentView就要背锅了?如果已经遇到了,不要方,这里给大家提供几个解决方案,我们APP在启动…

jenkins 插件目录_三十二张图告诉你如何用Jenkins构建SpringBoot

目录前言如何安装Jenkins?环境准备开始安装Jenkins初始化配置访问首页输入管理员密码安装插件创建管理员实例配置配置完成构建Spring Boot 项目配置JDK、maven、Git环境安装插件添加 SSH Server添加凭据新建Maven项目构建任务如何构建托管在GitLab的项目&#xff1f…

android+rom+bootloader+flash,Android ROM开发(4) bootloader 三种启动模式

Andrew Huang 转载请注明作者及网址HTC手机中用的bootloader称为HBoot,不知道是不是HTC Bootloader 之意,从官网的源码看这个bootloader不象是u-boot的改版。(当然这个也不太确定HBOOT就是完全使用与Android相同的源码)在Android 的刷机时,经常会听到SPL…

filter过滤后重新添加_每天记一个单词(第3518)filter

filter /ˈfɪltər/ n. 过滤器;点击音频收听跟读 ↓↓↓↓↓↓(中慢速带读)(音频不显示请关闭头条app后台重新打开或者更新最新版本)英英解释:something that you pass water, air etc through in order to remove unwanted substances and make it clean or suita…

openwrt dhcp 无法获取ip_如何安装Openwrt软路由系统并配置正常使用

本篇文章教大家如何安装Openwrt软路由系统并配置正常使用。首先我们需要能用来当作软路由的主板,主板要至少需要2个千兆网口,一个用作Wan,其他用作Lan.我这边用到的是ASUS-N3050I-CM-A,这块主板拥有两个千兆网口,搭载了功耗仅6w的n3050 CPU,非…

android 低功耗蓝牙,Android 低功耗(BLE)蓝牙开发说明

BLE(Bluetooth Low Energy)低功耗蓝牙兴起的原因BLE蓝牙的兴起主要是因为可穿戴设备的流行,由于传统蓝牙不能满足可穿戴设备的续航要求,因此大部分可穿戴设备采用蓝牙4.0技术,即BLE蓝牙技术。BLE的特点快速搜索、快速连接、超低功耗连接和数据…

android opencv 获取小图在大图的坐标_Android开发—基于OpenCV实现相机实时图像识别跟踪...

利用OpenCV实现实时图像识别和图像跟踪图像识别什么是图像识别图像识别,是指利用计算机对图像进行处理、分析和理解,以识别各种不同模式的目标和对像的技术。根据观测到的图像,对其中的物体分辨其类别,做出有意义的判断。利用现代…