
算法
文章平均质量分 65
不是AI
本科:北京航空航天大学信息对抗技术专业
Bachelor of Engineering in Information Countermeasure Technology, Beihang University
硕士:新加坡南洋理工大学计算机控制与自动化专业
Master of Science in Computer Control and Automation, Nanyang Technological University Singapore
兴趣:计算机技术、机器人、泛AI、英文、中土世界、化学等等
展开
-
【遗传算法】【机器学习】【Python】常见交叉方法(二)、多点交叉和均匀交叉
本文简单介绍遗传算法的两种常见的交叉方法:多点交叉和均匀交叉,并使用Python实现简单的交叉算法。原创 2024-06-05 09:36:31 · 1285 阅读 · 0 评论 -
【遗传算法】【机器学习】【Python】常见交叉方法(一)、单点交叉和两点交叉
使用Python编程语言,实现【遗传算法】中的两种最简单的交叉(繁衍)方法:单点交叉和两点交叉。原创 2024-06-04 16:31:43 · 1698 阅读 · 0 评论 -
【机器学习】【遗传算法】【项目实战】药品分拣的优化策略【附Python源码】
遗传算法(Genetic Algorithm, GA)是机器学习领域中常见的一类算法,其基本思想可以用下述流程图简要表示:(图参考论文:Optimization of Worker Scheduling at LogisticsAnnealing)一种常见的遗传算法变例是有偏随机密匙遗传算法BRKGA,算法流程大致如下:Pymoo学习 (11):有偏随机密匙遗传算法 (BRKGA: Biased Random Key Genetic Algorithm) 的使用。原创 2024-06-03 17:38:43 · 1322 阅读 · 1 评论 -
【Python】【matLab】模拟退火算法求二元高次函数最小值
使用Python实现简单的模拟退火算法,求解自定义的二元二次函数的最小值,并使用MatLab编写程序验证求解结果。原创 2024-06-03 13:22:42 · 522 阅读 · 0 评论 -
【极客app每日一练】【微软MS面试题】【Geeks for Geeks】Java: 字符串匹配
一道微软公司在印度地区招聘所用的面试题,所用编程语言为Java。原创 2024-03-06 16:30:26 · 914 阅读 · 0 评论 -
【极客app每日一练】【Geeks for Geeks】Java: 最大索引差
本题的解题思路比较简洁直观:定义2个指针 j 和 k,其中 j 从数组的头部开始迭代自增,k 从数组的末尾(由于题目要求最大的索引差,从末尾开始会比较快)迭代自减,满足条件则更新答案变量Maximum_Index,最后将Maximum_Index输出即可。2024年3月5日,于印度尼西亚巴厘岛。原创 2024-03-05 19:40:26 · 440 阅读 · 0 评论 -
【极客app每日一练】【Geeks for Geeks】Java:交换数组元素
2024年3月4日,于印度尼西亚巴厘岛。原创 2024-03-04 17:48:38 · 756 阅读 · 0 评论 -
Java练习(第5天)【总结】在字符串中寻找特定的字符(5种方法)
1、第1次出现位置实现函数原型: int indexOf(char c)Java代码:样例字符串: Geeks for Geeks is a computer science portal样例输出:2、最后一次出现位置实现函数原型: public int lastIndexOf(char c)Java代码:样例字符串: Geeks for Geeks is a computer science portal样例输出:3、指定位置后的首次出现实现函数原型: public int IndexOf(char原创 2024-03-03 09:42:53 · 1805 阅读 · 0 评论 -
【Java文件报错】Cannot resolve symbol ‘println‘ 【及解决】
语句进行输出,编译器提示“Cannot resolve symbol ‘println’(无法解释关键字)”, println飘红。报错代码及报错截图如下所示。在Java源代码文件中,使用。原创 2024-03-02 21:21:06 · 2252 阅读 · 0 评论 -
Java练习(第4天)【总结】反转字符串的9种不同实现方法
使用堆栈的LIFO(Last-in First-out,后入先出)性质。使用StringBuilder类内置的reverse()方法。使用StringBuffer类内置的reverse()方法。给定一个字符串,输出反转后的字符串。ListIterator迭代变量。转字符数组CharArray。转字符数组CharArray。使用ArrayList对象。不同之处:读取用户输入。原创 2024-02-27 13:25:09 · 803 阅读 · 0 评论 -
Java练习(第3天)使用StringJoiner类进行字符串连接
2、StringJoiner类:构造方法、setEmptyValue方法、add方法、length方法、merge方法、toString方法。给定2个或多个字符串,将其连接成为一个字符串,并输出连接后字符串的长度。字符串之间用逗号或引号分隔。1、ArrayList类:构造方法、add方法、get方法;原创 2024-02-22 10:19:53 · 287 阅读 · 0 评论 -
Java练习(第2天)文本文档字符统计(Counting the Number of Words, Sentences, Characters, paragraphs in a Text File)
给定一个文本文档(.txt文件),编写一个Java程序,读取并输出该文本文档的单词数(单词之间用空格分隔)、句子数(句子用一般标点符号。分隔)、字符数(包括字母、数字、空格、标点)、段落数(段与段之间有一空行)和空格数,Java文件输入输出类。简单输入、输出操作。原创 2024-02-21 13:59:24 · 785 阅读 · 0 评论 -
Java练习(第1天)去除字符串前导0(Remove Leading Zeros From String)
给定带有前导0的(纯数字)字符串,将其前导0去除并输出。本文给出2种不同的Java实现方法,原理较为直接,不作过多说明。类(Java Class)与面向对象编程(Object-Oriented Programming, OOP);字符串(String)对象的length()方法、charAt()方法;字符串缓存(String Buffer)对象及其使用;子字符串(substring())方法及其使用。原创 2024-02-20 12:07:20 · 801 阅读 · 0 评论 -
【网络安全】【密码学】【北京航空航天大学】实验五、古典密码(中)【C语言实现】
实验目的和原理简介参见博客:古典密码(上)1、弗纳姆密码(Vernam Cipher)(1)、算法原理加密原理:加密过程可以用方程 ci = pi (+) ki 表示,其中 pi 是明文第 i 个二进制位,ki 是密钥第 i 个二进制位,ci 是密文第 i 个二进制位,(+) 是异或运算符。密文是通过对明文和密钥的逐位异或而成的。解密原理:根据异或运算的性质,解密过程可以用方程 pi = ci (+) ki 表示,其中 pi 是明文第 i 个二进制位,ki 是密钥第 i 个二进制位,ci 是密文第i个二原创 2024-01-20 22:04:21 · 1645 阅读 · 0 评论 -
【网络安全】【密码学】【北京航空航天大学】实验四、古典密码(上)【C语言实现】
置换和代替。置换密码重新排列明文中字符的顺序,不改变字符本身;代替密码不改变明文中的字符顺序,而是将字符替换成其他字符。置换密码通常主要包括列置换和周期置换2种,代替密码则主要包括单表代替密码和多表代替密码2种。原创 2024-01-13 12:12:51 · 1539 阅读 · 0 评论 -
【网络安全】【密码学】【北京航空航天大学】实验三、数论基础(下)【C语言实现】
(Cryptography and Network Security, Principles and Practice, Seventh Edition),【美】威廉 斯托林斯 William Stallings 著,王后珍等 译,北京,电子工业出版社,2017年12月。》,郭华 刘建伟等 主编,北京,电子工业出版社,2021年1月。判断1500450271是素数还是合数。判断1000023是素数还是合数。判断1000033是素数还是合数。算法,用于判断一个整数是合数还是素数。原创 2024-01-12 12:28:05 · 1315 阅读 · 0 评论 -
【信息论与编码】【北京航空航天大学】实验一、哈夫曼编码【C语言实现】(上)
其中,256种字节(与顺序无关)分别被编码成码长为1,2,3,4,5,……原文件大小为64KB = 64 * 2^10 * 8 = 2^19 bits. 可见,压缩后的文件体积比压缩前的文件体积更大…0xff共计256种字节,每种字节出现的概率相同,所生成的哈夫曼树为一棵极不平衡的二叉树,形如下图:。观察编码后的文件大小,解释为什么文件体积会发生这种变化(为什么会这样(模组 1 和 模组 3) / 是什么发挥了作用(模组 2))。结合你学过的知识解答。:压缩比例大于1,即压缩后的文件比压缩前的文件更大。原创 2024-01-10 16:11:03 · 2015 阅读 · 2 评论 -
【Python数学练习1】
输入3,满足条件的(a,b)对为(1,1) (2,1) (2,2) (3,1) (3,3),有5对,故输出5。输入2,满足条件的(a,b)对为(1,1) (2,1) (2,2),有3对,故输出3。由于要用到向下取整函数floor,我们需要导入Python内建的math数学运算库。,输出满足条件的数对(a,b)的个数,满足gcd(a,b)=b, a,b原创 2023-11-18 18:29:00 · 173 阅读 · 0 评论 -
【Python小练习】简单浮点矩阵乘法
最近上《计算机控制系统》课,涉及许多矩阵运算(乘法居多),觉得手算不过来,按计算器太慢,于是写一个Python小程序做做。比计算器快。原创 2023-09-26 11:20:04 · 274 阅读 · 0 评论 -
【厄拉多塞筛】求素数的C语言实现
厄拉多塞筛算法(Eratosthenes Sieve)是一种求素数的方法,由古希腊数学家厄拉多塞(Eratosthenes)提出。原创 2023-04-22 18:38:47 · 814 阅读 · 0 评论 -
【中国剩余定理】C语言实现
(1)方程的余数和模数必须为整型,不能是大整数(上百位)(若为大整数,为了在有限的时间内完成相关计算,需使用。(数学版)x = 1 mod 4;x = 3 mod 11. 求x。(古文版)今有物不知其数,四四数之剩一,九九数之剩二,十一十一数之剩三,问物几何?(2)方程个数必须小于等于100(由数组定义),否则会导致数组下标溢出。(2)第一行输入1个整数,代表方程组中的方程个数。行,每行输入2个整数,分别代表每个方程组的。代码说明:用于解(一次)同余方程组的。(4)回车,输出方程组的。原创 2023-04-22 12:40:06 · 1344 阅读 · 0 评论 -
计算时间复杂度记号
计算时间复杂度是指某一程序或算法完成一次计算所需的时间长短,一般与问题规模(N)挂钩。原创 2023-03-29 16:16:27 · 1394 阅读 · 0 评论 -
2种方法求解根号2
这是一道经典的面试题:自己编写函数实现根号2(根号n)的求解。排除显然答案:一、牛顿-拉弗森法(Newton-Raphson Method)这个方法被认为同时被艾萨克·牛顿和约瑟夫·拉弗森提出,所以名为牛顿-拉弗森法。结论:如果存在一个k是多项式p的根的有效近似,那么k - p(k) / p’(k)就是一个更有效的近似值。其中p’是p的一次导数。求解根号n可以转化为求多项式x ^ 2 - n的根的问题,该多项式的一次导数是2x. 因此,如果当前的猜测是k, 那么可以选择k - (k ^ 2 - n) /原创 2022-06-26 15:25:43 · 4066 阅读 · 1 评论