一个10*10的正方形里,最多可以放多少个直径为1的圆?为啥不是100个?

祝大家

元宵节快乐

知识君曾经给大家出了一道题。

Q:在一个10*10的正方形里,最多可以放多少个直径为1的圆?为啥不是100个?

关于这道题,后台就收到了许多留言,大家纷纷给出了不同的答案。

五花八门的答案,究竟哪一个才是正确的呢?现在就让小天来给大家揭晓吧。

答案:106个。下面开始解题

首先,大家想想一个硬币最多能和几个硬币相邻?六个 。

那如果一个格子放一个硬币,那是占几个呢?四个。

这也意味着有大量的空间被浪费了。所以,重新排列后,这样就有105个圆了。

然后聪明的你是不是发现还有空隙?那就将它利用起来!

这样安排就又多了个10排的,神奇的又插了一个进去。

那么,还能不能再用什么神奇的方法再搞一个进去呢?

不好意思,不可能了...强扭的瓜不甜,强塞的圆不……

我们现在来用数学证明不能放下107个圆呢?有两种思路

  • 1、把正方形看做一个框,把圆看成光滑的小球,然后你取一个球,使劲压,看看能不能压进去。

当然现实中是没有绝对光滑小球的,实际没法做这个实验。

但数学上可以定义小球与小球,小球与方框之间的势能,然后用各种算法降低势能,看看最小值能不能降到零即可。

  • 2、取n个小球,然后放进一个方框,方框使劲收缩,收缩到无法再收缩为止。

最终结果就是最优平面圆堆积,这种方法比上一种要复杂一些。

但是数学家一般喜欢研究第二个,因为至少对于正方形等圆嵌入来说,解决了第二个也就解决了第一个。对于矩形才会用第一种方法。

但这个思路说得轻巧,可数学上怎么定义使劲收缩呢?

Talk is cheap, Show me the code!

https://bura.brunel.ac.uk/bitstream/2438/7455/1/FulltextThesis.pdf

这本书整理了这方面的研究成果,第72页讨论了圆塞入正方形,后面还有更难的不相等图形塞进不规则边框。

书中没给结果,算法都是伪代码,不用完全看懂公式也能复现。

运算时间要有心理准备,一次差不多要跑半个小时。

计算结果表明106个直径为1的圆能放进边长9.996960840529825的正方形

但是如果要放置107个直径为1的圆就要边长10.09975184413619的正方形

所以确实10*10的正方形只能塞下106个直径为1的圆。

注意有轻微的形变,比如右下那个没对齐,上边框第五个圆脱离了边框,但是只有0.4%,整体上和原来差不多。

最后,附上全部的绘图代码:

