简单的数学运算如何改变算法

news2025/9/21 17:03:21

简单的数学运算如何影响事物

当你坐在无人驾驶汽车上行驶时,突然发现前面有一个问题。一个亚马逊快递司机将他们的货车开到了一辆双停的UPS卡车旁边,然后才意识到无法通过。现在他们卡住了,你也卡住了。

街道太窄,无法实现U型转弯,所以你的AI增强汽车开始进行一个三点转弯。首先,汽车沿着一侧的曲线路径前进。

一旦到达那里,它会向另一侧转向,然后向相对侧的人行道后退。然后它再次将方向盘转向第一侧的曲线路径,向前驶离障碍物。

这种通过中间转向的简单几何算法可以帮助你在狭窄的情况下绕过障碍物。 如果你曾经并排停车,你就知道这种前后摆动可以帮助你。

这里有一个关于车辆绕过的空间有多大的有趣数学问题,数学家们已经研究了一个理想化的版本超过100年。

这始于1917年,当时日本数学家柿谷宗一提出了一个听起来有点像我们的交通堵塞的问题。假设你有一根长度为1的无限细的针。

你可以将针旋转180度并将其返回到原始位置的最小区域是多大?这就是柿谷的针问题,数学家们仍然在研究它的各种变体。

让我们看看使柿谷的针问题如此有趣和令人惊讶的简单几何学。

像许多数学问题一样,这个问题涉及到一些简化的假设,使问题不那么现实,但更容易管理。

例如,车辆的长度和宽度在驾驶时很重要,但我们将假定我们的针的长度为1,宽度为零。

这意味着针本身的面积为零,这在解决问题中扮演了重要角色。此外,我们将假设针可以围绕其前端、后端或中间的任何一点旋转,不像车辆一样。

目标是找到允许针旋转180度的最小区域。找到满足一定条件的最小的东西可能会有一定的挑战,但开始的好方法是寻找任何满足这些条件的东西,看看你可以在途中学到什么。

例如,一个简单的答案是只需将针围绕其端点旋转180度,然后将其向上滑动。这将针恢复到其原始位置,但现在它指向相反的方向,正如柿谷的针问题要求的那样。

所需转弯的区域是半圆,半径为1,其面积是

因此,我们找到了一个可行的区域。

通过充分利用我们神奇的数学针绕其任何点旋转的能力,我们可以做得更好。与其围绕其端点旋转,不如围绕其中点旋转。

我们可以从我们的无人驾驶汽车困境中获得灵感,考虑使用类似于针的三点转弯。这实际上非常有效。

使用这种技术扫掠的针产生的区域称为三叶线,它也满足柿谷的要求。

计算它的面积需要更多比我们在这里讨论的基础几何学了解参数曲线的知识有所帮助),但事实证明,这个特定的三叶线的面积——由长度为1的线段扫出的三叶线——恰好是π的1/8。

现在我们找到了一个更小的区域,可以让柿谷的针绕过,你可能会原谅我认为这就是我们所能做到的最好的。

但是当俄罗斯数学家阿布拉姆·贝西科维奇发现你可以无限制地做得更好时,这个针问题发生了巨大的变化。他提出了一种方法,可以消除区域的不必要部分,直到它足够小。

这个过程是复杂的,但基于贝西科维奇的想法的一个策略依赖于两个简单的思想。首先,考虑下面的直角三角形,高度为1,底边为2。

现在,我们暂时忘记完全将针旋转一周,只关注一个简单的事实:如果我们将长度为1的针放在顶点上,这个三角形足够大,可以让针从一侧旋转90度到另一侧。

现在,这里是第一个重要的思想:

我们可以减小区域的面积,同时保持90度的旋转。策略很简单:我们将三角形切成两半,然后将两半推在一起。

这个新图形的面积必须小于原来的,因为三角形的一部分现在重叠在一起。事实上,计算这个图形的面积很容易:它只是边长为1的正方形的四分之三,所以面积是 A = 3/4,这小于我们开始的三角形的面积。

