早教吧 育儿知识 作业答案 考试题库 百科 知识分享

怎样在1000个离散的点中寻找一条直线,这条直线要尽可能的穿过更多点,用什么算法好?最初级的办法是两点一线,其余的点代入计算,计算量太大了,还有没有其他的方法?

题目详情
怎样在1000个离散的点中寻找一条直线,这条直线要尽可能的穿过更多点,用什么算法好?
最初级的办法是两点一线 ,其余的点代入计算,计算量太大了,还有没有其他的方法?
▼优质解答
答案和解析
没有更快捷的算法.反证如下:如果存在更快捷的算法 A ,那么要验证 A 得到的直线穿过了最多的点,就需要计算其他所有直线分别穿过的点.计算机就是用来计算的,不必用人脑思维担心电脑运算.需要注意的是,即使是遍历,也有算法效率的区别.比如,先计算得到所有的直线(排列和去掉重复值的问题),然后计算每一条直线穿过的点(遍历),然后用快速排序得到你要的直线.这里假设你说的是平面问题.