MIT6.042学习笔记(一)——强归纳法,数论(1)

news2024/11/26 19:56:34

如果学生在学校里学习的结果是使自己什么也不会创造,那他的一生永远是模仿和抄袭。——列夫·托尔斯泰

文章目录

  • 引言
  • 强归纳法
    • 例题:拆积木游戏
    • 证明
  • 数论(第一节)
    • 整除运算
      • 例题:取水
      • 证明
    • 公约数
      • 例题
      • 证明
    • Eucild算法

引言

MIT6.042(计算机科学中的数学)是MIT 的离散数学以及概率综合课程,导师是大名鼎鼎的 Tom Leighton ( Akamai 的联合创始人之一)。学完之后对于后续的算法学习大有裨益。

强归纳法

我们平时常用的归纳法证明分为两步(假设Pn表示变量为n时命题成立):

  • 第一步:考虑基准情况,一般是P0或P1
  • 第二步:假设Pn成立,证明Pn+1成立。

强归纳法与归纳法类似,它也分为两步:

  • 第一步:与归纳法相同,考虑基准情况。
  • 第二步:假设P0,P1,…,Pn都成立,证明Pn+1成立。

举个例子来说明强归纳法的应用。

例题:拆积木游戏

每次将叠在一起的多块积木拆成两叠,得到的分数为两叠积木的数量乘积。例如:
在这里插入图片描述
在第一次拆分时,将叠在一起的8块积木拆分成5块的一叠和3块的一叠,得到53=15分;第二次拆分时,将5块的一叠拆分成4块和1块,得到41=4分…如此重复,直到分成八叠一块的积木,分无可分为止,将每次拆分得到的分数相加,就是最后得到的分数。
尝试不同的拆分8块积木的方式,你会发现最后得到的分数都相同。扩展这一特例,我们可以证明:用所有方式拆分n块积木,最后得到的分数都相同。

证明

我们可以用强归纳法来证明。首先,我们需要猜测Pn等于多少。列举P1,P2,P3等例子,我们猜测Pn=n(n-1)/2。(注意:这里有一个强化归纳假设的技巧,我们可以通过证明更强、更明确的归纳假设来证明想要证明的命题),于是,我们转而证明拆分n块积木会得到n(n-1)/2分。

  1. 基准情况:P0已经计算过,满足命题。
  2. 归纳步骤:如果P1,P2,…,Pn都成立,那么证明Pn+1成立。
    在这里插入图片描述
    如图所示,不失一般性地,可以将n+1块积木拆成K块积木和n+1-K块积木。那么:
  • Pn+1
  • =K(n+1-K)+PK(拆分K块积木最后能得到的总分数)+Pn+1-K(拆分n+1-K块积木得到的总分数)
  • =K(n+1-K)+K(K-1)/2+(n+1-K)(n-K)/2
  • =(n+1)n/2 □(这个符号代表证明结束)

总结:当推导Pn+1时不仅需要Pn,Pn-1,也需要从P0到Pn的不确定值时,就需要用强归纳法来证明。

数论(第一节)

整除运算

定义:如果m能整除a,则我们说m|a(注意,和正常除法的顺序相反)。

例题:取水

证明:用一个A加仑的水箱和一个B加仑的水箱量出指定加仑的水,则我们能准确量出的水的加仑数不大于A或B且拥有A和B的最大公约数作为约数。

证明

设A和B的最大公约数为m,我们用(x,y)来表示两个水箱中分别存储的水,则我们需要证明m|x且m|y。我们用归纳法来证明:

  • 基准情况:一开始水箱中没有水,即(0,0),显然符合命题。
  • 归纳步骤:设n步后水箱中为(x,y)符合命题,那么n+1步后可能有如下几种情况:

(0,y)、(x,0)、(a,y)、(a,b)、(x,b)
当x+y<=b时,可以到达(0,x+y)
当x+y<=a时,可以到达(x+y,0)
当x+y>=b时,可以到达(x+y-b,b)
当x+y>=a时,可以到达(a,x+y-a)

不难证明这些情况都拥有m这个约数。□

公约数

定义:A和B的最大公约数称为gcd(A,B)

例题

证明定理:用上面的两个水箱可以量出所有不大于A和B且能被A和B线性变换得到的数。

证明

我们直接给出满足上述定理的算法(不失一般性地,假设A<B):

  • 装满A加仑的水箱
  • 将A水箱中的水加入B水箱
  • 如果B水箱被装满了,倒掉B中的水,返回第2步
  • 如果没有得到想要的加仑数,返回第1步

