正在查看其他答案,我仍然不理解python中负数的模数
例如df的回答
x == (x/y)*y + (x%y)
Run Code Online (Sandbox Code Playgroud)
所以有意义的是(-2)%5 = -2 - (-2/5)*5 = 3
这不是(-2 - (-2/5)*5)= 0还是我只是疯了? 具有负值的模数运算 - 奇怪的是什么?
最后,如果该标志取决于股息,为什么负股息与正面股票的产出不相同?
例如,输出
print([8%5,-8%5,4%5,-4%5])
Run Code Online (Sandbox Code Playgroud)
是
[3, 2, 4, 1]
Run Code Online (Sandbox Code Playgroud) 这是我在学校做的一项任务.我在生成私钥时遇到问题.我的主要问题是理解我的方程式之间的关系.为了设置一切,我们有:
p = 61
q = 53
n = p * q (which equals 3233)
Run Code Online (Sandbox Code Playgroud)
从这里我们得到n(phi(n))的总数等于3120,现在我们可以选择素数e; 其中1 <e <3120
e = 17
Run Code Online (Sandbox Code Playgroud)
好的很容易.
对于我的任务,我们已经意识到d = 2753,但是我仍然需要能够任意生成这个值.
现在这里是我遇到麻烦的地方.我一直在仔细阅读维基百科以及某些东西没有连接.我知道,我需要找到模反元素的e (mod phi(n)),这将是d我们的私人指数.
通过维基百科阅读告诉我们找到mmi我们需要使用扩展欧几里德算法.我在python中实现了如下算法:
def egcd(a, b):
x, lastX = 0, 1
y, lastY = 1, 0
while (b != 0):
q = a // b
a, b = b, a % b
x, lastX = lastX - q * x, x …Run Code Online (Sandbox Code Playgroud)