而且,我们仍然可以将针指向以前的所有方向。只有一个问题:原始角度被分成了两部分,所以这些方向现在分成了两个独立的区域。

如果针在新区域的左侧,我们可以将其旋转45度,位于南和东南之间,如果在右侧,我们可以将其旋转45度,位于南和西南之间,但由于两个部分被分开,似乎无法像以前那样旋转90度。

这就是第二个重要的想法。有一种狡猾的方法可以让针从一侧移动到另一侧,而不需要太多的区域。在国际象棋中,你可能知道骑士以L形移动。好吧,我们的针将以N形移动。

这是它的操作方式。首先,针沿着N的一侧滑动。然后,它旋转以指向对角线,然后滑下。然后它再次旋转,完成其行程,滑到N的另一侧。

乍一看,这种N形状的移动可能看起来不起眼,但它确实有很有用的功能。它允许针“跳跃”从一条平行线到另一条线,这将有助于我们将针从一个区域移到另一个区域。

更重要的是,它在不需要太多区域的情况下完成。事实上,你可以根据需要将其要求的面积减小到很小。原因如下。

请记住,我们的针宽度为零。因此,针向前或向后移动的任何线都将具有零面积。这意味着将针沿着N形状向上、向下或沿对角线移动所需的区域将由零面积的部分组成。

这只留下了N形状的拐角处的旋转。

这些移动确实需要区域。你可以看到每个角落有一个小扇形。但这里的狡猾之处在于:你可以通过拉长N来缩小这些区域。

扇形区域的面积公式是 A = θ/360 πr2,其中 θ 是扇形角的度数。

无论N有多高,扇形的半径始终为1:这是针的长度。但随着N的增高,角度会缩小,从而减小扇形区域的面积。

因此,你可以通过拉伸N来使附加的区域面积尽可能小。

请记住,我们能够通过将三角形分成两部分并使它们重叠来减小三角形区域的面积。问题在于,这将90度角分成了两个独立的部分,阻止我们将针旋转90度。

现在,我们可以通过附加适当的N形状来解决这个问题,以确保针可以从一侧到另一侧。

在这个更新后的区域中,针仍然可以像以前一样旋转90度,只是现在分两个阶段进行。首先,针旋转45度并与左侧的垂直边对齐。

接下来,它沿着N的形状移动,以到达另一侧。一旦到达那里,它就可以自由地旋转另外的45度。

这使得针可以旋转90度,并为保持旋转,只需添加区域的旋转副本。

通过添加适当的N形状,针可以从一个三角半岛跳到下一个,一点一点地旋转,就像汽车执行三点转弯一样。

这些细节中还有更多的数学问题,但这两个想法——我们可以不断减小原始区域的面积,通过切割和移动确保我们可以使用任意小的N形状从一个部分到另一个部分

——帮助我们将针在一个不断缩小的区域中移动,最终可以变得很小。

建立这种区域的更标准的方法是从等边三角形开始,使用“Needle树”,这是一种巧妙的方法,可以切割三角形并将碎片拉长和滑动在一起。

结果非常令人惊叹。

最近,数学家在这个古老问题的新变种中取得了进展,这些问题设置在更高维度,并采用不同的大小概念。

我们可能永远不会看到一辆AI驱动的汽车在执行柿谷针对点转弯,但我们仍然可以欣赏它几乎不存在的美和简单。

练习1. 作为柿谷针对点集的最小等边三角形的面积是多少?

查看答案1:

高度为1的等边三角形有足够的空间,可以让位于一个顶点的针从一侧摆动到另一侧。一旦在一侧,它可以滑到另一个顶点,旋转,然后继续旅程,直到回到起始位置,指向相反的方向。

边长为s的等边三角形的面积是。您可以使用三角法或毕达哥拉斯定理来确定高度为1的等边三角形的边长。因此,面积为

练习2. 您可以通过使用“Reuleaux三角形”来比练习1的等边三角形好一点,它是由三个重叠的圆形扇区组成的区域。

最小Reuleaux三角形的面积是多少?

查看答案2:取三个半径为1,角度为60度的圆形扇区,并排列它们,以便它们都与边长为1的等边三角形重叠。