接下来我们证明这个算法:

在这个算法中,假设我们充满m次A加仑水箱,倒掉n次B加仑水箱,得到r加仑水,则r=mA-nB。设L=mA+qB,那么
r=mA+qB-qB-nB=L-(q+n)B。由于r和L都是正数且小于B,因此q+n=0,所以q=-n,所以r=L。所以这个算法可以得到任意的线性变换。□

Eucild算法

定理:gcd(A,B)=gcd(rem(B,A),A)(rem(B,A)指B和A的余数)。该定理用于求最大公约数。
定理:A和B的最大公约数同时也是A和B的最小正数线性变换。
请添加图片描述
我是霜_哀,在算法之路上努力前行的一位萌新,感谢你的阅读!如果觉得好的话,可以关注一下,我会在将来带来更多更全面的知识讲解!

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

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

相关文章

C语言-static的用法

1、static 关键字 C 语言中 static 关键字修饰变量和函数。 static有三种不同的用法&#xff1a; 1.修饰局部变量&#xff1b; 2.修饰全局变量&#xff1b; 3.修饰函数 局部变量:当函数第一被调用&#xff0c;函数中的静态局部变量被初始化&#xff0c;再次调用这个函数&…

gcc/g++

文章目录 sudo 提权添加白名单gcc / g预处理编译汇编链接 sudo 提权添加白名单 1.寻找root用户 在 /etc/sudoers 文件中修改 添加普通用户的白名单 :/root找到root的白名单所在行数 2.wq!强制保存退出&#xff0c;即可添加成功 gcc / g 推荐写法 gcc mycode.c -o mytest预…

Python绘制柱状图堆叠图

本文详细介绍如何使用 Matplotlib 绘制柱状堆叠图 文章目录 一、引入库二、数据准备三、绘制基本柱状堆叠图1.绘制基本图形2.设置柱子宽度、添加刻度标签和旋转角度 四、完整代码五、运行结果六、python绘图往期系列文章目录 一、引入库 import matplotlib.pyplot as plt imp…

Hyperledger Fabric 超级账本学习【14】Fabcar实例——通过 Nodejs命令 调用链码

文章目录 Hyperledger Fabric2.X 网络 以后对应的 Node Npm 版本需要升级&#xff0c;默认版本太低&#xff0c;后面会报错启动 Fabcar 网络报错运行以下命令来杀死当前运行或者活跃的容器&#xff1a;清除所有缓存网络&#xff1a;添加映射文件进入javascript目录在此文件夹内…

初阶数据结构(7)(树形结构的概念和相关重要定义、树的表示形式、树的应用、二叉树【两种特殊的二叉树、性质、存储、遍历、基本操作、二叉树相关的 OJ 题】)

接上次博客&#xff1a;初阶数据结构&#xff08;6&#xff09;&#xff08;队列的概念、常用的队列方法、队列模拟实现【用双向链表实现、用数组实现】、双端队列 (Deque)、OJ练习【用队列实现栈、用栈实现队列】&#xff09;_di-Dora的博客-CSDN博客 目录 树形结构的概念 …

DPDK官方文档说明

目录 1、Release Notes 2、Getting Started Guide for Linux/FreeBSD/Windows 3、Programmer’s Guide 4、API Reference 5、Sample Applications User Guide 6、DPDK Tools User Guides 7、Testpmd Application User Guide 8、Network Interface Controller Drivers …

网站优化,如何挖掘长尾关键词?

做网站优化来说&#xff0c;挖掘一些长尾关键词的重要性是非常大的&#xff0c;因为长尾关键词给我们带来的流量可能会超过我们的主关键词。如何挖掘长尾关键词&#xff0c;挖掘长尾关键词的的方式有哪些是一个重要的问题。 长尾词挖掘方式&#xff1a; 【1】使用长尾词挖掘工…

机器学习——线性回归、梯度下降

文章目录 一、机器学习的分类二、线型回归Linear regression&#xff08;单变量线性回归&#xff09;三、代价函数3.1 建模误差3.2 平方误差代价函数 Squared error cost function3.3 梯度下降3.4 梯度下降与线性回归相结合 一、机器学习的分类 监督学习&#xff1a;学习数据带…

生成模型之高斯判别分析(GDA)和贝叶斯

生成模型与判别模型的区别 判别模型的学习算法学习给定x下的条件分布p(y|x; θ)&#xff0c; 例如&#xff0c;Logistic Regression&#xff08;对数几率回归&#xff09;将p(y|x; θ)建模为&#xff0c;g是sigmoid函数。 考虑一个分类问题&#xff0c;基于动物的某些特征想…

