如何从余数系统转换为混合基数系统?
Posted
技术标签:
【中文标题】如何从余数系统转换为混合基数系统?【英文标题】:How to Convert from a Residual Number System to a Mixed Radix System? 【发布时间】:2013-04-11 18:33:33 【问题描述】:我了解Residual Number System 和Mixed Radix system 的概念,但我很难在一个简单的案例研究中找到我发现的任何转换方法。
我从 Knuth 的《计算机编程艺术》开始,但那对转换的理论有点过多,一旦提到欧拉,我就迷路了。***有一个关于这个主题的nice section,我试过here和here,但两次我都无法回到我开始时的号码。
我找到了一篇不错的文章here (PDF),我把相关部分浓缩了here,但是我不明白乘法逆元及其符号。具体来说,如何 y_2 = |(3 - 19)|(1/31)|_7|_7 = |5 * 5|_7 特别是如何 |1/31|_7 = 5
【问题讨论】:
我不确定***的文章是否正确。 感谢您的编辑,我阅读了残数系统页面上的谈话页面,this 值得一读。 【参考方案1】:乘法逆元是关于模数(这里是 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
【讨论】:
我现在明白你是如何得到 |-16|_7 = 5 的,根据我的经验,这是处理负模的一种不寻常的方式,但我可以使用它。我仍然迷失在这个 |(1/31)|_7 = 5 业务上。我知道 |31|_7 = |3|_7,但我并没有反过来关注你。 3 * 5 = 15,但 |15|_7 = 0。 咳咳... 15 = 2*7 + 1,因此 |15|_7 =1。以上是关于如何从余数系统转换为混合基数系统?的主要内容,如果未能解决你的问题,请参考以下文章