该问题的答案实际上应取决于解决方案所针对的领域。
如果您碰巧在物理草垛中模拟物理搜索,则可能有此类
太空
知道哪些物体位于哪个坐标处,从而
实现自然法则(转换能量,检测碰撞等)
针,稻草
位于太空中,
对力产生反作用
搜寻者
与空间互动:
移动手,施加磁场,烧干草,施加X射线,寻找针头...
因此 seeker.find(needle, space)
或 seeker.find(needle, space, strategy)
大海捞针恰好在您要寻找针头的地方。当您将空间抽象为一种虚拟机(认为是矩阵)时,您可以使用干草堆代替空间来获得上述内容(解决方案3 / 3b):
seeker.find(needle, haystack)
要么 seeker.find(needle, haystack, strategy)
但是矩阵是域,如果您的针头不能放在其他任何地方,则只能用干草堆代替。
再说一次,那只是一种动物。有趣的是,这为全新的方向开辟了思路:
1.为什么首先松开针头?您可以更改流程,所以不会放弃它吗?
2.您是否必须找到丢失的针头,还是可以简单地再买一根针而忘记第一根呢?(然后,如果一段时间后针头溶解,那将是很好的选择)
。3.如果您定期松动针头并且需要再次找到它们,则可能需要
制造能够找到自己的针,例如,他们经常问自己:我迷路了吗?如果答案为是,他们会将GPS计算的位置发送给某人或开始发出哔哔声或其他声音:
needle.find(space)
或needle.find(haystack)
(解决方案1)
在每个稻草上安装带有照相机的干草堆,之后您可以询问干草堆蜂巢的心智是否最近看过针:
haystack.find(needle)(解决方案2)
将RFID标签贴到您的针上,这样就可以轻松地对它们进行三角剖分
就是说,在您的实现中,您已经在某种程度上制造了针,干草堆以及大多数情况下的矩阵。
因此,请根据您的域来决定:
- 大海捞针的目的是为了大海捞针吗?然后寻求解决方案2。
- 针在任何地方丢失是否自然?然后寻求解决方案1。
- 针头是否会意外丢入大海捞针?然后寻求解决方案3。(或考虑其他恢复策略)
string.join
方法)。