程序人生
hser-chen
成长回忆录
展开
-
洗牌算法——N个数随机打乱
具体思路:1.随机生成一个(1,N)的整数,代表第一个数的数组下标 2.用erase删除vector容器中该数,然后再随机生成(1,N-1),代表第二个数的数组下标 3.遍历N-1次代码如下:#include <iostream>#...原创 2020-07-04 11:34:01 · 486 阅读 · 0 评论 -
启发式智能优化算法(GA、PSO、SA和CSA)更新
(截至2020.05.06已更新为最新代码)启发式智能优化算法遗传算法原理及代码https://blog.csdn.net/weixin_41788456/article/details/100550968 粒子群算法原理及代码https://blog.csdn.net/weixin_41788456/article/details/100145960 模拟退火算法原理及代码https...原创 2020-05-06 21:00:55 · 4554 阅读 · 1 评论 -
黄金分割(0.618)法求解函数极值(附代码)
目录黄金分割法迭代公式算法步骤:例题C++代码:黄金分割法也称为中外比,指把一条线段分割为两部分,使其中一部分与全长之比等于另一部分与这部分之比。其比值是一个无理数,取其前三位数字的近似值是0.618,所以也称为0.618法。黄金分割法 迭代公式算法步骤:step1.给定初始搜索区间和允许精度step...原创 2020-03-31 18:10:17 · 9219 阅读 · 0 评论 -
斐波那契(Fibonacci)迭代法求解函数极值(附代码)
目录Fibonacci数列:迭代公式:算法步骤:例题C++代码:Fibonacci数列又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,Fibonacci迭代法可以求解函数零点、函数极值等,本文用c++语言实现Fibonacci迭代法求解函数极值。Fibonacci数列:...原创 2020-03-31 16:24:04 · 7379 阅读 · 1 评论 -
浅谈GPU并行计算学习经验
从开始了解高性能GPU并行计算到现在也就三个月时间,因为我所有的代码都是C++语言编写,所以在并行计算异构编程框架上选择的是基于C++ AMP平台。只有真正的实现超线程计算缩短了for循环之后,才感叹这技术太牛逼了!一定要掌握!当开始了解GPU并行计算还是在实验室一个刚回国师兄的讲座上,他用的是CUDA,当然师兄的编程能力超硬,所以对于这种技术都是处于羡慕状态。最开始我查了好多资料准备使用CU...原创 2020-03-09 13:38:33 · 1160 阅读 · 0 评论 -
智能优化算法——布谷鸟搜索算法原理(附代码)
目录基本概念算法具体流程 算法流程图测试函数优化结果C++代码基本概念布谷鸟搜索算法(Cuckoo Search,缩写 CS)是由剑桥大学杨新社教授和S.戴布于2009年提出的一种新兴启发算法。根据昆虫学家的长期观察研究发现,一部分布谷鸟以寄生的方式养育幼鸟,它们不筑巢,而是将自己的卵产在其他鸟的巢中(通常为黄莺、云雀等),由其他鸟(义亲)代...原创 2020-02-22 17:02:06 · 17236 阅读 · 5 评论 -
c++笔记——记录程序运行时间的方法
很多时候我们需要记录程序运行开始到结束总共花了多少时间,看看自己编写的程序效率到底怎么样,我们可以直接用visual studio 2017 提供的时间库<ctime>,代码如下:#include "pch.h"#include <ctime>#include <iostream>using namespace std;int main(){ clock_...原创 2019-08-30 15:10:46 · 747 阅读 · 0 评论 -
数值计算——列主元高斯消去法求解线性方程组(附代码)
目录列主元高斯消去法原理列主元高斯消去法流程图C++程序源代码实例运行结果列主元高斯消去法原理 在基本高斯消去法的消元过程中并没有考虑任何数值方面的问题,事实上这方面的问题是常见的,也是不能忽略的,即当主元,且很小时,高斯消去法虽然能执行下去,但用作为主元计算行乘数时,会扩大误差,导致结果不可靠,甚至严重失真。基本高斯消去法的求解过程如下(具体原...原创 2019-11-24 11:18:39 · 13593 阅读 · 0 评论 -
c++笔记——宏定义字符串实现文件命名
宏定义字符串实现整个程序过程中使用:#include "pch.h"#include <iostream># include <fstream>#include<string.h>#define charname "宏定义字符串"using namespace std;int main(){ char object_name[100]=...原创 2019-10-29 17:18:35 · 834 阅读 · 0 评论 -
c++笔记——字符串拼接实现文件命名
在写程序的过程中,对于数据结果的输出需要针对研究对象命名,如果涉及到输出的文件比较多,使用一个固定的字符串为研究对象名字与结果类型拼接,这样编程效率更高。#include "pch.h"#include <iostream># include <fstream>#include<string.h>using namespace std;int...原创 2019-10-29 17:11:10 · 2947 阅读 · 1 评论 -
数值计算——高斯消去法求解线性方程组(附代码)
高斯消去法是求解线性方程组常用的直接解法高斯(Gauss)消去法解方程组的基本思想是用矩阵的行初等变换将系数矩阵约化为上三角形矩阵,再进行回代求解。设Ax=b,,若A的所有顺序主子式均不为零,则基本高斯消元无需换行进行到底,得到唯一解,其消元和回代的计算公式为:(1)消元计算 对于 (2)回代计算基本高斯消去法c++代码:此程序编写的函数用的容器作...原创 2019-10-10 17:04:40 · 10899 阅读 · 0 评论 -
C++函数的定义与调用——容器作为参数传递与返回
在函数的定义与调用时,通常会遇到一组数或者几组数作为参数传递和返回值,初学者会使用数组,但是在定义数组时需要确定数组大小,并且返回值需要使用动态数组,很多不方便的地方,这里我们使用容器作为传递和返回值可以避免这一问题。#include "pch.h"#include <iostream>#include <vector>using namespace std...原创 2019-10-09 20:37:11 · 2745 阅读 · 0 评论