如何从第一性原则的原理分解数学问题

news2025/1/11 6:02:44

如何从第一性原则的原理分解数学问题

摘要:牛津大学入学考试题目展示了所有优秀数学家都使用的系统的第一原则推理,而GPT4仍然在这方面有困难

作者:Keith McNulty

我们中的许多人都熟悉直角三角形的边的规则。根据毕达哥拉斯定理,如果a和b是两条较短的边,c是最长的边,那么a² + b² = c²。

alt

已知的整数解称为毕达哥拉斯三元组。例如,(3, 4, 5) 和 (5, 12, 13) 就是其中的一些。

更一般的构造是三元组。任何一组可以构成三角形的正整数三元组都称为三元组

显然,整数毕达哥拉斯三元组也是三元组。但通常情况下,如果一个整数三元组 (a, b, c) 在(非严格)递增的顺序列出时,前两个整数的和严格大于第三个整数,那么它就是一个三元组。

以 (4, 2, 3) 为例。这些可以是三角形的边长,因为2 + 3 > 4。类似地,(2, 2, 2) 是一个三元组。但 (1, 3, 1) 不是三元组,因为无法用这些边长构建三角形(1 + 1 ≯ 3)。

最近牛津大学入学考试的一个问题涉及到三元组,我认为它很好地说明了如何逐步从第一原则分解问题,以解决起初看起来非常具有挑战性的问题。

这个问题定义了一个函数 f(P),其中 P > 2,表示三元组的数量,它们的和为 P。最后,它要求我们找到 f(21)。

找到和为 21 的三元组的数量似乎是一个真正的智力挑战,但是使用一些逐步的系统步骤,我们可以找到一个非常简单的计算方法。

最后,我还将展示像GPT4这样的人工智能在需要第一原则推理的这类问题上存在真正的问题。

以下是问题的各个部分和我的解决方案。我发现这是一个有趣的问题,是数学思维的很好练习,几乎不需要课本知识。

(i) 找到 f(3), f(4), f(5), f(6) 的值 这只是让我们适应思考和理解一个新概念。

由于唯一的正整数三元组,其和为三,是 (1, 1, 1),而且这显然是一个三元组,所以 f(3) = 1

任何和为 4 的正整数三元组都必须包含2。因此,另外两个数字都是1。由于1 + 1 不严格大于 2,所以不存在三元组,因此 f(4) = 0。

任何和为 5 的正整数三元组都必须包含2或3,但不能同时包含。如果它包含3,那么其他两个必须都是1,而这不是三元组。如果它包含2,那么其他两个必须是1和2,这是一个三元组。

因此,(2, 2, 1),(2, 1, 2) 和 (1, 2, 2) 都是这样的三元组,所以 f(5) = 3。

任何和为 6 的正整数三元组必须包含一个4和两个1(不是三元组),一个3、2和1各一个(不是三元组),或者三个2(是三元组)。

因此,唯一的三元组是 (2, 2, 2),因此 f(6) = 1。

(ii) 如果 (a, b, c) 是一个三元组,证明 (a+1, b+1, c+1) 也是一个三元组

首先注意,我们总是可以假设 a, b, c 是(非严格)递增的顺序,因为如果它们不是,我们可以简单地重新排列它们,使它们变成递增的。

这种推理在这个问题的大多数部分都很重要。

现在,由于 a+b > c,我们可以说 (a+1) + (b+1) = (a+b)+2 > c+2 > c+1。因此,(a+1, b+1, c+1) 是一个三元组。

(iii) 如果 (x, y, z) 是一个三元组,x+y+z 是偶数且不小于 6,证明 x, y 和 z 都至少为 2,并且 (x-1, y-1, z-1) 也是一个三元组

再次假设 x, y, z 是递增的。为了证明它们都至少为 2,我们只需要证明 x 不能为 1。假设 x = 1。然后 1+y+z 是偶数,所以 y+z 是奇数。

此外,我们有 1+y > z,所以 y > z -1,因此 y ≥ z。但我们知道 y ≤ z,因此 y = z。所以 y+z 是偶数。

