math - 如何从余数系统转换为混合基数系统?

标签 math numbers modular-arithmetic mixed-radix

我理解 Residual Number System 的概念和 Mixed Radix system 的概念,但我很难找到在简单案例研究中使用的任何转换方法。

我从高德纳 (Knuth) 的《计算机编程艺术》开始,但其中关于转换理论的内容太多了,一提到欧拉,我就迷路了。维基百科有一个 nice section关于这个问题,我试过了herehere但两次我都无法回到开始时的数字。

我找到了一篇好文章here (PDF) ,我浓缩了相关部分here ,但我不明白乘法逆元及其符号。具体来说,y_2 = |(3 - 19)|(1/31)|_7|_7 = |5 * 5|_7 特别是 |1/31|_7 = 5

最佳答案

乘法逆元是关于模数(这里是 7)。由于模数 7 是素数,因此每个数字(模数 7)都有一个倒数。特别是 31_7 = 3_7(因为 31 = 4*7 +3 - 如果我说得太笼统,抱歉),它的倒数是 5,因为 3 * 5 = 15 = 1_7。所以我们可以写 |1/31|_7 = 5.

现在

y_2 = |(3 - 19) |(1/31)|_7 |_7
    = | (-16) * 5 |_7
    = | 5 * 5 |_7            since -16 = (-3)*7 + 5
    = 4

关于math - 如何从余数系统转换为混合基数系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15956233/

相关文章:

c# - C/C# 中更快的模数?

php - 根据比例淡化十六进制颜色

java - minimax 代码始终返回 0

algorithm - 数字大于 maxint 的可靠乘法和模数

c++ - 合并共享一个共同元素的对

javascript - 图的数学方程

java - Float.MIN_VALUE 和 Float.MIN_NORMAL 之间的区别?

python - 检查一个数字是否是第二个数字的倍数

python - 在Python中实现模幂的蒙哥马利阶梯法

algorithm - 找到每个 K 使得 arr[i]%K 等于每个 arr[i]