我有一个(自顶向下)的三个六面骰子的图像,提取了点的坐标,留下了3到18个点。
如何找到掷出的点数,换言之,哪些点组合在一起形成一个骰子?
到目前为止,我把它简化成一个问题:查找3个圆,使得每个点恰好位于一个圆中,并且最大圆的大小最小。
我想到了两种可能的方法,但都几乎太慢了。
方法1: 找到所有不相交点集的三元组和每个点集上的最小外接圆。舍弃任何解决方案,其中圆包含除其集合内的点以外的其他点,或者如果比已经找到的最佳解决方案中最大的圆更大。
方法2: 找到所有可能的三个圆(由点1-3定义)。舍弃包含超过6个点、已经在其他圆中的点、比已经找到的最佳解决方案中最大的圆更大的圆,或者不能包围每个点的解决方案。
是否有更有效的算法来解决这个问题?因为我只能想到大多数暴力解决方案。我需要最坏情况下约1秒的时间,理想情况下平均时间长达10毫秒。
如何找到掷出的点数,换言之,哪些点组合在一起形成一个骰子?
到目前为止,我把它简化成一个问题:查找3个圆,使得每个点恰好位于一个圆中,并且最大圆的大小最小。
我想到了两种可能的方法,但都几乎太慢了。
方法1: 找到所有不相交点集的三元组和每个点集上的最小外接圆。舍弃任何解决方案,其中圆包含除其集合内的点以外的其他点,或者如果比已经找到的最佳解决方案中最大的圆更大。
方法2: 找到所有可能的三个圆(由点1-3定义)。舍弃包含超过6个点、已经在其他圆中的点、比已经找到的最佳解决方案中最大的圆更大的圆,或者不能包围每个点的解决方案。
是否有更有效的算法来解决这个问题?因为我只能想到大多数暴力解决方案。我需要最坏情况下约1秒的时间,理想情况下平均时间长达10毫秒。