modular-arithmetic

    4热度

    1回答

    我昨天在一个挑战中得到了这个问题。我想我已经正确编码了,并且我的样本测试用例已通过。然而,即使在后端也没有通过一个测试用例。这是我的代码。请有人帮我一把。我面临的挑战已经结束,因此我无法进一步提交。但我想从我的错误中学习。谢谢。 import java.io.*; //import java.util.*; public class TestClass { public stat

    -3热度

    1回答

    unsigned long qe2(unsigned long x, unsigned long y , unsigned long n) { unsigned long s,t,u; s=1; t=x; u=y; while(u) { if(u&1) s = (s*t)%n; u>>=1; t= (t

    0热度

    1回答

    我想在教育目的的python3.6中编写一个RSA代码。 密钥生成和消息加密工作正常,但我有解密问题。据我所知,解密算法是M = C d mod n,其中M是消息,C是加密消息(使用接收者的公钥),d是接收者的私钥。问题在于当d是否定的时候,这在我的经验中是非常常见的。我使用从右到左的算法进行模幂运算,但我不知道如何使它与负指数一起工作。这是我的代码。 Ë: def mod_pow(b, e, m

    1热度

    1回答

    #include <bits/stdc++.h> #define mx 1000005 #define mod 1000003 using namespace std; long long arr[mx]; int fact() { arr[0]=1; for(int i=1; i<mx; i++) { arr[i]=((i%mod)*

    0热度

    1回答

    我想从Hackerrank解决Project Euler+ #97。该问题要求计算A x B ** C + D的最后12位数字。我尝试使用来自Wikipedia的模幂运算mod 10 ** 12以有效计算最后12位数字并避免溢出。但是,除了样本2 x 3 ** 4 + 5之外的所有情况,我都会出错。根据约束条件,unsigned long long不应该溢出。 问题: 现在,我们要学习如何计算这样

    1热度

    1回答

    在Charm加密中,我将如何着手获取ZR的乘法反转?我大致有以下代码: a = group.random(G) e = group.random(ZR) x = a ** e somestuff() y = x ** (1/e) 其中a不存储在目的。然而,尽管-e正常工作以获得加法倒数,但似乎并不是获得乘法倒数的正确方法。

    3热度

    1回答

    我想实现多倍无符号减法,在在C有限域(P = 2^191-19),但我无法弄清楚如何处理借位! 我的操作数在基数2^16表示为: typedef unsigned long long T[12]; 这意味着T型阵列的每个元件具有完全相同的16比特数据(基数2^16表示)。 现在我想减去T形的两个操作数,但我不知道哪一个是小!如果结果为负数,我想将结果添加到素数值以在模算术中获得积极结果。 这里

    2热度

    1回答

    我想在一台机器上计算素数,大小约为2^30-2^100。 我的算法包含在下面给有兴趣的人。 我已经优化这个Python代码是O(sqrt(n/2))(I相信)为每个编号:它只接受奇数,我确保数传递给它是在另一种方法中奇数。 我用费马素性测试试图加快这个过程。但是,这些数字对于内置的math.pow()方法来说太大了,所以我使用了Squaring的Exponentiation。 但是,这对于数量较多

    0热度

    1回答

    因此,为了更好地理解MSVC++的rand的实现,我重新实现了它,并试图更好地理解它(以及我猜测的一般LCG)。 我实现(匹配MSVC++的几乎一模一样)如下: // vc++ impl. of random // Xn+1 = (aXn + i) mod m // a = 214013, i = 2531011, m = 32768 unsigned int seed = 0; unsi

    1热度

    2回答

    我是编程的新手。我一直在解决函数式编程(OZ)中的一个简单问题,它正在查找6位正整数的数字之和。例如: - if n = 123456然后 output = 1+2+3+4+5+6 which is 21。 在这里,我发现像下面 fun {SumDigits6 N} {SumDigits (N Div 1000) + SumDigits (N mod 1000)} end 的解决方案,它说