- 博客(12)
- 收藏
- 关注
原创 CINTA——2选做
计算斐波那契数列Fn,就是解题中已给出的矩阵的n次幂,那么怎样才可以快速的解出来呢?当然,最简单的算法就是对矩阵进行循环乘法了,时间复杂度为On,但是,如果我们采用教材中3.3节所给出的模指数运算的算法包含的中的快速幂算法,就可以将时间复杂度降为Ologn那么对于模指数运算的算法xymodn来说,这里的x就相当于矩阵1110这里的y就相当于n,然后我们只需要将书中算法的整数x。
2024-01-01 01:56:54 767
原创 CINTA——1选做
根据除法算法,∀a∈Z∃kr∈Z0≤r3,使得a3kr,其中3可以理解为是a的除数。因此有a29k23krr3kr2,易知3∣9k23krr3k,故有a2≡r2mod3因为r∈Z0≤r3,故r只可以取到012,因此上式有a2≡021222mod3,因为2mod3−1mod3,故a2≡01mod3,根据除法算法,有a23k或者z2。
2023-12-31 14:50:34 789
原创 CINTA——7
①若要证明第一点,即证明a模p的二次剩余等于b模p的二次剩余,即证明a≡x2modp⇔b≡x2modp而又因为a≡bmodpa≡x2modpa≡bmodpb≡x2modp反过来证明同理,这里就不赘述了…②第二点:paap−1/2modppbbp−1/2modp故papbap−1/2bp−1/2modpabp−1/2modppab。
2023-12-24 22:27:08 408 1
原创 error C1001:内部编译器错误
error C1001:内部编译器错误今日在调试项目的时候,VS2022编译器报错C1001:内部编译器出错,错误只给标在42行里面的一个大括号里面,具体原因咱也不知道但是因为之前在调试作业和项目的时候,也经常遇到此种报错,故之前有自己总结一些原因:在类中函数的类外实现时少了大括号;或者少了分号;或者变量名写错(例如:常见的i写成l);又或者是用new开辟新空间的时候,忘记写数据类型了,直接new[]了,而不是new T[]等等。总之,说白了就是,类中的函数实现代码出现了不细心的错误,这个时候咱们只需
2023-12-18 12:43:08 684 1
原创 CINTA——6
利用中国剩余定理,解法如下:1、记a8b3p11q19n11⋅19209;2、使用egcd算法求解p−1和q−1,它们分别使pp−1≡1modqqq−1≡1modp。得到p−17q−173、令xapp−1bqq−1modn,解得x41x是正解。
2023-12-06 22:41:02 915 1
原创 CINTA——5
GH2GH2,此时G有两个子群①∀g∈Gh∈H①∀g∈Gh∈H,如果g∈Hg\in Hg∈H,有gh∈Hgh\in Hgh∈H,故gHHgH=HgHH,同理,HgHHg=HHgH,故gHHggH=HggHHg;②g∈G且g∉H②g\in G 且g\notin H②g∈G且g∈H,则gHG−HgH=G-HgHG−HHgG−H。
2023-11-29 22:58:13 837 1
原创 CINTA——2
还有一种方法是利用中间数值,具体实现代码如下(使时间复杂度从O(n)变为O(log(n))):2、写一个求乘法逆元的函数Mul_Inverse,输入a和m,求a模m的乘法逆元。提示,要求只输出正整数。计算题1、设p = 23 和a = 3,使用费尔马小定理计算a2019a^{2019}a2019 mod p
2023-10-17 23:11:12 80 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人