在一条线段上,如何快速找出黄金分割点?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在一条线段上,如何快速找出黄金分割点?相关的知识,希望对你有一定的参考价值。

参考技术A 黄金分割点是指分一线段为两部分,使其中一部分与全长之比等于另一部分与这部分之比.线段上有两个这样的点.通常以0.618来近似表示黄金分割点.已知线段AB,按照如下方法作图:  (1)经过点B作BD⊥AB,使BD= AB/2.  (2)连接AD,在DA上截取DE=DB.  (3)在AB上截取AC=AE.则点C为线段AB的黄金分割点

HDU 1173 采矿

采矿

题解:如果给你一条线段(左右端点设为A,B), 那么在这条线上的任意一点到A B距离之和是一个定值, 然后如果再这条线段内在任意确定一个定点C, 那么这条线段上再任意取一个点,这个点到 A B C距离最小的点是和C点重合的位置, 因为AB距离为定制。

所以给你一堆点在一条直线上, 那么所有距离之和小就是最中间的点。

代码:

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 double x[1000005],y[1000005];
 4 int main()
 5 {
 6     int t;
 7     while(~scanf("%d",&t)&&t)
 8     {
 9         for(int i = 0; i < t; i++)
10             scanf("%lf%lf",&x[i],&y[i]);
11         sort(x,x+t);
12         sort(y,y+t);
13         printf("%.2f %.2f\n",x[(t+1)/2],y[(t+1)/2]);
14     }
15     return 0;
16 }

 

以上是关于在一条线段上,如何快速找出黄金分割点?的主要内容,如果未能解决你的问题,请参考以下文章

给定一条线段AB,如何找到他的黄金分割点C呢?

黄金分割点怎么画 已知线段AB如何找黄金分割点

请问下一根3米长的棍子,怎么找它的黄金分割点?

python+opencv2快速找出一组点包围的区域中的所有点

是否存在一条直线,将任意一个平面图形分割成面积相等的两部分?

[xsy2282]cake