电商数据监测:如何获取想要的电商平台数据?

随着电商行业的发展&#xff0c;越来越多的企业开始通过电商平台销售商品。为了更好地掌握市场信息和消费者需求&#xff0c;企业需要获取电商平台上的数据。这些数据可以帮助企业制定营销策略、优化产品设计和提高竞争力。本文将介绍如何使用电商API获取想要的电商平台数据。 …

数据库的增删改查(一)

1、CRUD *注释&#xff1a;在SQL中可以使用"--空格描述"来表示注释说明 *CRUD即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母缩写 2、新增(Create) 语法&#xff1a; insert [into] table_name [(column[&#xff0c;column] ...)…

【红队靶场】暗月五月考核靶场sunday

红队靶场 &#x1f389;B站配套视频&#xff1a;【顺手挂个三连呗】 https://www.bilibili.com/video/BV1xu4y1Z71y/?share_sourcecopy_web&vd_source0e30e09a4adf6f81c3038fa266588eff&#x1f525;系列专栏&#xff1a;红队靶场 &#x1f389;欢迎关注&#x1f50e;点赞…

【MySql】ProxySQL

文章目录 ProxySQL运行机制ProxySQL安装ProxySQL的Admin管理接口和admin管理接口相关的变量admin-admin_credentialsadmin-stats_credentialsadmin-mysql_ifaces 读写分离环境信息部署步骤 负载均衡连接池自动摘除宕机的DB动态加载配置访问控制查询缓存ProxySQL 集群来源 Proxy…

送礼物 dfs 双向dfs 剪枝 java

&#x1f351; 送礼物 达达帮翰翰给女生送礼物&#xff0c;翰翰一共准备了 N N N 个礼物&#xff0c;其中第 i i i 个礼物的重量是 KaTeX parse error: Undefined control sequence: \[ at position 2: G\̲[̲i\]。 达达的力气很大&#xff0c;他一次可以搬动重量之和不超…

有效的括号——力扣20

题目描述 思路 1.判断括号的有效性可以使用「栈」这一数据结构来解决 2.遍历给定的字符串 s。当遇到一个左括号时&#xff0c;我们会期望在后续的遍历中&#xff0c;有一个相同类型的右括号将其闭合。由于后遇到的左括号要先闭合&#xff0c;因此我们可以将这个左括号放入栈顶。…

2.项目中的文件

项目的路径是这样的 目录 1 pages 1.1 json 1.2 wxml 1.3 wxss 1.4 js 2 utils 3 .eslintrc.js 4 app.js 5 app.json 6 app.wxss 7 project.config.json 8 project.private.config.json 9 sitemap.json 1 pages pages 用来存放所有小程序的页面&am…

数据结构与算法基础(青岛大学-王卓)(4)

第四弹啊&#xff0c;栈和队列终于叮叮咚咚看完了&#xff0c;小龙虾呀鳝鱼汤啊倍儿香~~~~&#xff0c;配合本文食用更香 &#x1f603; 文章目录 栈和队列栈队列案列的引入栈的表示和操作栈的抽象数据类型定义顺序栈顺序栈的表示顺序栈的初始化顺序栈基本操作顺序栈的入栈顺序…

基于Python的接口自动化-JSON模块的操作

目录 引言 一、JSON是啥&#xff1f; 二、JSON的有效数据类型 三、Python JSON库的使用 结语 引言 在使用Python进行接口自动化测试脚本时&#xff0c;一般都是脚本只写接口测试逻辑实现&#xff0c;而执行脚本时需要的测试用例数据都是写入excel、数据库或者指定的配置文…

入门编程指南:如何从零开始学习编程?

一、自学编程需要注意什么&#xff1f; 自学编程需要注意以下几点&#xff1a; 选择适合自己的编程语言&#xff0c;在学习初期建议选择易入手的编程语言。需要不断地练习&#xff0c;并建立自己的编程项目&#xff0c;以此提高编程技巧和应用能力。追求知识的全面性&#xf…

实验二十二、压控电压源二阶带通滤波器的参数选择

一、题目 如图1所示电路中&#xff0c;已知 R 51 k Ω R51\,\textrm kΩ R51kΩ&#xff0c; R 3 20 k Ω R_320\,\textrm kΩ R3​20kΩ&#xff1b; f 0 1 kHz f_01\,\textrm{kHz} f0​1kHz。利用 Multisim 分析下列问题&#xff1a; &#xff08;1&#xff09;选取合适…