[三分] [BZOJ5041] LWD 的降临

探讨了如何求解一个特定椭圆与已知圆外切的切点坐标问题,通过坐标变换简化椭圆,使用等分圆周及爬山算法进行数值求解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目传送门
UPD2:这道题题解已经半残,请结合这里的研究食用。
2017.9.15 水 UOJ 裙的时候 onepointo 童鞋说这道题没人水……于是看了看……
其实就是求一个椭圆与给定圆外切的切点坐标,这个椭圆不是标准椭圆(即主轴为 x x x 轴)。
如果我们暴力列方程的话有如下几个方程:
切点在圆上;
切点在椭圆上;
该点处圆的切线与椭圆的切线相同。
按理说是可求的,可是切点未知,解方程很难……
问题出在并不知道切点(也不会求切线……),观察到精度要求很低,可以想到等分圆周,判断每个点为切点的情况。
怎么判断切点……不是切线不会求吗……
观察到如果该点为切点,形成的椭圆长轴长应该是最短的,类比一下两个圆的位置关系可以理解到这一点。
然后就有判断依据咯……等分圆周然后找一个 a a a 最小的点就是答案……
那天晚上A了……可是出题人认为暴力太简单加强了数据……等分圆周就T了(其实是WA?)
于是改进这个等分圆周的策略……

出题人:这个距离函数长得跟正弦函数差不多

???蛤?

证明:感性理解

???蛤?
这样的话爬山就可以了……复杂度玄学
可是模拟退火不仅比爬山慢而且精度比爬山低得多……不知道为什么……
纪念写的第一份爬山,并写出了倒数的速度……(感谢Claris……(大雾))
UPD:退役之后想了想,还是感觉证明很麻烦。
下面说说成果吧……劳资推了两个晚自习了QAQ
先转化一下坐标系,让原点位于两焦点中点,两焦点连线位于 x x x 轴上,这个可以通过坐标变换公式来完成,计算完成之后再移回去即可。
下面是坐标变换公式:
设平面直角坐标系 O x y , O ′ x ′ y ′ Oxy,O'x'y' Oxy,Oxy O ′ \mathrm{O'} O 点在 O x y Oxy Oxy 坐标系下坐标为 ( x 0 , y 0 ) (x_0,y_0) (x0,y0),由 x x x 轴转到 x ′ x' x 轴转过角度为 θ \theta θ M \mathrm{M} M 点在 O x y Oxy Oxy 坐标系下坐标为 ( x , y ) (x,y) (x,y),在 O ′ x ′ y ′ O'x'y' Oxy 坐标系下坐标为 ( x ′ , y ′ ) (x',y') (x,y),则满足关系:
{ x ′ = x cos ⁡ θ + y sin ⁡ θ − x 0 y ′ = y cos ⁡ θ − x sin ⁡ θ − y 0 \begin{cases} x'=x\cos \theta+y\sin \theta -x_0&\\ y'=y\cos \theta-x\sin\theta-y_0 \end{cases} {x=xcosθ+ysinθx0y=ycosθxsinθy0
这样就可以得到一个标准椭圆了。
联立:
{ b 2 x 2 + a 2 y 2 = a 2 b 2 ( x − m ) 2 + ( y − n ) 2 = r 2 \begin{cases} b^2x^2+a^2y^2=a^2b^2&\\ (x-m)^2+(y-n)^2=r^2 \end{cases} {b2x2+a2y2=a2b2(xm)2+(yn)2=r2
于是得到了一个非常复杂的一元四次方程,注意不要将 y 2 y^2 y2 开根号,需要讨论正负,正确的方法是移项并将其平方。
然后根据盛金公式,令这个方程有四重根就好了。
没算,留坑不补了(真的太恶心了……)
换种方法?
椭圆上一点的切线可以这样作:令 P \mathrm{P} P 为椭圆上一点,分别连接该点与左右焦点 F 1 , F 2 \mathrm{F_1},\mathrm{F_2} F1,F2,则 ∠ F 1 P F 2 \angle \mathrm{F_1PF_2} F1PF2 的角分线的垂线为 P \mathrm{P} P 点处切线。
也就是说,圆心与 P \mathrm{P} P 点连线所在直线平分 ∠ F 1 P F 2 \angle \mathrm{F_1PF_2} F1PF2。不过这个还得等分圆周……
没什么好做法了,不如上知乎问个问题QAQ。
Code

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值