相关疑难解决方法(0)

Python中负数的模运算

我在Python中发现了一些关于负数的奇怪行为:

>>> -5 % 4
3
Run Code Online (Sandbox Code Playgroud)

谁能解释一下发生了什么?

python modulo negative-number

64
推荐指数
6
解决办法
5万
查看次数

模数为Python中的负红利

正在查看其他答案,我仍然不理解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还是我只是疯了? 具有负值的模数运算 - 奇怪的是什么?

python中的这个负数模数相同 他从哪里得到-2?

最后,如果该标志取决于股息,为什么负股息与正面股票的产出不相同?

例如,输出

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)

python modulo

6
推荐指数
2
解决办法
5910
查看次数

使用扩展欧几里德算法创建RSA私钥

这是我在学校做的一项任务.我在生成私钥时遇到问题.我的主要问题是理解我的方程式之间的关系.为了设置一切,我们有:

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)

python encryption algorithm rsa modular-arithmetic

5
推荐指数
1
解决办法
2万
查看次数

Python:(8%3)的结果是2,但是( - 8%3)是1.不应该是-2吗?为什么?

这是证明:

-8 == -2 * 3 - 2
Run Code Online (Sandbox Code Playgroud)

这意味着-8%3应该等于-2.但是python回归1并且它让我疯狂

python

4
推荐指数
2
解决办法
193
查看次数