【蓝桥杯每日一练】 巴斯卡三角形(杨辉三角形)

目录

1.说明

​2.python实现


1.说明

巴斯卡三角形又叫杨辉三角,贾宪三角形 他有以下 性质:

前提:端点的数为1(这不是废话吗,头上那个端点不是1还是三角形吗)

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

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

3、第n行的数字有n项。

4、第n行数字和为2n-1。

5、第n行的第m个数和第n-m+1个数相等,即C(n-1,m-1)=C(n-1,n-m)(组合数性质之一)

6、每个数字等于上一行的左右两个数字之和。可用此性质写出整个杨辉三角。即第n+1行的第i个数等于第n行的第i-1个数和第i个数之和,这也是组合数的性质之一。即

7、第n行的m个数可表示为C(n-1,m-1)(n-1下标,m-1上标),即为从n-1个不同

元素中取m-1个元素的组合数。组合数计算方法:C(n,m)=n!/[m!(n-m)!]

8、(a+b)^n的展开式中的各项系数依次对应杨辉三角的第(n+1)行中的每一项。

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

10、将各行数字相排列,可得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;

2.python实现

def yanghui():# 定义第一行列表为[1]L=[1]while True:# yield的作用:把一个函数变成生成器,同时返回一个list,下次从yield的下条语句执行yield L# 设上一个为[1],通过式子可得[1,1],继而[1,2,1]......L = [1] + [ L[i-1] + L[i] for i in range(1,len(L)) ] + [1]n = 0
for i in yanghui():print(i)    n = n+1if n == 10 :break

返回:

 这里是列表的,我们接下来看看字符串的

# python实现杨辉三角形
def yanghui():# 定义第一行列表为[1]line = [1]while True:# yield的作用:把一个函数变成生成器,同时返回一个list,下次从yield的下条语句执行yield line# 设上一个为[1],通过式子可得[1,1],继而[1,2,1]......line = [1] + [line[i] + line[i + 1] for i in range(len(line) - 1)] + [1]n = 0
# 生成器可迭代,做个遍历
for i in yanghui():# 打印每行的列表的元素,用空格连接print(" ".join(str(j) for j in i))# 打印完一行,n+1n += 1# 如果变量n等于输入的行数,跳出for循环if n == 10:# 跳出循环break

返回:

 前两个,我们都是设置的固定,到第十行就结束,那么可不可以我们自己设置多少行结束呢?

# python实现杨辉三角形
def yanghui():# 定义第一行列表为[1]line = [1]while True:# yield的作用:把一个函数变成生成器,同时返回一个list,下次从yield的下条语句执行yield line# 设上一个为[1],通过式子可得[1,1],继而[1,2,1]......line = [1] + [line[i] + line[i + 1] for i in range(len(line) - 1)] + [1]# 输入杨辉三角形的行数
n = int(input("请输入行数:"))
# 定义一个结束的变量
flag = 0
# 生成器可迭代,做个遍历
for i in yanghui():# 打印每行的列表的元素,用空格连接print(" ".join(str(j) for j in i))# 打印完一行,flag+1flag += 1# 如果变量flag等于输入的行数,跳出for循环if flag == n:# 跳出循环break

返回:

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

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

相关文章

C语言多功能计算器

最近经过一段时间的C语言学习,我使用C语言制作了一个多功能计算器,想要给大家分享一下。 计算器设计流程 1 . 实现基本的加减乘除运算。 2 . 能够实现开方,立方,平方等复杂运算。 3 . 整体的界面展示,显示更加清晰易…

Kafka日志文件存储

日志文件 kafka在server.properties配置文件中通过log.dir属性指定了Kafka的日志存储路径 核心文件 1. log文件 实际存储消息的日志文件, 大小固定1G(参数log.segment.bytes可配置), 写满后就会新增一个新的文件, 文件名是第一条消息的偏移量 2. index文件 以偏移量为索引…

C语言颜色设置

C语言文字颜色和背景颜色设置 代码 #include <stdio.h> #include <stdlib.h>int main() {system("color 11") //背景色和文字颜色system("pause")&#xff1b;return 0; }如上代码是输出蓝色背景和蓝色文字。 在所需要改变窗口颜色的位置调…

因子分析——matlab

目录 一、起源 二、基本思想 三、算法用途 四、实例详解 1.读取数据 2.数据标准化 3.两种不同的做法 3.1 不用函数 3.2 factoran()法 4.对因子得分进行排序 5.对因子得分进行画图 一、起源 因子分析的起源是这样的&#xff1a;1904年英国的一个心理学家发现学生的英…

因子分析——python

目录 一、起源 二、基本思想 三、算法用途 四、因子分析步骤 五、factor_analyzer库 四、实例详解 1.导入库 2.读取数据 3.充分性检测 3.1 Bartletts球状检验 3.2 KMO检验 4.选择因子个数 4.1 特征值和特征向量 4.2 可视化展示 4.3 可视化中显示中文不报错 5.因…

【蓝桥杯每日一练】 三色旗

目录 1.说明 2.解法 3.python实现 第一种 第二种 第三种 1.说明 三色旗的问题最早由E.W.Dijkstra所提出&#xff0c;他所使用的用语为Dutch Nation Flag(Dijkstra为荷兰人)&#xff0c;而多数的作者则使用Three-Color Flag来称之。 假设有一条绳子&#xff0c;上面有红…

C语言结构体数组

