![]() |
1
11
我认为诀窍如下(我将在10进制中进行,因为这更容易,但原则应该成立)
现在
自从
这本质上是一个循环变化。给出648+3618+8403+1088的结果。还要注意,在所有情况下,相乘的数字都是<10000(因为a<100和b<100),所以这是可以计算的,如果您只能将多个2位数相加。 在二进制中,它的结果是类似的。 从a和b开始,都是32位。假设你想将它们乘以mod 2^31-1,但是你只有一个16位的乘法器(给出32位)。算法如下所示:
时间不早了,所以蓄能器部分可能无法工作。但我认为原则上这是正确的。有人可以随意编辑,使其正确。 展开,这是相当快,以及,这是什么PRNG使用,我猜。 [1]: x*10000 â¡ x*(9999+1) â¡ 9999*x + x â¡ x (mod 9999) |
![]() |
2
3
假设你可以把a*b计算为
然后
和
在这两种情况下,都没有按
|
![]() |
3
2
快速搜索发现以下内容: http://home.pipeline.com/~hbaker1/AB-mod-N.pdf |
![]() |
4
1
Montgomery reduction (还有其他 descriptions )降低模乘运算的成本。不过,这仍然没有使用N是2的正/负幂的性质。 |
![]() |
5
1
你要找的身份是
第9.2.3节:“特殊形式的模量” 在里面 “素数:计算的视角” 理查德·克兰德尔和卡尔·波默兰斯。除了理论之外,它还包含实现上述关系的算法的伪代码。 |
![]() |
6
0
我找到了一份工作 rather extensive page 在这个话题上,我们不仅要讨论算法,还要讨论具体的算法 历史 问题和解决方案以及人们使用解决方案的方式。 |
![]() |
Diret · 获取范围内每个数字的子倍数的算法 2 年前 |
![]() |
Saif · 排序时python如何决定何时调用比较器? 2 年前 |
![]() |
Wadu Hek · 查找列表中唯一的重复项 2 年前 |
![]() |
Crawford Patten · 如何获得整数列表的四分位数 2 年前 |
![]() |
MoonGoose · 如何在python中围绕特殊字符创建空间? 2 年前 |
![]() |
taha khamis · 在一个数字中组合元素的省道 2 年前 |
![]() |
Soup · 比O(n)更快地找到阶乘n模m 2 年前 |
![]() |
BigO · 单词积分游戏不断增加数字[关闭] 2 年前 |