我最近在stackoverflow上找到了一种使用fx991es计算模数的方法。它必须配置为使用辐射才能使其工作。
Pol(-Rec(1/(2π) , 2π×A/B), Y)(π - Y)B
How to calculate a Mod b in Casio fx-991ES calculator
但我真的不明白这是如何运作的。我看到它的一些数学黑客使用极坐标和东西。但为什么这实际上有用呢?
答案 0 :(得分:5)
我不太了解这个计算器。但直观地说,使用角度应该是因为它们自然是模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模B。
进入/来自极坐标给出了一个自由的模2π计算,应用于A / B得到它的小数部分,π-Y技巧做了两次(一个写得那样,另一个写做-X)是因为角度不是在[0,2π[
范围内直接给出,而是[-π,+π[
。