结构体数组&#xff0c;是指数组中的每个元素都是一个结构体。 定义结构体数组和定义结构体变量的方式类似。 示例 struct stu{char *name; //姓名int num; //学号int age; //年龄char group; //所在小组 float score; //成绩 }class[5];表示一个班级有5个学生。 结构…

C语言结构体指针

当一个指针变量指向结构体时&#xff0c;我们就称它为结构体指针。 结构体指针的定义形式一般为&#xff1a; struct 结构体名 *变量名;下面是一个定义结构体指针的实例&#xff1a; //结构体 struct stu{char *name; //姓名int num; //学号int age; //年龄char group; /…

熵权法 —— matlab

目录 一、熵权法介绍 二、熵权法赋权步骤 1.指标正向化 mapminmax介绍 2.数据标准化 3.计算信息熵 4.计算权重以及得分 三、实例分析 1.读取数据 2.指标正向化 2.1 越小越优型处理 2.2 某点最优型指标处理 3.数据标准化 4.计算信息熵 5.计算权重 6.计算得分 总…

熵权法 —— python

目录 一、熵权法介绍 二、熵权法赋权步骤 1.指标正向化 mapminmax介绍 2.数据标准化 3.计算信息熵 4.计算权重以及得分 四、实例分析 1.导入相关库 2.读取数据 2.指标正向化 2.1 越小越优型处理 2.2 某点最优型指标处理 3.数据标准化 4.计算信息熵 5.计算权重 6.…

C语言枚举类型详解

情景进入 在编程的时候&#xff0c;有些数据的取值往往是有限的&#xff0c;只能是非常少量的整数&#xff0c;并且最好为每个值都取一个名字&#xff0c;以方便在后续代码中使用&#xff0c;比如一个星期只有七天&#xff0c;一年只有十二个月&#xff0c;一个班每周有六门课…

R语言基础入门(3)之数据类型与相应运算1

目录 一、常量与变量 1.常量 2.变量 二、数据类型 三、数值型向量 3.1 c() 函数 3.2 length(x) 3.3 numeric() 四、向量运算 1.标量和标量运算 2.向量与标量运算 3.等长向量运算 4.不等长向量的运算 五、向量函数 1.向量化的函数 2.排序函数 3.统计函数…

C语言位运算详解

C语言位运算包括&#xff1a;按位与运算、或运算、异或运算、左移运算、右移运算。 位运算&#xff0c;就是对一个比特&#xff08;Bit&#xff09;位进行操作。比特&#xff08;Bit&#xff09;是一个电子元器件&#xff0c;8个比特构成一个字节&#xff08;Byte&#xff09;…

R语言基础入门(4)之数据类型与相应运算2

目录 一、逻辑型向量与比较运算 二、 逻辑运算 三、逻辑运算函数 一、逻辑型向量与比较运算 逻辑型是 R 的基本数据类型之一&#xff0c;只有两个值 TRUE 和 FALSE, 缺失时为 NA。逻辑值一般产生自比较&#xff0c;如sele <- (log10(15) < 2); print(sele) 返回&…

C语言typedef的用法详解

C语言允许为一个数据类型起一个新的别名&#xff0c;就像给人起“绰号”一样。 起别名的目的不是为了提高程序运行效率&#xff0c;而是为了编码方便。例如有一个结构体的名字是 stu&#xff0c;要想定义一个结构体变量就得这样写&#xff1a; struct stu stu1;struct 看起来…

R语言基入门(5)之字符型数据及其处理

目录 1.字符型向量 2. paste() 函数 3.转换大小写 4.字符串长度 5.取子串 6. 类型转换 7. 字符串拆分 8.字符串替换功能 9.正则表达式 1.字符型向量 字符型向量是元素为字符串的向量。如s <- c(abc, , a cat, NA, 李明) s 返回&#xff1a; 2. paste() 函数 针对…

C语言const的用法详解

我们希望定义这样一种变量&#xff0c;它的值不能被改变&#xff0c;在整个作用域中都保持固定。例如&#xff0c;用一个变量来表示班级的最大人数&#xff0c;或者表示缓冲区的大小。为了满足这一要求&#xff0c;可以使用const关键字对变量加以限定&#xff1a; const int M…

R语言基础入门(6)之向量下标和子集

目录 1.正整数下标 2.负整数下标 3.空下标与零下标 4.下标超界 5.逻辑下标 6. which()、which.min()、which.max() 函数 7. 元素名 8.用 R 向量下标作映射 9.集合运算 练习 1.正整数下标 首先定义一个x&#xff0c;然后对向量 x, 在后面加方括号和下标可以访问向量…

C语言随机数的生成

在编程中&#xff0c;我们经常需要生成随机数&#xff0c;例如&#xff0c;贪吃蛇游戏中在随机的位置出现食物&#xff0c;扑克牌游戏中随机发牌等。 在C语言中&#xff0c;我们一般使用 <stdlib.h> 头文件中的 rand() 函数来生成随机数&#xff0c;它的用法为&#xff…

R语言基础入门(7)之数据类型的性质

目录 1.存储模式与基本类型 2.类属 3.类型转换 4.属性 5.str() 函数 6.关于赋值 1.存储模式与基本类型 R语言中根据类型可以将数据划分为&#xff1a; 数值型&#xff08;numeric&#xff09;整数型&#xff08;integer&#xff09;字符型&#xff08;character&#xff09…