- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试制作 RSA 算法。为此,我需要 rabin-miller+witness+modular exponentiation(至少我需要使用它)。当我生成随机数以检查 rabin miller 是否为素数时,问题就来了,结果是非素数对于 rabin-miller 算法是素数。有人可以帮我看看我失败的地方吗?提前致谢。
int mod_exp(int a, int b, int n){
int d = 1,i,j=0;
int binary[15];
for(i=0;i<=15;i++){
binary[i] = -1;
}
i=0;
do{
binary[i]=(b%2);
if((b%2)==1)
b=(b-1)/2;
else
b=b/2;
i++;
}while(b!=0);
do{
d= (d*d)%n;
if(binary[i]==1)
d=(d*a)%n;
i--;
}while(i!=-1);
return d;
}
bool wittness(int a, int n){
int u=n-1,k=0;
long x, temp;
while(u%2== 0 ){
u=u/2;
k++;
}
x=mod_exp(a,u,n);
for(int i=1;i<=k;i++){
temp=x;
cout<< "primera x:"<<x<<endl;
x=long(x*x)%n;
cout<< "segunda x:"<<x<<endl;
if(x==1 && temp!=1 && temp != n-1)
return true;
}
if(x!=1)
return true;
return false;
}
bool miller_rabin(int n, int s){
int a,j;
srand(time(NULL));
for(j = 0; j<=s;j++){
a=rand()%s+1;
if(!wittness(a,n))
return false;
}
return true;
}
最佳答案
我没有查看所有代码,但您的 mod_exp 函数肯定不正确。 (d*d)%n
和 (d*a)%n
这两个表达式都容易溢出,如果发生溢出,您将得到不正确的结果。
关于c++ - Miller-Rabin 素性测试给出了错误的答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34256244/
我正在尝试实现 Rabin Karp 算法的一些修改版本。我的想法是,如果我根据与每个字母相关的权重得到给定模式的哈希值,那么我就不必担心字谜,这样我就可以只选择字符串的一部分,计算它的哈希值并进行比
在 rabin 算法中取模如何帮助降低本地 horners 规则字符串匹配的复杂性。请任何人解释 最佳答案 我猜按照 Horners 规则,你的意思是将字符串视为某个基数中的数字 ("abcd"= '
我一直在尝试理解算法类的 Rabin-Karp 算法。我在理解它时遇到了很多麻烦,所以我尝试实现它(我实际上不必实现它)。我想我正确地理解了滚动哈希函数以外的所有内容。我的算法目前只适用于模式 cha
我有一个关于选择 q 和 d 的问题 in Rabin-Karp algorithm用于搜索字符串。该算法使用值 q 作为模数,使用 d 作为哈希函数。 如果我选择 q 作为 2 的幂并且 d=q-1
我在网站的论坛上看到过这个 Rabin Karp 字符串匹配算法,我有兴趣尝试实现它,但我想知道是否有人能告诉我为什么变量 ulong Q 和 ulong D 是 100007 和 256分别:S?这
我实现 Rabin-Karp 算法只是为了好玩。我遇到了这个伪代码: RABIN -KARP -MATCHER (T, P, d, q) 1 n = T.length 2 m
我正在实现 Wikipedia's Miller-Rabin algorithm但似乎没有得到甚至模糊恰当的结果。 7, 11, 19, 23 等被报道为复合 Material 。事实上,当 k>12
我从这个网站理解了 Rabin-Karp 算法:https://www.geeksforgeeks.org/rabin-karp-algorithm-for-pattern-searching/ 他们
我很清楚单个 Miller-Rabin 测试以三次对数时间运行。我知道蒙哥马利模幂和 GNFS 并且我不会问任何那些奇特的理论。我想知道的是,在特征硬件(例如,2.2 GHz Opteron 或某某显
我正在尝试制作 RSA 算法。为此,我需要 rabin-miller+witness+modular exponentiation(至少我需要使用它)。当我生成随机数以检查 rabin miller
在 Coursera 视频之一中,Rabin-Karp 滚动哈希 (http://en.wikipedia.org/wiki/Rolling_hash) 显示为: public static long
我的 previous question属于通用字符串搜索算法。我正在研究 Rabin-Karp 算法,我有一个函数模板,例如: RabinKarpMatch(char *Text, char *Se
我有 Miller-Rabin 实现 def MillerRabin(n,a): e = 0 q = n-1 while q % 2 == 0: e +=
我在实现 Karp-Rabin 的简单版本时遇到问题模式行进者;我没有得到预期的结果。这是我的例子; string='today is a good day' sub='good' 我想在上面的字符串
我正在阅读 Cormen 等人的《算法导论》中有关字符串算法的内容 以下是关于一些初等数论符号的文本。 注意:在下文中将 == 称为模等价。 给定一个整数除以另一个整数的余数的定义明确的概念,提供特殊
rolling hash Rabin-Karp算法中hashcode值过大如何处理?我使用模运算来避免负数,但是当哈希码超过我的模数(N = 83559671)时会出现问题。我将我的基数设置为素数(计
我正在为 Rabin-Karp 算法寻找高效的哈希函数。这是我的实际代码(C 编程语言)。 static bool f2(char const *const s1, size_t const n1,
我一直在使用 C++ 编写 Rabin-Karp 字符串匹配函数,但没有得到任何结果。我感觉我没有正确计算某些值,但我不知道是哪一个。 原型(prototype) void rabinKarp(str
我有兴趣实现 Rabin-Karp 算法来搜索 wiki 上所述的子字符串:http://en.wikipedia.org/wiki/Rabin-Karp_string_search_algorith
我希望使用滚动哈希函数,这样我就可以对非常大的字符串的 n-gram 进行哈希处理。 例如: “stackoverflow”,分成 5 克将是: "stack", "tacko", "ackov",
我是一名优秀的程序员,十分优秀!