不确定如何解决这个有点复杂的问题……我想为实际应用程序创建一个通用的解决方案查找器

问题描述

我相信我已经尽可能简单地概括了这个问题。

这里是给出的:

(1)矩形的尺寸。

(2)网格/网格尺寸是恒定的,即6x6。

(3)点坐标。

(4)从点长发出的线是恒定的,即3。

(5)从点开始,绿色区域为0.75-1.5。

(6)蓝色区域距离矩形周长1.25英寸。

(7)发出点的线永远不会越过矩形的边界。

(8)发出点的线永远不会平行于网格线的顶部或内部。

定义:“尖端长度”(tip length):从网格的任一边缘顶点到网格线与矩形边界相交的点的距离。

目标是:

按以下方式排列网格:(1)水平或垂直网格线与绿色区域中的点发散线相交,并且(2)在蓝色区域内保持尽可能多的边缘顶点,也就是说,如果左边缘和顶部边缘只能配合,而底部边缘和右侧边缘的尖端长度大于1.5可以。所需的输出将是左上边缘顶点的90度和180度尖端长度的长度。每个向量基本上都通常指向上方或下方,但有时会有一个向量指向随机方向或一系列方向。

enter image description here

最多可以有一百条带有各自原点坐标的发点线。实际上,尽管发点线和网格是具有厚度的实际物理对象,所以这甚至可能没有用。网格线的宽度是3/16,如果重要的话,点线是1/4。

理想地,即使某些输入将不输出任何解,程序仍应输出“最佳”解,这将最大程度地减小边缘尖端长度(大于1.5),同时最大程度地减少点发出的线不匹配的次数。因此,假设您设法使它适合47个行,但需要50个,然后突出显示三个不匹配的行,这是所有排列的不匹配数最少的吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)