这个区域允许长度为1的针完全旋转。

三个圆形扇区的面积之和计算了三角形重叠的面积三次,因此总面积是三个圆形扇区的面积之和减去两次三角形重叠:

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

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

相关文章

什么!复杂环境下的编队控制问题还能这样解决?

恭喜南京航空航天大学-王志伟同学,在参与阿木实验室校园赞助-Prometheu技术文章创作活动中成功入选,将获得阿木实验室现金奖励500元!现将相关文章内容分享给大家,鼓励更多的同学加入到我们校园赞助活动中来! 近年来&a…

自学(黑客)技术——网络安全篇

如果你想自学网络安全,首先你必须了解什么是网络安全!,什么是黑客!! 1.无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面性,例如 Web 安全技术,既有 Web 渗透2.也有 Web 防…

MySQL报错 table “xxx” doesn‘t exit

问题描述 以前项目的数据库部署在云端Windows Server系统上,最近有需求要把数据库移到CentOS7的服务器上,数据转移到时候一切正常,并且使用Navicat for MySQL访问数据库的时候也没有异常,但是项目实际运行起来的时候接口一直在报…

第十三更---大家都在那里查找资料??

今天聊点题外话。大家都在那里查找资料呢,如今的资源网站太多了,眼花缭乱。今天我把一些常见的平台罗列一下 大家还有什么宝藏网站的话多多评论区分享吧 目录 一.CSDN 二.掘金 三.菜鸟教程 四.MDN 五.牛客 六.博客园 七.b站 八.微信读书 一.CSD…

VMWare 安装CentOS7镜像

安装CentOS 7 整个安装过程分两大步,第一步装机器,第二步装系统. 第一步: 装机器 检查物理机虚拟化支持是否开启,需要进入到BIOS中设置,因各种电脑型号进入BIOS 方式不同,同学们自行查找对应品牌电脑如何进入BIOS 建…

IIS 解析漏洞复现

文章目录 IIS 解析漏洞复现1. 漏洞描述2. 漏洞复现3. 漏洞原因4. 安全加固5. 安全防护 IIS 解析漏洞复现 1. 漏洞描述 说明内容漏洞编号漏洞名称IIS 解析漏洞漏洞评级高危影响范围IIS 6.0及以前版本IIS 7.0IIS 7.5漏洞描述IIS 解析漏洞是指在 IIS 服务器上存在的安全漏洞&…

Webmin远程命令执行漏洞复现报告

漏洞编号 CVE-2019-15107 漏洞描述 Webmin是一个基于Web的系统配置工具&#xff0c;用于类Unix系统。密码重置页面中存在此漏洞&#xff0c;允许未经身份验证的用户通过简单的 POST 请求执行任意命令。 影响版本 Webmin<1.920 漏洞评级 严重 利用方法&#xff08;利…

小谈设计模式(26)—中介者模式

小谈设计模式&#xff08;26&#xff09;—中介者模式 专栏介绍专栏地址专栏介绍 中介者模式分析角色分析抽象中介者&#xff08;Mediator&#xff09;具体中介者&#xff08;ConcreteMediator&#xff09;抽象同事类&#xff08;Colleague&#xff09;具体同事类&#xff08;C…

# Spring Cloud的新潮流:服务网格与无缝通信

文章目录 微服务通信的挑战引入服务网格Spring Cloud和服务网格的融合Envoy与Spring Cloud的集成服务网格的可观察性 服务网格的安全性无缝的微服务通信结语 &#x1f389;欢迎来到架构设计专栏~# Spring Cloud的新潮流&#xff1a;服务网格与无缝通信 ☆* o(≧▽≦)o *☆嗨~我…

Docker在边缘计算中的崭露头角:探索容器技术如何驱动边缘计算的新浪潮

文章目录 第一部分&#xff1a;边缘计算和Docker容器边缘计算的定义Docker容器的崭露头角1. 可移植性2. 资源隔离3. 自动化部署和伸缩 第二部分&#xff1a;应用案例1. 边缘分析2. 工业自动化3. 远程办公 第三部分&#xff1a;挑战和解决方案1. 网络延迟2. 安全性3. 管理和部署…

