| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1396 人关注过本帖
标题:关于逆运算的
只看楼主 加入收藏
xuying234
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-5-12
收藏
 问题点数:0 回复次数:7 
关于逆运算的
哪位朋友能给我详细讲解一下逆运算..比如N=4,L=7,求它们互素,求他们的逆为:

ei=N-1*i(modL)=4-1i(mod7)=2i(mod7),(0<i<N).所以N,L的逆为2.

那么当N=4,L=17的时候,N,L互素,那它们有没有逆呢?如果有的话。逆是多少?

请大家一定帮我,我的毕业设计急等着用呢!!谢谢!!!!
搜索更多相关主题的帖子: 逆运算 
2006-05-12 18:30
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 
以下是引用xuying234在2006-5-12 18:30:00的发言:
哪位朋友能给我详细讲解一下逆运算..比如N=4,L=7,求它们互素,求他们的逆为:

ei=N-1*i(modL)=4-1i(mod7)=2i(mod7),(0<i<N).所以N,L的逆为2.

那么当N=4,L=17的时候,N,L互素,那它们有没有逆呢?如果有的话。逆是多少?

请大家一定帮我,我的毕业设计急等着用呢!!谢谢!!!!

大姐您学的是密码学吧?我想帮您,可是我选修课又没认真听,只迷迷糊糊听了小小一些。
(4,17)的逆是4乘上一个小于它本身的数然后模17余1,求这个数,对吧?
我是这样理解的,不知道错了没有,如果上述理解是对的,那么4和17是没有逆的。
程序如下:
#include <stdio.h>
int reverse(int n,int m)
{
int i;
for(i=1;i<n;i++)
if(n*i%m==1)
return i;
return 0;
}
int main()
{
int num1,num2;
printf("Please input a number:");
scanf("%d",&num1);
printf("Please input another number:");
scanf("%d",&num2);
printf("%d",reverse(num1,num2));
getch();
return 0;
}


对不礼貌的女生收钱......
2006-05-12 18:46
xuying234
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-5-12
收藏
得分:0 
55555555555,怎么没人回贴啊?大伙帮帮我啊!!我真的是被困惑了很久了..

2006-05-12 18:46
xuying234
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-5-12
收藏
得分:0 
1楼的朋友,我也觉得是没有逆的,可是我的程序编出来以后,没有逆.尽然也有输出结果...要不您帮我看看我的程序...

2006-05-12 18:49
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 
大姐啊,您这是毕业设计啊?程序出来得一大堆吧?
俺刚大一,水平低,选修课俺也是白听的,每次俺都带一本玄幻小说去,
您的程序如果太大,那就不用了,呵,呵
小的话,倒是还行……

对不礼貌的女生收钱......
2006-05-12 18:54
xuying234
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-5-12
收藏
得分:0 
好好,谢谢你拉朋友...只要确定它是没有逆的就好了.我自己应该可以搞定了.谢谢你拉.朋友..

2006-05-12 18:57
xuying234
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-5-12
收藏
得分:0 

#include<stdio.h>
#include<math.h>
#define L 15
#define N 4

gcd_NL()/*判断N,L是否互素*/
{
int l=L,n=N;
int temp,k;
if(L<N)
{
temp=l;
l=n;
n=temp;
}
while(n!=0)
{
k=l%n;
l=n;
n=k;
}
return l;
}
qiu_ni() /*求出并返回N的逆*/
{
int s,yy;
int num;
for(s=1;s<=N;s++)
{ yy=(s*N)%L;
if(yy==1)
{num=s;
printf("N的逆为:%d\n",num);}
}
return num;
}
main()
{

int a[L]; /*自相关序列*/
int H[N][N]; /*hadamard矩阵*/
int e[N]; /*移位序列*/
int i,j,m,t;
int b[N][L]; /*b为交织序列*/
int b1[L][N]; /*转置交织矩阵*/
int c[N][L][N]; /*zcz序列*/
int num;
int F; /*最大公约数*/
// printf("input int L and N\n");
// scanf("%d\n,%d\n",&L,&N);
// printf("请输入自相关序列a\n");
for(m=0;m<L;m++)
{
a[m]=m;
// scanf("%d,",&a[m]);
}
printf("\n");
printf("请输入N*N阶矩阵H[N][N]:\n");
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
scanf("%d,",&H[i][j]);
}
printf("\n");
}
printf("\n");

num=qiu_ni();
F=gcd_NL();
if(F==1) /*L,N互素时的移位序列*/
{
for(i=0;i<N;i++)
e[i]=(num*i)%L;
}
else if(L%N==0) /*L整除N时的移位序列*/
{
for(i=0;i<N;i++)
e[i]=((L/N)*i)%L;
}
else if(N%L==0) /*N整除L时的移位序列*/
{
for(i=0;i<N;i++)
e[i]=i%L;
}
printf("输出移位序列为:\n"); /*输出移位序列*/
for(i=0;i<N;i++)
{
printf("%2d",e[i]);
printf("\n");
}
printf("交织序列为:\n");
for(i=0;i<N;i++) /*构成交织序列*/
{
for(j=0;j<L;j++)
{
b[i][j]=a[(e[i]+j)%L];
printf("%3d",b[i][j]);
}
printf("\n");
}
printf("转置后的交织序列:\n");/*转置交织矩阵*/
for(i=0;i<N;i++)
{
for(j=0;j<L;j++)
b1[j][i]=b[i][j];
printf("\n");
}
for(i=0;i<L;i++)
{
for(j=0;j<N;j++)
printf("%3d",b1[i][j]);
printf("\n");
}
printf("\n");
for(t=0;t<N;t++) /*实现ZCZ序列*/
{
for(i=0;i<L;i++)
{
for(j=0;j<N;j++)
{
c[t][i][j]=b1[i][j]*H[t][j];
}
}
}
printf("输出zcz序列为:\n");
for(t=0;t<N;t++)
{
for(i=0;i<L;i++)
{
for(j=0;j<N;j++)
{
printf("%3d",c[t][i][j]);
}
printf("\n");

}
printf("\n");
}
}
其实程序不是很长的.可以帮我看看吗??


2006-05-12 18:59
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 

看不懂!什么是移位系列啊?
我真是不懂啊,
不过,大姐啊,您的程序倒是可以再精简一下,有很多变量只是用来传递而已。
不好意思了,虽然您有可能是美女,但我能力不足,也不能送佛送到西了


对不礼貌的女生收钱......
2006-05-12 19:09
快速回复:关于逆运算的
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029265 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved