常见算法
柳家山头号矿工
如果你喜欢数学,那我们就是朋友!!!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
密码学AES算法_S盒_C值搜索
文章目录效果代码效果代码#include<stdio.h>//SBoxint SBox[16][16];//m(x)int M_x = 283;//m(x)_setint M_x_set[30] = {283,285,299,301,313,319,333,351,355,357,361,369,375,379,391,395,397,415,419,425,433,445,451,463,471,477,487,499,501,505};//M_x_set长度int L转载 2022-03-24 14:53:52 · 949 阅读 · 0 评论 -
扩展欧几里得算法计算多项式乘法逆元(matlab实现)
文章目录一、解析二、思路三、代码1、Main2、Poly_GCD3、Poly_Division4、Poly_Multi5、Poly_Multi_Eye一、解析Poly_GCD(r1,r2,nums):接收多项式r1,r2(r1>=r2),以及多项式长度nums返回其每一步的商组成的矩阵Q,以及gcd(r1,r2)Poly_Division(r1,r2,nums):接收多项式r1,r2(r1>=r2),以及多项式长度nums返回商,及其余数Poly_Multi(a,b,nums):原创 2022-03-18 16:00:30 · 2655 阅读 · 0 评论 -
GF(2^8)上的多项式乘法(Matlab实现)
文章目录一、解析/思路二、代码三、Main1、Poly_2_82、Func13、Func2一、解析/思路Main脚本:GF(2^8)上的多项式转换为1·8的数组Poly_2_8函数:接收多项式f,g,m,返回mod(fg,m)拆分多项式g,分步与f相乘,并保存于矩阵TFunc1:接收多项式f与拆分的多项式gi,返回fgi的结果Func2:接收分步相乘的结果T,返回异或结果二、代码三、Mainf=[0 1 0 0 1 1 0 1];g=[1 0 0 1 1 0 0 1];m=[0 0 0原创 2022-03-17 08:18:44 · 1706 阅读 · 0 评论 -
中国剩余定理(matlab实现)
文章目录一、解析二、思路三、效果四、代码1、Mian2、CR_T3、Mod_B_A_Inv4、GCD一、解析GCD()输入M,m,以及初始迭代值x,y,返回M mod m的逆元Mod_B_A_Inv()输入M,m,返回a在区间[1,m)之间的逆元CR_T()同余方程组:X=A mod M输入A,M,输出方程组的解X二、思路流程:通过GCD()得到一个逆元M^-1通过Mod_B_A_Inv()调整逆元M^-1通过CR_T()得到一系列的逆元:M_1^ -1,M_2^-1…,结合中国原创 2022-03-15 18:31:17 · 2191 阅读 · 0 评论 -
Extended Euclidean algorithm(扩展欧几里得算法Matlab实现)
文章目录一、解析二、思路1、Ini_XY迭代初值2、Ini_XY迭代矩阵3、流程三、效果如下四、代码1、Mian.m2、GCD.m一、解析Main.m矩阵A为一个n·2的矩阵,每一行存储一对待求解的数据Ini_XY数组为x,y的初始迭代值GCD.m形参:待求解数据矩阵,x,y的初始迭代值返回值:x,y的迭代值,除数矩阵二、思路1、Ini_XY迭代初值2、Ini_XY迭代矩阵3、流程由辗转相除法获取{q1,q2,…,qn}Qi=[0 1;1 -qi]Ini_XY(n+1)迭代初原创 2022-03-13 10:23:58 · 1396 阅读 · 0 评论 -
Hill加密算法(matlab 实现)
文章目录一、主要函数解析二、注意事项三、演示图四、问题五、代码一、主要函数解析1、function [ret] = Hill(M,Str)M为密钥矩阵Str为待转换数组二、注意事项1、Hill函数的功能仅为转换数组,而不区分加密或解密;当M为密钥矩阵时,Hill输出密文;当M为密钥矩阵的逆时,Hill输出明文2、该算法中矩阵的逆定义不同于常规定义三、演示图四、问题1、当前仅实现明密文转换,密钥矩阵及其逆矩阵的生成尚未实现ps:此处提供一密钥矩阵及其逆矩阵供参考%M: [17 17原创 2022-03-10 13:03:51 · 2986 阅读 · 0 评论 -
Playfair加密算法(C 实现)
主要函数1、Creat_Key(char* s,int L, char Matrix[5][5])生成密钥Matrix矩阵2、Encrypt(char Matrix[5][5],int L, char* s, char *s0, bool reverse)根据密钥矩阵加密或解密加密:s为明文,s0为密文字符串存储位置,reverse=0解密:s为密文,s0为明文字符串存储位置,reverse=1注意事项1、字符串只能含有字母2、已禁用字母j/J3、字符均以大写形式处理(已自动转换,输入时原创 2022-03-10 09:08:06 · 4574 阅读 · 0 评论 -
蚁群优化衰减的意义
举一个反例没有衰减函数的情况下,设在某只蚂蚁面前有两条路径分别为A、B,路径A长度为10,路径B长度为9,某时刻路径A的信息素浓度为99,路径B的信息素浓度为1走路径A增加的信息素浓度:走路径B增加的信息素浓度=路径B长度:路径A长度设走路径A增加的信息素浓度为9,走路径B增加的信息素浓度为10选择路径A的可能性=99/(1+99),下一时刻路径A信息素浓度期望=9*99/100=8.91选择路径B的可能性=1/ (1+99),下一时刻路径A信息素浓度期望=10/100=0.1下一时刻选择路径原创 2021-10-15 08:40:15 · 152 阅读 · 0 评论 -
粒子群优化算法Matlab实现(待逐步解释)
入口%下面的粒子群优化适用于最值位于非边界%当最值位于边界,收敛较慢%粒子空间%1 2---2+(Xs-1) 2+Xs 3+Xs---3+Xs+(Xs-1) 3+2*Xs---3+2*Xs+(Xs-1) 3+3*Xs---3+3*Xs+(Xs-1) 3+4*Xs%序号 X X适应值 个体最优X 群体最优X Next_X 个体最优适应值 建模如下:则将array中所有大于array[i]且能被array[i]的整除的数置为-1i=i+1end证明对任意取处理后的array中的一个数array[i]若array[i]等于-1说明它被某一个小于它大于1的数整除,则它不为质数若array[i]不等于-1说明它未被任意一个小于它大于1的数整除原创 2021-09-16 08:43:19 · 163 阅读 · 0 评论 -
n 人围圈报数游戏 C语言实现
规则: n 人围成一圈,按照顺序给标上 1 到 n 的序号;从 1 开始报数,报到 m 的人退出圈子,下一个人继续从 1 开始报数(m <= n);如此循环,一直到最后一人。要求:输出每个人退出的顺序序号例如输入:n = 3 ,m = 1;输出:3,1,2核心:构造一个两倍长度的数组,首尾相接,模拟圆圈的情景算法演示:语言不好描述,看图吧,(建议结合程序一起看,更好理解)void Game(int n, int m, int Sort[]) { //重点:**两倍长度的数组*原创 2020-10-26 14:45:20 · 4636 阅读 · 1 评论 -
Java 实现三次 for 循环计算水仙花数
class Untitled {public static void main(String[] args) {for(int i = 1;i < 10;i++){//百位 : ifor(int j = 0;j < 10;j++){//十位 : jfor(int k = 0;k < 10;k++){//个位 : kint a=100i+10j+k;if(a==Math.pow(i,3)+Math.pow(j,3)+Math.pow(k,3)){//Math.pow(x,y) =原创 2020-10-16 07:19:12 · 1125 阅读 · 1 评论 -
质数判断,不同算法效率比较
class Untitled { public static void main(String[] args){ int n=10063;//n>=2 //nanoTime:纳秒 //currentTimeMillis:秒 //一纳秒等于十亿分之一秒 long st= System.nanoTime();//获取开始时间(纳秒) //方法1 System.out.println(Pd0(n)); long et0=System.nanoTime();//获取结束时间原创 2020-10-16 07:57:08 · 241 阅读 · 1 评论
分享