首页 > 其他分享 >杨辉三角讲解

杨辉三角讲解

时间:2024-07-20 10:28:54浏览次数:7  
标签:二分 讲解 mid 算法 杨辉 对角线 杨辉三角

一、背景(阅读时可略过)

(1)杨辉其人

杨辉,字谦光,杭州人,中国南宋时期杰出的数学家和数学教育家。他是世界上第一个排出丰富的纵横图和讨论其构成规律的数学家。著有《详解九章算法》、《日用算法》、《乘除通变本末》、《田亩比类乘除捷法》、《续古摘奇算法》。 杨辉的数学研究与教育工作的重点是在改进筹算计算技术方面,有的还编成了歌诀,如九归口诀。

(2)杨辉三角的发现

杨辉三角不是杨辉首先发现的,而是杨辉之前约200年的贾宪创造的。在杨辉1261年所著的《详解九章算法》一书中,辑录了三角形数表,称之为“开方作法本源”图,并说它“出释锁算书,贾宪用此术”。杨辉三角的发现渊源于高次方程的数值解法。

二、性质

(1)除第一个以外任意一个数等于肩上两数之和

(2)外侧全部是1

(3)自然数序列

(4)三角形数:n(n+1)/2

(5)四面体数:1/6n(n+1)(n+2)

(6)2的次方数:2^(n-1)

(7)斐波那契数列

(8)组合数:(n从零开始)C(n,0)an+C(n,1)a(n-1)b+C(n,2)a(n-2)b2+...+C(n,n-1)ab(n-1)+bn

(9)二项展开式

……

三、经典算法思想

根据上述杨辉三角的性质,我们可以推出其中三种基本思想:

四、相关题型

(均取自洛谷,讲解中部分语句为引用)

(1)P5732 杨辉三角

F1:打表输出(不再赘述)

F2:枚举法(两肩上的数的和等于这个数)

F3:递推思想(两肩上的数的和等于这个数)

(2)P8749 杨辉三角形

F1:打暴力(20分)

F2:二分查找(AC?)

若使用二分查找解决此题:

杨辉三角特性↓

①分析:

按照对角线顺序分析,在原图第n行,且位于第m条对角线上的数,为 C(n,m)​,如图(图中的n指的是层数减一)。根据数位于的层数和对角线数可以计算数是第几个。例如:C(n,m) 就是位于第n层第m个对角线的数, (n+1)*n/2+m+1就是该数字对应的位置。

②二分查找:

按对角线顺序遍历,可以利用单调性进行二分。每一个对角线开头的元素都符合C(2k,k)条件,且对角线上,后面的数一定大于前面的数。注:k为任意常数。本题中的数据最大为10^9,C(32,16)已经大于10^9,所以下面的代码中我们只需要枚举0—16即可。

for(int i=16; i>=0; i--) {
	if(C(2*i,i)<=n) { //遍历对角线开头,因为后面的数一定比开头大
		long long mid,l=i,r=1000000005;
		while(l<r) { //二分查找该对角线下的对应答案
			mid=(l+r+1)>>1;
			long long t=C(mid,i);
			if(t==n) {
				cout<<(mid+1)*mid/2+i+1;//计算第mid层,第i条对角线数据是第几个  Tips:杨辉三角最上层是第0层
				return 0;
			} else if(n>t) {
				l=mid;
			} else {
				r=mid-1;
			}
		}
	}
}

五、总结

我们可以看到,在杨辉三角为背景的题中,大多运用了杨辉三角自身的特性和规律,所以在做数学这类题型时应先找到其规律,对其进行分析后再用所推公式作答。

标签:二分,讲解,mid,算法,杨辉,对角线,杨辉三角
From: https://blog.csdn.net/2301_82336501/article/details/140565841

相关文章

  • Flood Fill(洪水算法)通俗讲解
    ......
  • 【视频讲解】PCA主成分分析原理及R语言2实例合集|附代码数据
    原文链接:https://tecdat.cn/?p=37034原文出处:拓端数据部落公众号 分析师:RuoyiXu在数据分析的浩瀚宇宙中,我们时常面对多变量的数据海洋。这些变量虽然信息丰富,却也给处理带来了巨大挑战:工作量激增,而关键信息却可能淹没在繁杂的数据之中。为了有效减少指标数量同时尽可能保留原......
  • 全网最详细保姆式讲解-汽车电子测试和认证标准科普解析(二)
    这些是汽车电子设备的常见电磁兼容性(EMC)和环境测试标准。以下是每个标准的简要说明:RE,CE(CISPR25,GB18655)RE(RadiatedEmission,辐射发射):测量设备辐射的电磁能量,防止其干扰其他电子设备。CE(ConductedEmission,传导发射):测量设备通过导线传导的电磁能量,防止其干扰......
  • [C++初阶]deque的讲解
    1.deque介绍          Deque是双端队列的不规则缩写。双端队列是具有动态大小的序列容器,可以在两端扩展或收缩。特定的库可能以不同的方式实现deque,通常是某种形式的动态数组。在任何情况下,它们都允许通过随机访问迭代器直接访问单个元素,并根据需要通过扩展和收缩......
  • 基于SpringBoot+Vue+uniapp的公考客观题复习系统的详细设计和实现(源码+lw+部署文档+
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • 【C语言】实现一个通讯录,一步一步详细讲解,小白也能看!!!
    目录设计思路代码实现 代码仓库 设计思路1.通讯录存放的信息这个通讯录保存的信息包括:名字,年龄,性别,电话,住址。2.通讯录的功能1.通讯录可以存放100个人的信息。2.增加联系人3.删除联系人4.修改联系人5.查询联系人6.显示所有人3.文件规划我们准......
  • 基于Python+Django的智能水果销售系统设计与实现(源码+数据库+讲解)
    文章目录前言详细视频演示项目运行截图技术框架后端采用Django框架前端框架Vue可行性分析系统测试系统测试的目的系统功能测试数据库表设计代码参考数据库脚本为什么选择我?获取源码前言......
  • 最全面最详细的字符集讲解来了!
    1.字符集在计算机科学中,信息的存储和处理都是基于二进制数的,这是因为二进制数在计算机硬件层面上实现起来最为简单和高效。二进制数由两个基本元素组成:0和1,这两个元素可以通过电子器件(如晶体管)的开关状态来轻松表示。而我们在屏幕上看到的数字、英文、标点符号、汉字等字符是二进......
  • 视频讲解是考研英语通关路上的得力助手
    在考研这场漫长而艰辛的征途中,英语作为必考科目之一,往往成为许多考生心中的“拦路虎”。面对浩如烟海的词汇、复杂多变的句型结构以及灵活多样的考试题型,如何高效备考,成为了每位考研学子必须面对的问题。而在这个过程中,视频讲解作为一种直观、生动且互动性强的学习方式,正逐渐成为......
  • 基于javaweb jsp ssm校园教务系统+vue录像(源码+lw+部署文档+讲解等)
    前言......