• 利用蒙特卡罗法,国外老哥成功制造出 100% 投篮命中的篮板!


    点击关注上方“五分钟学算法”,

    设为“置顶或星标”,一起交流成长。

    转自DeepTech 深科技

    NBA 的大结局可能是什么?是时候将一位油管博主的创作纳入其中了。

    在一个名为 “Stuff Made Here” 的频道,名叫 Shane Wighton 的国外老哥展示了这样一块神奇篮板 —— 无论球砸到篮板的哪个位置,都能被反弹进入篮筐看看这个演示效果:

    (来源:YouTube)

    或许很多人会认为,和全球数以万计的因新冠疫情被困家中的工程师一样,Wighton 只不过是又做出了一个无聊的产物。

    要打造一块百发百中的篮板绝非易事。

    因为每次投篮的角度不一样,球撞击篮板的运动轨迹就会发生变化,加上重力的影响,在 Shane Wighton 创造出来的篮筐之前,我们很难想象一个百发百中的篮板会是什么样。

    那么,这位工程师又是如何实现的?


    (来源:YouTube)

    现在我们所看到的篮球框,本身就已经是经过工程学设计的产品,只有击中特定的区域才会进篮,因此成为篮球运动员的核心竞争力,如果要将其设计成能够百发百中,意味着只要将球抛向并击中篮板,这个篮筐就可以将球 “引导” 到筐中。

    (来源:YouTube)

    根据 Shane Wighton 在视频中的介绍,他首先考虑的就是要摒弃这种不能 “引导” 篮球的平板设计。因为平板的设计意味着篮球只有打在特定的位置才能进篮筐。

    图丨 iPad 在 Shane Wighton 手中是一个强大的生产力工具(来源:YouTube)


    他一开始就非常清楚地锁定了这一点,这种 “引导” 的能力必须基于篮板具有一定的弧度。

    但是,又是什么样的弧度才能具备这种百发百进的能力?在篮球入框概率小的位置,这种辅助弧度能帮助纠正运动轨迹。


    每一点的 “辅助弧度” 集合和优化,就将是这个万能篮球板的全貌。

    显然,这并非一个简单的数学模型计算就能解决。

    图丨一次随机投篮的计算和模拟(来源:YouTube)


    为了确定篮板的最佳形状,让不同角度打到篮板的球都能落入篮框中,Wighton 专门开发一个电脑软件,可以模拟数百种不同角度和速度的投篮。

    这个电脑软件所需要做的,就是利用蒙特卡洛法暴力求解。

    图丨老哥展示的软件代码(来源:YouTube)


    蒙特卡洛法是一种著名的数学方法,它通过对大量事件的统计结果来实现对确定性事件的计算,换句话说,就是先大量模拟,然后统计目标事件发生的次数,再用这个发生次数除以总模拟次数,就得到想要的结果。比如,有两个筛子,想要确定扔出两个 1 的概率是多少,那么可以扔一万次,记录下出现 “双 1” 的次数,用得到的次数除以 1 万次,就是结果了。科幻小说《三体》中,数学家魏成探索三体问题,正是基于这种方法,他将复杂的三体问题简化成数学模型,繁重的公式推导由此转变成统计量问题。

    许多人在现实生活中听说这种数学思想,恐怕还是源于 2016 年的 AlphaGo 战胜李世石。当时,初代 AlphaGo 就是借助蒙特卡洛树搜索法,结合深度神经网络,将取得棋局胜利的目标分解成数千个可能的节点,在每一步反应后评估最有可能成功的下一步,并进一步探索这个 “分支”。

    借助这种数学思想,老哥开发的软件在模拟了千万次量级的投篮过程之后,又用最小二乘法将计算结果进行优化,最终拟合成为光滑曲面,得出椭圆形的抛物面形状图。

    接下来的事情就简单多了,有了形状之后借助计算机进行 3D 建模,再将其分成若干份并标上数字,使用数控机床和 3D 打印,老哥拥有了制造出来这样一块篮板所需的部件,再用加上一些膨胀泡沫用以填补木板与木板之间的裂缝,最后组装成完整的光滑篮板。

    组装好了之后,戏剧性的一幕来了:在第一次测试时,篮板并没有如 Wighton 设想的发挥作用,每次投篮都是反弹打至篮框弹出。

    经过调查分析,Wighton 意识到自己的模拟并没有加上球的大小。


    看到这里你可能会想,完蛋了,老哥又要重新开始操作一轮。

    然而,老哥解决这个问题的思路非常简单:把篮筐往前调了一些距离,移动了 6 厘米。

    在完成这一步之后,“魔法” 显灵了。视频演示中确实发发命中了。


    这个长达 21 分钟的视频受到了很多网友的热烈反响,观看次数超过 435 万,一则是老哥再次展示了科学知识的魅力所在,如果你没有投中篮筐的能力,科学知识可以帮你解决这个问题(当然前提是你投的球还是得碰到篮筐)。

    另外,老哥整个解决问题的思维阐述和操作过程都非常完整,从提出问题、分析问题到解决问题,堪称产学研一条龙典范。事实上,老哥没有因为这件事在旁人看来可能比较无聊而放弃,Wighton 表示自己一直想设计一个这样的篮筐,直到这次疫情给了他这个闲暇的时间。

    有网友调侃,嘉年华应该引进这个篮板,游戏规则是:投篮打板不中,赢得一个奖品。

    有网友建议 Wighton 去给这个设计申请专利,然后找到一家可以批量生产公司,“我会买一个,看起来很有趣”。

    前 NASA 和 Apple 工程师、现油管网红 Mark Rober 也在视频下留言称,“这真的很酷,有点像我的想法,我想和你讨论一下。” 并留下了自己邮箱。

    据悉,Wighton 目前没有将这款篮球框原型商品化的计划,但他可能会针对办公室场景为垃圾桶制作一个微型版本,这个版本可能会面向消费者售卖。

    本文转自:DeepTech 深科技

    参考:

    https://youtu.be/vtN4tkvcBMA


    推荐阅读

    •   C++是如何从代码到游戏的?•   告诉你一个学习编程的诀窍(建议收藏)•   自学编程的八大误区!克服它!•   新手如何有效的刷算法题(LeetCode)•   10款VS Code插件神器,第7款超级实用!•   在拼多多上班,是一种什么样的体验?我tm心态崩了呀!•   写给小白,从零开始拥有一个酷炫上线的网站!


    欢迎关注我的公众号“五分钟学算法”,如果喜欢,麻烦点一下“在看”~

  • 相关阅读:
    MySQL binlog中 format_desc event格式解析
    位bit和字节Byte
    MySQL利用mysqlbinlog模拟增量恢复
    mysqldump参数 --master-data详解
    开启MySQL二进制日志
    设置花里胡哨的Xshell字体与背景颜色(超全)
    Python操作MySQL数据库
    给定一个由括号([{)]}其中之一或多个组成的字符串判断是否符合左右括号成对标准,不同括号可任意嵌套
    给定一个字符串str,将str中连续两个字符为a的字符替换为b(一个或连续超过多个字符a则不替换)
    不使用局部变量和for循环或其它循环打印出如m=19,n=2結果为2 4 8 16 16 8 4 2形式的串
  • 原文地址:https://www.cnblogs.com/csnd/p/16674796.html
Copyright © 2020-2023  润新知