我花了很长时间寻找this problem的解决方案。我画了很多交叉阴影的三角形,简单地数了数三角形,然后寻找某种图案。不幸的是,我撞到了墙。我很确定我的编程/数学技能不符合这个问题的先决条件。
所以我在网上找到了一个解决方案,以便访问论坛。我根本不懂大多数方法,有些方法看起来太复杂了。
有人能告诉我这个问题吗?方法之一,可在此处找到:http://www.math.uni-bielefeld.de/~sillke/SEQUENCES/grid-triangles(问题c)
允许使用单个函数。
他们是怎么想出这个解决办法的?在这一点上,我真的很想了解这个有趣问题背后的一些概念。我知道寻找解决方案不是欧拉精神的一部分,但我很肯定我无论如何也解决不了这个问题。
最佳答案
这本质上是计数组合学中的一个问题,它是计算事物组合的艺术。这是一个美丽的主题,但可能需要一些热身之前,你才能欣赏忍者的伎俩,你提供的参考资料。
另一方面,该问题的解决方案线程中的注释表明,许多人使用暴力方法解决了该问题。最常见的技巧之一是获取图表中三条线的所有可能组合,并查看它们是否产生位于最大三角形内的三角形。
注意到这些线是六个方向中的一个,可以大大减少搜索空间。由于包含两条平行线的线的组合不会产生三角形,因此可以在三倍行上迭代,以便三倍行中的每一行都有不同的方向。
给定三条直线,计算它们的交点。你有三种可能
1)直线重合-它们都在一个公共点上相交
2)两条线在三角形外的一点相交
3)三个交点都是不同的,都在外三角内
只要数一数满足条件(3)的组合,就完成了。需要测试的行组合数是o(n3),这并不禁止。
编辑1:重读你的问题,我得到的印象是,你可能更感兴趣的是得到一个组合数学解决方案/公式的解释,而不是一个暴力方法的大纲。如果是这样的话,那么我就删除这个答案。但我也要说,在这种情况下的问题将不适合这个网站。
编辑2:另请参见a combinatorics solution by Bill Daly and others。从数学上讲,它比另一个稍微温和一些。
关于algorithm - 欧拉计划#163了解,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2830505/