我最近在stackoverflow上找到了一种使用fx991es计算模数的方法.它必须配置为使用辐射才能使其工作.
Pol(-Rec(1/(2?) , 2?×A/B), Y)(? - Y)B
Run Code Online (Sandbox Code Playgroud)
但是,我真的不明白这是如何工作的.我看到它的一些数学黑客使用极坐标和东西.但为什么这实际上有效呢?
我特别不太了解这个计算器.但直观地说,使用角度应该是因为它们自然是模2π.但首先,我们需要了解这些功能的作用.
如果在表达式中使用,这两个函数都返回第一个参数,即Pol返回半径r,Rec返回X.它还表示Pol返回计算器中定义为默认值的角度单位中的角度,并且表示为范围 [-?,+?[
现在让我们根据计算器中优先级的顺序解析您的表达式
Rec(1/(2?) , 2?×A/B) 返回距中心1 /2π距离的点的X坐标,并以2πA/ B的角度返回,以2π为模,有效地取(A/B模1)*2π.
你说Rec用第二个坐标覆盖Y - 我相信你,因为我自己没有计算器,似乎找不到模拟器.
所以表达是 Pol(-X, Y)(? - Y)B
我们现在有Pol(-X,Y).在极坐标中,翻转X的符号对半径没有影响,但是它将角度从值A改变为π-A.
所以我们现在在Y变量中得到修正后的角度,因此π-2πA/ B以[-?,+?[模2π的形式减少.Pol返回半径,即1 /(2π).
公式现在1/(2?)(?-Y)B.
π-Y现在给我们的角度在[0,2π[,并且简单地将它除以2π)A/B modulo 1.乘以B得出A模2.
进入/来自极坐标给出了一个自由的模2π计算,应用于A/B得到它的小数部分,π-Y技巧做了两次(一个写得那样,另一个写做-X)是因为角度是不是直接给出范围[0,2?[,而是[-?,+?[.