大数据之力:从数据湖到数据智能的升级之路

文章目录 什么是数据湖&#xff1f;什么是数据智能&#xff1f;数据湖与数据智能的结合实现数据湖和数据智能的关键技术挑战和未来展望结论 &#x1f389;欢迎来到AIGC人工智能专栏~大数据之力&#xff1a;从数据湖到数据智能的升级之路 ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&#…

常用burpsuite渗透插件

burpsuite_plugin 个人常用burpsuite渗透插件&#xff0c;根据常用系列插件为&#xff1a; 1.TsojanScan 2.RouteVulScan 3.BurpJSLinkFinderv2 大大提高渗透测试存在某些难以发现的接口未授权&#xff0c;SQL注入等&#xff0c;用了之后腰也不疼了&#xff0c;脑子又长了…

2023年八款优质替代Microsoft Project的选择(免费和付费)

过去&#xff0c;许多公司在没有预算或预算紧张的情况下都依赖MicrosoftProject来进行项目资源规划。然而许多用户期望从他们的商业软件中获得的许多最先进的项目管理功能但Microsoft工具并没有提供。小公司如何平衡预算现实与软件需求&#xff1f; 项目管理软件领域已经飞速发…

信号功率谱密度理解及其与频谱和能量谱的区别

信号功率谱密度理解及其与频谱和能量谱的区别 一、功率谱密度的特点 信号的功率谱密度函数是指这样的频率函数&#xff1a; &#xff08;1&#xff09;在整个频率范围内对它进行积分后&#xff0c;就能得到信号的总功率&#xff1b; &#xff08;2&#xff09;它描述了信号功…

Open CV 3D Python 环境搭建

1、安装Windows-Python环境 下载exe 并安装 https://python.p2hp.com/downloads/windows/index.html 安装路径随意, 基本一路默认,下一步、下一步 注意有个钩&#xff1a;添加到环境变量 检测是否成功安装Python 环境 CMD输入python 2、安装OpenCV -Python 包来自清华大学…

Java架构师概要设计

目录 1 导学2 概要设计之任务和方法2.1 继续架构设计2.2 继续技术选型2.3 确定技术栈2.4 架构原型实现与验证2.5 技术预研2.6 分服务分模块2.7 初步设计应用基础框架2.8 定义基本API2.9 定义实体对象2.10 定义数据库表结构3 构建项目工程和环境4 代码组件的关系5 总结1 导学 本…

COCO数据集中图像的caption读取到txt文件

annotations_trainval2017.zip import os import shutil import jsoncaptions_path r"G:\SketchDiffusion\Sketchycoco\Dataset\annotations\captions_train2017.json" # 读取json文件 with open(captions_path, r) as f1:dictortary json.load(f1)# 得到images和…

C语言,指针的一些运算

若创建一个数组&#xff1a;int arr[10] 0; 用指针变量来储存数组首元素的地址&#xff1a;int* p arr,这里arr是数组名&#xff0c;表示首元素地址。 若p p 1或者p之后p本来指向数组首元素地址&#xff0c;就变成了指向第二个元素的地址&#xff0c;p n即指向第n 1个地…

PyTorch 深度学习之处理多维特征的输入Multiple Dimension Input(六)

1.Multiple Dimension Logistic Regression Model 1.1 Mini-Batch (N samples) 8D->1D 8D->2D 8D->6D 1.2 Neural Network 学习能力太好也不行&#xff08;学习到的是数据集中的噪声&#xff09;&#xff0c;最好的是要泛化能力&#xff0c;超参数尝试 Example, Arti…

sql case when用法

文章目录 学习链接SQL之CASE WHEN用法详解简单CASE WHEN函数CASE WHEN条件表达式函数常用场景场景1&#xff1a;简单条件使用场景2&#xff1a;多目标字段统计场景3&#xff1a;经典行转列&#xff0c;并配合聚合函数做统计场景4&#xff1a;CASE WHEN中使用子查询场景5&#x…