t1=Flatten[Table[{i,j},{i,1,19,2},{j,1,19,2}],1];
Append[Circle/@t1,
   {EdgeForm[Dashed],RGBColor[0,0,0,0],Rectangle[{0,0},{20,20}]}
]//Graphics
f10=Circle/@Table[{i,#},{i,1,19,2}]&;
f9=Circle/@Table[{i,#},{i,2,18,2}]&;
Join[
   Table[{f10[1+(i-1)Sqrt[3]]},{i,1,11,2}],
   Table[{f9[1+i Sqrt[3]]},{i,1,10,2}],
   {EdgeForm[Dashed],RGBColor[0,0,0,0],Rectangle[{0,0},{20,20}]}
]//Graphics
Join[
   Table[{f10[1+(i-1)Sqrt[3]]},{i,1,5,2}],
   Table[{f9[1+i Sqrt[3]]},{i,1,4,2}],
   Table[{f10[4Sqrt[3]+3+(i-1)Sqrt[3]]},{i,1,5,2}],
   Table[{f9[4Sqrt[3]+3+i Sqrt[3]]},{i,1,4,2}],
   {f10[19]},
   {EdgeForm[Dashed],RGBColor[0,0,0,0],Rectangle[{0,0},{20,20}]}
]//Graphics
pts={
   {-8.99696,-8.99696},{-8.99696,-5.39534},{-8.99696,-1.93124},{-8.99696,0.0687576},{-8.99696,3.53286},
   {-8.99696,6.99696},{-8.99696,8.99696},{-8.03644,-7.23071},{-7.99696,-3.66329},{-7.99696,1.80081},
   {-7.99696,5.26491},{-7.,-5.50556},{-6.99713,-8.97132},{-6.99696,-1.93124},{-6.99696,0.0687576},
   {-6.99696,3.53286},{-6.99696,6.99696},{-6.99696,8.99696},{-6.,-7.23761},{-6.,-3.77351},{-5.99696,1.80081},
   {-5.99696,5.26491},{-5.,-5.50556},{-5.,-2.04146},{-5.,-0.0414576},{-4.99729,-8.99696},{-4.99696,3.53286},
   {-4.99696,6.99696},{-4.99696,8.99696},{-4.,-7.23961},{-4.,-3.77351},{-4.,1.69059},{-3.99696,5.26491},
   {-3.,-5.50556},{-3.,-2.04146},{-3.,-0.0414576},{-3.,3.42264},{-2.99746,-8.97113},{-2.99696,6.99696},
   {-2.99696,8.99696},{-2.,-7.23761},{-2.,-3.77351},{-2.,1.69059},{-2.,5.15469},{-1.,-5.50556},{-1.,-2.04146},
   {-1.,-0.0414576},{-1.,3.42264},{-1.,6.88675},{-1.,8.88675},{-0.997623,-8.99696},{0.,-7.23961},{0.,-3.77351},
   {0.,1.69059},{0.,5.15469},{0.996961,6.99696},{0.996961,8.99696},{1.,-5.50556},{1.,-2.04146},{1.,-0.0414576},
   {1.,3.42264},{1.00221,-8.97093},{1.99696,5.26491},{2.,-7.23761},{2.,-3.77351},{2.,1.69059},{2.99696,3.53286},
   {2.99696,6.99696},{2.99696,8.99696},{3.,-5.50556},{3.,-2.04146},{3.,-0.0414576},{3.00204,-8.99696},
   {3.99696,1.80081},{3.99696,5.26491},{4.,-7.23961},{4.,-3.77351},{4.99696,-1.93124},{4.99696,0.0687576},
   {4.99696,3.53286},{4.99696,6.99696},{4.99696,8.99696},{5.,-5.50556},{5.00187,-8.97074},{5.99696,-3.66329},
   {5.99696,1.80081},{5.99696,5.26491},{6.,-7.23761},{6.99696,-5.39534},{6.99696,-1.93124},{6.99696,0.0687576},
   {6.99696,3.53286},{6.99696,6.99696},{6.99696,8.99696},{7.00169,-8.99696},{7.99696,-7.12739},{7.99696,-3.66329},
   {7.99696,1.80081},{7.99696,5.26491},{8.99696,-8.85945},{8.99696,-5.39534},{8.99696,-1.93124},{8.99696,0.0687576},
   {8.99696,3.53286},{8.99696,6.99696},{8.99696,8.99696}
};
Echo[m = Max@First@Transpose@pts + 1, "Min: "];
Append[
 Circle /@ pts,
 {EdgeForm[Dashed], RGBColor[0, 0, 0, 0], Rectangle[{-m, -m}, {m, m}]}
 ] // Graphics

所以,你现在知道,为什么答案是106个圆了吗?

本文来源于酱紫君(知乎)

https://www.zhihu.com/question/67716815/answer/401858575

部分资料来源于网络

转载请在公众号中,回复“转载”

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

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

相关文章

【开源框架】:解决方案级别的代码生成器 WebFirst

框架描述WebFirst 是一新代的 代码生成器,用法简单,功能强大,支持多种数据库 ,具体功能如下:一、 建库、CodeFirst方式在线建表,没用到CodeFirst的用户可以用工具轻松体验,支持公共字段二、导出…

在netbeans下使用调试PHP的插件XdeBug

本人的开发环境: wamp最新官网wampserver2.2d-x32版。 下载点:http://nchc.dl.sourceforge.net/project/wampserver/WampServer%202/WampServer%202.2/wampserver2.2d-x32.exe PHP:5.3.10 apache :2.2.21 要使用到NetBeans的调试功能&#xf…

老娘不就是没化妆吗?你几个意思?

1 可能是环境的原因唤醒了雪橇犬的祖传技能▼2 这是花仙子吧!怎么能生的出这么好看的崽▼3 你什么表情?老娘不就是没化妆吗▼4 我们是专业的,一般不会笑除非忍不住▼5 你知道小兔子会游泳吗▼6 狗子的快乐你体会不了▼7 谁能告诉我这到…

790页微软官方《.Net核心编程》高清版PDF,提供下载

本文档由微软技术专家编写,从1.1版本持续维护升级至今,开篇就详细对比了各版本中的差异,内容包含了ASP.NET Core、Blazor、WebAPI、SignalR、gRPC、EF Core、云原生,既是最权威的,也是最全面的,是学习跨平台…

真烧脑!60种小学奥数分类题型大汇编!做了几道题,感觉身体被掏空……

全世界只有3.14 % 的人关注了爆炸吧知识很多的家长都在问:小学奥数怎么学?有哪些重点?需要大量练习吗?其实,数学的题型万变不离其宗,了解题型,领悟题目的思路方法,一定胜过盲目狂练5…

保护我方Id | ASP.NET Core Web API使用加密Id

前言上次,我们介绍了hashids.net,可以将数值型Id加密成无意义的字符串,但是通过这些字符串又可以反向映射出真实的Id以供内部使用。比如B站的播放链接https://www.bilibili.com/video/BV1xK4y1VXXX应该就是这种实现方式。但是,我们…

用java写注册表单_利用HTML表单标签编写一个注册页面

今天我们来写一个注册页面form表单先来利用表单标签制作一个简单的注册页面,给大家说说标签的结构:页面结构大体就是这样子的~利用HTML表单标签编写一个注册页面表单标签:所有需要提交到服务器端的表单项必须使用包起来~form标签的属性:action:整个表单提交的位置(可以是一个页…

我被Dapr点燃

Dapr的热度个人认为才刚刚热起来,9月份我写了Dapr .NET Core实战一共10篇,从基础概念到简单的实战,但是有很多人感兴趣,具体表现在我个人维护的QQ群,人数从80人左右,增加到了155,将近增加了1倍…

Http Only Cookie保护AccessToken

【导读】JWT认证方式目前已被广泛使用,一直以来我们将token放在请求头中的Authorization中,若通过此种方式,一旦token被恶意窃取,攻击者可肆意对用户可访问资源进行任意索取我们大多都是通过登录成功后,响应AccessToke…

当女朋友生气了而你却没发现 !!!

1 当女朋友生气了而你却没发现。。诶,你咋不吃呢?2 会说话的尾巴。。尾巴:人呢!!3 小树枝:生命中不能承受之重!心疼小树枝!4 土耳其冰淇淋小哥终于被反杀了!天道好轮…

弱引用什么时候被回收_Java基础 强引用、弱引用、软引用、虚引用

前言在ThreadLocal源码中,其中嵌套类ThreadLocalMap中的Entry继承了WeakReferenc。Java中提供这四种引用类型主要有两个目的:第一是可以让程序员通过代码的方式决定某些对象的生命周期;第二是有利于JVM进行垃圾回收。强引用(StrongReference)…

再译《A *路径搜索入门》之四

2019独角兽企业重金招聘Python工程师标准>>> ■在A *方法总结 Summary of the A* Method 好了,现在你通过解释已经走了,让我们奠定了一步一步的方法,在同一个地方: Okay, now that you have gone through the explanat…

记一次 .NET 某电商定向爬虫 内存碎片化分析

一:背景 1. 讲故事上个月有位朋友wx找到我,说他的程序存在内存泄漏问题,寻求如何解决? 如下图所示:从截图中可以看出,这位朋友对 windbg 的操作还是有些熟悉的,可能缺乏一定的实操经验&#xff…

php 合成图片 透明,2020-05-19 php实现透明png多图合成

图片合成的流程一般是,获取图像资源——合成——输出。png图片,一般就用imagecreatefrompng()获取资源。不过这个资源获取后是有白底的。所以需要用imagesavealpha()进行图像处理,得到包含有透明背景的图像。//原始图像$dst "img/1.png…

ArcEngine 没有Esri.ArcGis.GeoAnalyst 命名空间

http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid69977&extrapage%3D1&ordertype1 AE安装的时候分为Core和Extension. Esri.ArcGis.GeoAnalyst位于Extension里面. (1)确保安装的时候是完全安装 (2) 转载于:https://www.cnblogs.com/imihiroblog/archive/2012/04/1…

微信功能“拍一拍”,都有谁在“拍”你?

全世界只有3.14 % 的人关注了爆炸吧知识微信新功能总在悄咪咪更新,“拍一拍”一出,很多小伙伴都会收到各种群里面千奇百怪的“拍一拍”,到底都是谁在偷偷关注你?真正决定人与人之间的差距的,其实是我们对事物的见识与内…

sql 触发器_一键生成某个sql的html--记录执行计划、统计信息、触发器等

概述当你获得某个sql的sql_id时,怎么去一键获得这个sql的一些信息呢,例如列的情况、执行计划等等..脚本有点长,建议大家用电脑来看..下面用一个简单测试来演示下,附脚本领取方式。1、获取sql_idSQL> select a.* from (select S…

别等了,全面「远程办公」凉了

大家好,我是Z哥。这是一篇迟到的文章。具体原因是,昨天定时发送的时候没注意已经过了0点了,习惯性的选了明天11点45,然后才发现实际变成10月9日的11:45了。赶紧取消重新发一下。好了,回到正文。不知道你是否…

PHP做闹钟APP,8款超好用的闹钟APP,专治各种赖床

这是什么神仙APP,我再也不怕冬天起不了床!有了它们,再也不怕懒床迟到了!好用到爆!可爱女生闹钟(超可爱的用户界面)这界面真是太可爱了,软萌妹子必备啊。推荐指数:★★★★怪物闹钟(玩游戏才能关…

easy html5 - Jquery mobile

今天看了下jquery mobile(http://jquerymobile.com/),看了后自己很兴奋;jquery 在web js框架上的风暴还在继续却也随着移动终端走向了mobile;那么jquery mobile到底包括些什么呢 首先jquery mobile是基于html5的,因为html5已经被默…