这是一个矛盾,所以 x > 1。

(iv) 证明对于任何大于等于 3 的正整数 k,f(2k-3) = f(2k) 根据第二部分,我们知

道任何和为 2k-3 的三元组都可以通过简单地对每个整数加 1 映射到和为 2k 的三元组。

这意味着和为 2k 的三元组集合至少和和为 2k-3 的三元组集合一样大。

根据第三部分,由于 2k 是偶数且不小于 6,我们知道我们可以通过从每个整数中减去 1 来将和为 2k 的三元组唯一映射到和为 2k-3 的三元组。

这意味着和为 2k-3 的三元组集合至少和和为 2k 的三元组集合一样大。

因此,两个集合必须具有相同的大小,因此 f(2k-3) = f(2k)。

(v) 设 S ≥ 3,令 P = 2S。证明 (a, b, c) 是和为 P 的三元组,如果且仅如果 a, b, c 中的每一个都严格小于 S

这是一个“如果且仅如果”的证明,所以我需要在两个方向上证明它。

再次假设 a, b, c 是递增的,并且它们的和为 P。

首先,我们需要证明如果 a+b > c,那么 c < S。假设 c ≥ S。然后 a+b > c ≥ S,所以 a+b+c > 2S = P。这是一个矛盾,所以 c < S。

现在我们需要证明如果 c < S,那么 a+b > c。如果 c < S,那么 2S-c > S > c。但是 a+b+c = P = 2S,所以 a+b = 2S-c。因此 a+b > c。

(vi) 对于任何 2 ≤ a ≤ S-1,证明使得 (a, b, P-a-b) 成为一个三元组的可能值的 b 的数量为 a-1

根据第五部分,P-a-b = 2S-a-b ≤ S-1。所以 S-a+1 ≤ b。但同时 b ≤ S-1。因此,对于任何特定的 a 值,b 的值可以在 S-a+1 到 S-1 之间变化。

因此,可能的 b 的总数是 (S-1)-(S-a) = a-1。

(vii) 找到任何大于等于 6 的偶数 P 的 f(P) 的表达式

让 (a, b, P-a-b) 是和为 P 的三元组,其中 P 是偶数且不小于 6。根据第三部分和第五部分,我们知道 a 可以从 2 变到 S - 1,而根据第六部分,对于每个这样的 a 值,都有 a-1 个 b 值。

所以我们的 f(P) 的表达式可以如下推导:

alt

(viii) 找到 f(21)

根据第四部分,f(21) = f(24)。由于 24 是偶数且大于 6,我们可以使用第七部分的新公式,取 S = 12,得到答案是 55。

让我们使用Python 和 R 中的一个简单计数函数来双重检查:

Python

def n_triangular_triples(P):
    check = []

    for a in range(1, P + 1):
        for b in range(1, P - a + 1):
            if P - a - b > 0:
                sorted_triplet = sorted([a, b, P - a - b])
                if sum(sorted_triplet) == P and sorted_triplet[0] + sorted_triplet[1] > sorted_triplet[2]:
                    check.append(1)

    return sum(check)

# 测试 P = 21
result = n_triangular_triples(21)
print(result)

R

# 简单计算和为 P 的三元组的函数
n_triangular_triples <- function(P) {
  check <- c()

  for (a in 1:P) {
    for (b in 1:(P - a)) {
      if (P - a - b > 0) {
        sorted <- sort(c(a, b, P - a - b))
        if ((sum(sorted) == P) && (sorted[1] + sorted[2] > sorted[3])) {
          check <- append(check, 1)
        }
      }
    }
  }
  sum(check)
}
# 测试 P = 21
n_triangular_triples(21)
[1] 55

当然,我们还可以使用我们的新公式来计算更大的 P 的 f(P)。

例如,f(997) = f(1000) = 124,251。

我们可以使用 Python或R 中的函数来检查,如果您愿意等待几秒钟让它遍历所有可能的三元组。

