CINTA第二次作业

CINTA第二次作业

7.手动计算以下模m下a的乘法逆元。(a)m=11,a=5 (b)m=121,a=13
( c)m=1021,a=131
(a) [ 1 0 11 0 1 5 ] \begin{bmatrix} 1 & 0 & 11 \\ 0 & 1 & 5 \end{bmatrix} [1001115] [ 0 1 5 1 − 2 1 ] \begin{bmatrix} 0 & 1 & 5 \\ 1 & -2 & 1 \end{bmatrix} [011251]
所以a的乘法逆元是-2
(b) [ 1 0 121 0 1 13 ] \begin{bmatrix} 1 & 0 & 121 \\ 0 & 1 & 13 \end{bmatrix} [100112113] [ 0 1 13 1 − 9 4 ] \begin{bmatrix} 0 & 1 & 13 \\ 1 & -9 & 4 \end{bmatrix} [0119134] [ 1 − 9 4 − 3 28 1 ] \begin{bmatrix} 1 & -9 & 4 \\ -3 & 28 & 1 \end{bmatrix} [1392841]
所以a的乘法逆元为28
(c) [ 1 0 1021 0 1 131 ] \begin{bmatrix} 1 & 0 & 1021 \\ 0 & 1 & 131 \end{bmatrix} [10011021131] [ 0 1 131 1 − 8 − 27 ] \begin{bmatrix} 0 & 1 & 131 \\ 1 & -8 & -27 \end{bmatrix} [011813127] [ 1 − 8 − 27 5 − 39 − 4 ] \begin{bmatrix} 1 & -8 & -27 \\ 5 & -39 & -4 \end{bmatrix} [15839274] [ 5 − 39 − 4 − 34 265 1 ] \begin{bmatrix} 5 & -39 & -4 \\ -34 & 265 & 1 \end{bmatrix} [5343926541]
所以a的乘法逆元为265
8.编写c语言程序完成模指数运算,即给定整数x,y和m为输入,计算并返回xymod m
将模指数进行分治计算

#include <iostream>
#include<cmath>
using namespace std;
int ME(int x,int y,int m)
{
    int res=1;
    while(y)
    {
    	if(y&1)
    		res=(res*x)%m;
    		y>>=1;
    		x=x*x%m;
    }
    return res;
}

9.在这里插入图片描述
这是对矩阵的快速幂运算

#include<iostream>
using namespace std;
struct matrix{
    int a[2][2];
};
matrix multip(matrix a1,matrix a2)
{
    matrix temp;//中间变量,存储
    temp.a[0][0]=temp.a[1][0]=temp.a[0][1]=temp.a[1][1]=0;
    for(int i=1; i<=2; i++)
        for(int j=1; j<=2; j++)
            for(int k=1; k<=2; k++)
            {   //第i行乘以第j列的和
                temp.a[i][j]=temp.a[i][j]+a1.a[i][k]*a2.a[k][j];
            }
    return temp;
}
matrix qpow(int n,matrix a1)
{
    //传入n次幂
    matrix a2;
    while(n)
    {
        if(n&1)
            a2=multip(a2,a1);//n为奇数
        a1=multip(a1,a1);
        n>>=1;// n/=2
    }
    return a2;
   
}

在这里插入图片描述

运用反证法
假设给定互素的正整数c和m,存在整数值c-1不模m唯一
设a,b分别为c模m的逆元,ac≡bc≡1(mod m)
由定理得:m | c(a - b), 又因为 gcd(c, m) = 1, 所以 m | (a - b),即 a≡b(mod m)
说明a,b模m唯一,与假设矛盾
命题得证
11.编写一个 Python 程序计算乘法逆元,即输入互素的正整数 c 和 m,返回 c ,使得 cc−1 ≡ (mod m)。要求:只返回为正整数的 c−1

ddef ex_gcd(a, b): #扩展欧几里得算法    
    if b == 0:          
        return 1, 0, a     
    else:         
        x, y, gcd = ex_gcd(b, a % b) #需多递归一层用于判断        
        x, y = y, (x - (a // b) * y)        
        
        return x, y, gcd

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,这里是50种不同国家的语言表达“我爱你”: 1. English - I love you 2. Spanish - Te quiero 3. French - Je t'aime 4. German - Ich liebe Dich 5. Italian - Ti amo 6. Portuguese - Eu te amo 7. Russian - Ya lyublyu tebya 8. Chinese (Mandarin) - Wo ai ni 9. Japanese - Aishiteru 10. Korean - Sarang hae 11. Arabic - Ana behibak (to a male) / Ana behibek (to a female) 12. Dutch - Ik hou van je 13. Danish - Jeg elsker dig 14. Swedish - Jag älskar dig 15. Norwegian - Jeg elsker deg 16. Finnish - Minä rakastan sinua 17. Polish - Kocham Cię 18. Czech - Miluji Tě 19. Hungarian - Szeretlek 20. Bulgarian - Obicham te 21. Greek - S'ayapo 22. Turkish - Seni seviyorum 23. Romanian - Te iubesc 24. Croatian - Volim te 25. Serbian - Volim te 26. Slovenian - Ljubim te 27. Slovak - Milujem Ťa 28. Estonian - Ma armastan sind 29. Latvian - Es tevi mīlu 30. Lithuanian - Aš tave myliu 31. Icelandic - Ég elska þig 32. Albanian - Te dua 33. Thai - Phom rak khun (to a male) / Chan rak khun (to a female) 34. Vietnamese - Anh ye^u em (to a female) / Em ye^u anh (to a male) 35. Indonesian - Saya cinta padamu 36. Filipino - Mahal kita 37. Hindi - Main tumse pyar karta hoon 38. Bengali - Ami tomake bhalobashi 39. Urdu - Main tumse muhabbat karta hoon 40. Marathi - Me tujhe pyaar kartaa hoo 41. Punjabi - Main tere pyar da haan 42. Telugu - Nenu ninnu premisthunnanu 43. Tamil - Naan unnai kaadhalikken 44. Malayalam - Njan ninnodenikkoo 45. Kannada - Naanu ninna preetisuttene 46. Gujrati - Hu tane pyar karoo chu 47. Nepali - Ma timilai maya garchu 48. Sinhala - Mama oyata arderyi 49. Burmese - Chit pa de 50. Mongolian - Bi chamd hairtai

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值