Re: 这世道还让人怎么混! (转载)# Joke - 肚皮舞运动
l*y
1 楼
给定n个点(xi, yi),求一条直线ax+by =c(即找出a,b,c),使得max(|a*xi +b*yi
-c|)(1≤ i ≤n)的值最小。 因为要求的是直线,所以a,b不能同时为0。
我的想法是先求出这些点的闭包,然后对于闭包中的每条线段,确定一条过
这条线段两端点的直线,然后找到离这条直线最远的点,再做一条平行于该直线的直线,
这样所有的点就都在这两条直线之间。这两条直线的距离记为d,找到使d最小的那两条直
线(尝试凸包中所有的线段),然后再做一条直线,使其平行于这两条直线,并且到这两
条直线的距离相等,则这条直线就是我们要求的。暂时还没法证明。谁能证明我的想法对
的或是错的么,或者有其它idea?thanks
-c|)(1≤ i ≤n)的值最小。 因为要求的是直线,所以a,b不能同时为0。
我的想法是先求出这些点的闭包,然后对于闭包中的每条线段,确定一条过
这条线段两端点的直线,然后找到离这条直线最远的点,再做一条平行于该直线的直线,
这样所有的点就都在这两条直线之间。这两条直线的距离记为d,找到使d最小的那两条直
线(尝试凸包中所有的线段),然后再做一条直线,使其平行于这两条直线,并且到这两
条直线的距离相等,则这条直线就是我们要求的。暂时还没法证明。谁能证明我的想法对
的或是错的么,或者有其它idea?thanks