n_triangular_triples(997)
[1] 124251

GPT4 在这方面的表现如何?

并不好,尽管它渴望解释三角不等式定理,但如下所示,它的表现并不理想。我提出了三次问题,得到的答案分别是 100、22 和 190。看来真正的智能没有替代品!

您对这个问题有何看法?欢迎发表评论。

本文由 mdnice 多平台发布

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

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

相关文章

动态的中秋爱心演示送女友用python生成爱心软件文末附c++语言写法

用python生成爱心软件 用python生成动态爱心软件 目录 用python生成爱心软件 完整代码 代码解释 逐句解释 效果展示&#xff1a; 如何打包 c写法 完整代码 import turtledef draw_heart():love turtle.Turtle()love.getscreen().bgcolor("black")love.…

python使用execjs利用jsdom来执行含有document的js代码方案(上)

先说一下环境&#xff1a;win7 64位&#xff0c;python3.8.10。 python使用execjs执行含有document的js代码时&#xff0c;会出现报错&#xff1a; execjs._exceptions.ProgramError: TypeError: document 未定义 原因是纯js代码中是不包含浏览器里对象的(如document、windo…

结构体变量的初始化和引用

任务描述 本关任务&#xff1a;从键盘输入两个学生的学号&#xff0c;姓名和成绩&#xff08;整数&#xff09;&#xff0c;分别存入结构体中&#xff0c;输出成绩较高的学生的学号&#xff0c;姓名和成绩。 相关知识 结构体类型用于描述由多个不同数据类型的数据构成的复合…

ENSP防火墙错误40解决办法

推荐版本&#xff1a; win10&#xff1a;ensp-1.3.00、virtualbox-5.2.40 win11&#xff1a;ensp-1.3.00、virtualbox-5.2.44 错误代码40 一、安装路径中不可有中文字符&#xff0c;最好直接安装在默认路径 双击安装好的vbox软件看能否运行&#xff0c;如果可以则跳过该步骤…

C语言入门log02

2023.9.17 周日 江苏 软件&#xff1a;visual studio 2017 &#xff1b;注释快捷键 ctrlk&#xff0c;ctrlc&#xff1b;运行快捷键 ctrlf5 B站视频 P2 #define _CRT_SECURE_NO_WARNINGS 1 用于vs软件的scanf函数报错。 设置方法打开文件粘贴这句话&#xff0c;如果无法…

VuePress网站如何使用axios请求第三方接口

前言 VuePress是一个纯静态网站生成器,也就是它是无后端,纯前端的,那想要在VuePress中,发送ajax请求,请求一些第三方接口,有时想要达到自己一些目的 在VuePress中&#xff0c;使用axios请求第三方接口&#xff0c;需要先安装axios&#xff0c;然后引入&#xff0c;最后使用 本文…

沈阳建筑大学《乡村振兴战略下传统村落文化旅游设计》 许少辉八一著作

沈阳建筑大学《乡村振兴战略下传统村落文化旅游设计》 许少辉八一著作

【自学开发之旅】Flask-前后端联调-异常标准化返回

注册联调&#xff1a; 前端修改&#xff1a; 1.修改请求向后端的url地址 文件&#xff1a;env.development修改成VITE_API_TARGET_URL http://127.0.0.1:9000/v1 登录&#xff1a;token验证 校验forms/user.py from werkzeug.security import check_password_hash# 登录校验…

[计组03]进程详解2

目录 应用程序 系统调用 驱动 软件 再看进程 进程管理 如何管理 ? 创建一个进程 注意 PCB 文件描述表 进程相关重点 为什么有进程调度 虚拟空间地址 这次我们从更加详细全面的角度看一下进程在计算机中体系中的展现 应用程序 应用程序 调动 系…

Maxon Cinema 4D 2024:创新功能助力新境界

Maxon的Cinema 4D 2024是一款在全球范围内广受赞誉的三维动画和建模软件。新版本在速度、性能、本地化、功能增强等多个方面进行了全面的提升&#xff0c;为用户提供了更加流畅、高效且丰富的创作体验。 飞一般的速度 Cinema 4D 2024在速度上较之前的版本有了显著的提升&…

