我的思路比较多的大佬已经推理过了,这边我给可能看不懂的初中生(包括我)提供一些初中就能理解的证明:
思路
人尽皆知,三角函数值可以表示角,自然角也可以表示三角函数值;
所以我们就可以直接使用三角函数值来表示可能会触发雷的探测范围的角度之后求出它跟
90∘ 三角函数值之间的关系。
这里推荐使用正切值,理由很简单就是正切值的和角公式和差角公式比较好算不需要知道其它的东西,和角公式先放出来:
tan(α±β)=1∓tanα×tanβtanα±tanβ
因此我们通过图不难看出当
∠COB=α,∠COD=β 时,则区间
[α+β,β] 一定是不安全的。
故不难看出
A(a,b),AC=r⇒AD2+OD2−r2=OA2−r2=a2+b2−r2=OC⇒tan∠AOC=a2+b2−r2r⇒tanα=tan2∠AOC,利用上面的和角公式就可以求出
tanα=a2+b2−5r22ra2+b2−r2。
同时,注意到
tan∠COE=tan(∠AOE−tan∠COA)=aa2+b2−r2br+aa2+b2−r2ab−a2+b2−r2r,太难化简了就不化了,在程序中写出来不会有影响;
具体怎么求角度,我们还需要知道一个东西就是
arctan,它的作用可以简单理解为可以帮助你计算某角度(具体要涉及到反函数,但是蒟没怎么深入了解就不过多解释怕误导,大佬可以指点一下),故有如下公式:
tanα=A,arctanA=α
这个怎么求不用担心,GCC 帮我们准备了库,可以使用
atan(a) 这个函数求正切值为
a 的角度;
最后只需要依据这些结论去求解就可以了,判断角度
[α,β] 之间没有的区间和
90∘ 的比即可。
注意
记得尽量避免精度误差,有些式子(例如上面那一坨)太难化简就不要化了,有可能会化错;
既然看到这里了,能否给个中考祝福呢?
蒟也是抽时间来水了这篇题解的,非常感谢您的观看!