Closed. This question is off-topic. It is not currently accepting answers. Learn more
想改进这个问题吗?Update the question所以堆栈溢出的值小于aa>。
我想做一个程序,生成10-100之间的笛卡尔平面上的随机坐标,它应该找到哪些点将形成一条线。
它应该是至少四个点的组合,可以形成一条线。为此,我可以找到四个选定点之间的坡度,以确定它们是否可以形成一条直线。
然而,最难的部分是我如何把所有的要点结合起来?我想使用蛮力法,找到至少四个点的所有组合,然后检查它们之间的坡度,看它们是否可以形成一条线。
关于我如何解决这个问题的任何建议,例如有效地找到组合,将不胜感激。

最佳答案

我认为尝试所有的4点都没有好处取每一对点,计算它们形成的直线的方程y=mx+c,然后将每一对点(m,c)插入一个数组然后对这个数组进行排序(不管m还是c是第一个排序键)。属于同一行的所有点对将在排序数组中显示为连续块:如果同一行上有n个点,则对应块中将有n^2个连续元素,但仅识别n个不同点很容易。时间和空间复杂度:O(n ^ 2 log n)。

08-28 02:27