【c++GDAL】IHS融合

【c&GDAL】IHS融合 基于IHS变换融合&#xff0c;实现多光谱和全色影像之间的融合。IHS分别指亮度(I)、色度(H)、饱和度(S)。IHS变换融合基于亮度I进行变换&#xff0c;色度和饱和度空间保持不变。 IHS融合步骤&#xff1a; &#xff08;1&#xff09;将多光谱RGB影像变换到…

拥塞控制概念

网络拥塞 何为拥塞控制&#xff1f;拥塞控制是指在计算机网络中&#xff0c;通过监测网络的拥塞程度并采取相应的措施来维持网络的稳定运行的方法。它的主要目标是确保网络资源的合理利用&#xff0c;避免网络拥塞导致的性能下降和服务质量下降。 为什么需要拥塞控制&#xf…

【力扣每日一题】2023.9.17 打家劫舍Ⅱ

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 打家劫舍2在1的基础上增加了一个规则&#xff0c;那就是房屋是首尾相连的。 这对我们解题有什么影响呢&#xff1f; 唯一的影响就是我们…

数据结构:树和二叉树之-堆排列 (万字详解)

目录 树概念及结构 1.1树的概念 1.2树的表示 ​编辑2.二叉树概念及结构 2.1概念 2.2数据结构中的二叉树&#xff1a;​编辑 2.3特殊的二叉树&#xff1a; ​编辑 2.4 二叉树的存储结构 2.4.1 顺序存储&#xff1a; 2.4.2 链式存储&#xff1a; 二叉树的实现及大小堆…

Logrus日志

目录 一、Logrus 1、Logrus使用 1、下载Logrus第三方库&#xff1a; 2、日志配置文件 3、加载日志配置文件 4、初始化日志记录器 5、在main.go中加载init函数 一、Logrus 日志的重要性及作用 日志是程序的重要组成部分 1.记录用户操作的审计日志 2.快速定位问题的根源…

【计算机视觉】Vision Transformers算法介绍合集(三)

文章目录 一、OODformer二、Colorization Transformer三、MUSIQ四、LeVIT五、Visformer六、Twins-PCPVT七、Conditional Position Encoding Vision Transformer八、Twins-SVT九、Shuffle Transformer十、RegionViT十一、LocalViT十二、EsViT十三、Multi-Heads of Mixed Attenti…

推荐一个页面引导库 driver_js

推荐一个页面引导库 driver.js 页面引导功能是 web 开发中常见的一个功能。通过页面引导功能&#xff0c;你可以让用户第一时间熟悉你的页面功能。今天给大家推荐一个页面引导库 driver.js。 1 简介 driver.js 是一款用原生 js 实现的页面引导库&#xff0c;上手非常简单&am…

远程连接PostgreSQL:配置指南与安全建议

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f405;&#x1f43e;猫头虎建议程序员必备技术栈一览表&#x1f4d6;&#xff1a; &#x1f6e0;️ 全栈技术 Full Stack: &#x1f4da…

UDP/TCP 最大可传输单元细节可不少~

一、MTU 简述 - 分包后数据包最大长度 1、定义 Maximum Transmission Unit&#xff08;最大可传输单元&#xff09; 的缩写&#xff0c;它的单位是字节。在 *数据链路层* 定义 一个数据包穿过一个大的网络&#xff0c;它其间会穿过多个网络&#xff0c;每个网络的 MTU 值是不…

探索Adobe Photoshop 2024:新功能与增强功能详解

Adobe Photoshop 2024&#xff0c;这款传奇的图像编辑软件&#xff0c;近期又迎来了一些令人振奋的新特性。对于专业设计师和摄影爱好者来说&#xff0c;Photoshop 的每次更新都牵动着他们的心。那么&#xff0c;这次的新版本究竟带来了哪些值得我们期待的功能呢&#xff1f;且…