java - 如何有效地在网格上选取一条穿过某些点的线

标签 java algorithm

假设我有一个 30 x 30 的网格,上面有四个代表妖精的 (x,y) 坐标。

我想放置一条 1 x 10 宽和长的线,穿过尽可能多的妖精。

获得答案的有效方法是什么?

测试源到目标行的每种组合的成本太高,因此我需要一些能够给我一个不错的答案的东西,而不必是完美的。

最佳答案

只是添加一些有关 @GilbertLeBlanc 答案的详细信息:

“选取四个妖精中的任意两个,并用线将它们连接起来。”

如果您随机选择它们:

  1. 如果没有三个在同一行,那么您就有最佳答案;
  2. 如果所有四个都在同一行,那么您就有最佳答案;
  3. 如果三个对齐而一个未对齐,则获得最佳答案的概率为 1/2。

总而言之,已经相当不错了。

关于java - 如何有效地在网格上选取一条穿过某些点的线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61723806/

相关文章:

java - Android:处理 ListView 中的 CheckBox

java - Spring 卡夫卡听正则表达式

ruby - 字符串中的回文数

python - 如何判断是否存在N的d-redigit倍数?

java - 如何在不转向 boolean 开关参数的情况下避免代码重复?

java - 反向迭代 LinkedHashMap

java - 单元测试 jsf 2.0 Managed Bean 的最佳方式

algorithm - 网络流量流通

java - 快速排序比合并排序慢?

algorithm - 启发式的具体例子