- 博客(42)
- 资源 (5)
- 收藏
- 关注
原创 计算机中的浮点数运算
计算机中以固定长度存储浮点数的方式,造成了浮点数运算过程容易产生上溢和下溢。以float32为例, 其标记位占1bit,指数位占8bit,小数部分占23bit。
2023-03-18 22:52:00 524 1
原创 BP神经网络(原理及代码实现)
头文件pch.h#ifndef PCH_H#define PCH_H#include <cmath>#include <iostream>#include <vector>#include &am
2022-04-04 00:00:00 2407 2
原创 动态规划(原理及C++实现)
动态规划 动态规划是运筹学的一个分支,是解决多阶段决策过程最优化的一种数学方法,主要用于以时间或低于划分阶段的动态过程最优化。在计算机领域也多有应用,最广为人知的应该是动态规划解01背包问题。例题 给定n个物料的权重和值,将这些物料放在容量为W的背包中,以在背包中获得最大的总价值。解题策略(一) 递归解题是一种很好的思路,只需要借助简单的逻辑就能实现这个复杂的功能。递归代码#include <iostream>using namespace std;int max(in
2022-04-03 11:20:02 1046
原创 RANSAC算法(原理及代码实现+迭代次数参数自适应)
前言 随机样本一致性 (RANSAC) 是一种迭代方法,用于从一组包含异常值的观察数据中估计数学模型的参数,此时异常值不会对估计值产生影响。简言之,RANSAC是一种滤除噪声的常用算法。算法流程...
2022-04-01 04:00:00 4933 2
原创 NANA简介
前言 NANA库是Cclplus竭力编写的C++运算库,主要用于数值分析。NANA的初版以矩阵类发布,目前正在更新的NANA版本是2020a.NANA的开发者仅有Cclplus,相关算法更新较慢。但NANA是完全开源的,读者可以通过笔者的coding开源NA项目进行访问。NANA库旨在为使用者提供丰富的数值分析库,当然,读者可以通过NANA更好的学习数学。 欢迎更多的人加入维护和使用NAN...
2022-03-31 00:00:00 613
原创 SVD奇异值分解(理论与C++实现)
目录前言前言 奇异值分解(singular value decomposition,以下简称SVD)是线性代数中一种重要的矩阵分解。SVD将矩阵分解为奇异向量(singular vector)和奇异值(singular value)。SVD将矩阵AAA分解成三个矩阵的乘积A=UDVT A = UDV^{T}A=UDVT 设AAA是m×nm\times nm×n的矩阵,则UUU是一个m×mm\times mm×m的矩阵,DDD是一个m×nm\times nm×n的矩阵VVV是一个n×nn\time
2022-03-30 00:00:00 2546 1
原创 激光能量分布仿真分析(附Python和matlab实现代码)
前言 初写这个程序时,用的是matlab。然而离开学校以后,价格高昂的matlab软件不再能使用。因此,用Python补充这些程序。如果有读者想要讨论电磁场理论相关的物理学或者编程以及数学,我的邮箱是707101557@qq.com。程序 下面两个程序用简单的方法实现仿真,算法的时间复杂度极高,且没有在编程技巧上进行改进,因此需要运行较长时间。在最后,我改进了变成技巧,加速了程序的运行...
2022-03-29 00:00:00 6075
原创 根据前序遍历、中序遍历还原二叉树
已知前序遍历和中序遍历如何构造二叉树 设有前序遍历(根->左->右):3,9,20,15,7 中序遍历(左->根->右):9, 3, 15, 20, 7算法设计 1. 前序遍历的第一点为根节点 2. 在中序遍历中,根节点的左边为其左子树,右边为其右子树 根据以上特性,设置算法流程如下:确认当前节点、左子树、右子树在左子树中递归在右子树中递归功能代码及测试代码#include <iostream>#include <vector
2022-03-28 00:00:00 1808
原创 二叉树前序、中序、后序遍历(原理及其C++实现)
理论部分二叉树的递归算法 令L,R,D分别代表遍历一个节点的左子树、右子树和访问该结点的操作,则二叉树有六种规则:DLR,LDR,LRD,DRL,RDL,RLD。若规定先左后右,则仅剩下前面三种规则,即DLR(前序遍历) 、LDR(中序遍历)、LRD(后续遍历)。代码struct TreeNode { int val; TreeNode* left; TreeNode* right; TreeNode() : val(0), left(nullptr), right
2022-03-27 00:12:53 1918
原创 windows下动态库的生成与调用
windows下动态库的生成与调用前言DLL简介创建DLL调用DLL作者语参考文献前言 如果想要设计更好的软件,深入理解动态库是十分有必要的,因为动态库与大型C++软件的模块化息息相关。本文主要讲解什么是DLL,以及如何用visual studio生成自己的动态库,并调用自己生成的动态库。本文所介绍的也仅仅是windows下的动态链接库。DLL简介 在windows系统上,dll文件和exe文件实际上是一个概念,他们都是有PE格式的二进制文件,不同之处在于PE文件头部中有个符号位表示该文件是ex
2021-07-18 19:56:33 1511 1
原创 OpenCV+cmake 生成vs工程 和OpenCV动态库(附视频链接)
目录前言学前准备编译OpenCV下载相关库通过CMake生成相关工程下回预告对学者的建议前言 本文是OpenCV学习系列开篇之作,旨在为OpenCV的初学者指明学习的道路,并以vs2019+opencv4.5.1的环境搭建为例,介绍OpenCV的编译过程。学前准备 对于编程功底较好的同学,建议通过OpenCV源码进行学习;对于刚学习编程不久的同学,可以先通过一些教材深入了解OpenCV。笔者推荐的教材是安德里安的学习OpenCV3。编译OpenCV 编译OpenCV的步骤如下,1.下载相
2021-01-31 21:56:25 1323 1
原创 从博弈论的角度出发,解密股民与机构在股票市场中的博弈
前言 博弈论旨在分析游戏中个体的预测行为和实际行为,并研究它们的优化策略。今年的A股市场可谓跌宕起伏,这种股市情形是很容易让股民们亏钱、机构盈利的。怎么证明过程呢?这个过程可能有些抽象,因此我们先用一个故事来让大家了解这个过程的全貌。正面 你在一家咖啡厅遇到了迪丽热巴,她要和你玩这样一个游戏:你们两人各持一枚硬币,如果同时出正面你赢走3个币,同时出反面你赢走1个币;如果是一正一反,迪丽热巴赢走2个币。还未学过博弈论的你,很可能认为你们两个人的收益期望应当是相当的。你会认为在随机情况下,都出正面的概
2020-10-06 16:45:05 1608
原创 QVector与std::vector对比
前言 Qt与STL都提供了诸如QVector之类的容器,在软件开发的过程中,应该使用哪一种容器更为合理呢?笔者认为这取决于你希望如何优化你的软件;如果你在意的是效率,笔者建议你使用vector。实验 vector和QVector都是通过复制构造函数添加对象,但当你执行push_back时,你会发现,vector只调用了一次复制构造函数,而QVector调用了两次复制构造函数。#include <iostream>#include <QtCore/QVector>u
2020-08-08 13:19:52 4396
原创 SVD应用于图像压缩 Python代码测试
前言 利用SVD是可以对图像进行压缩的,其核心原因在于,图像的像素之间具有高度的相关性。代码# -*- coding: utf-8 -*-'''author@cclplusdate:2019/11/3'''import cv2from PIL import Imageimport matplotlib as mplimport numpy as npimport matp...
2020-07-26 15:17:15 2327
原创 双向循环链表(模板实现)
前言&emsp 此前有读者问我,C++的STL中为什么没有循环链表?我想大概率是因为循环链表的应用很少,另外如果使用者对循环链表的理解不足的话还很容易让程序陷入死循环。不过这些都不重要,接下来,笔者将带你实现一个类似STL中的循环链表。...
2020-07-26 14:37:10 216
原创 汇编课设(电子钢琴:源代码)
实现结果程序的启动有点像小霸王游戏机的游戏,喜欢汇编的朋友可以发信与我一起讨论,发声程序参考的是一本汇编教材,程序写作和上传相隔有点久远,记不太清,千行代码,算是学生时代一个比较得意的课设编译器下载编译器可在我的上传资源中查找,已注明:汇编编译器https://download.csdn.net/download/m0_37772174/10837741注意事项输入严格区分大小写,启...
2020-07-18 11:06:20 4486 14
原创 OpenCV读取1GB以上大图失败解决措施
问题 有医学图像处理的读者问我说,他的OpenCV无法读取他所需要的大图,他的图像以位图形式存储时大小约为1.5GB,使用imread读取时图像为空。原因分析 处于对内存的保护,OpenCV的开发者对imread图像的大小做了限制,这个大小是2的30次方,恰好为1个G,这个同学想通过imread函数读取1.5G的图像,在不修改源码的情况下是不现实的。解决策略 只需要简单的修改OpenCV的源码就足以解决这个问题。 1.打开源码中的imgcodecs模块,找到loadsave.cpp
2020-07-09 23:18:05 3217 4
原创 矩阵运算(一)最小二乘法
最小二乘法前言CPP开发者封装最小二乘法参考文献作者说前言 最小二乘法在函数拟合的过程中广为应用,不少读者使用笔者早期写的矩阵运算库,以求逆的方式得到拟合系数,这种算法虽然简单,但并不健壮;而使用QR分解(induced QR)得到的最小二乘法的结果,不论是在数据精度上的保证,还是算法时间复杂度上都得到了质的飞跃。CPP开发者封装最小二乘法 使用CPP封装最小二乘法的时候,笔者建议使用Eigen库//张九韶算法inline double polyeval(Eigen::VectorXd co
2020-05-10 22:37:22 5812
原创 OpenCV图像轮廓提取
使用了相关算法进行图片轮廓的提取###############图像中的轮廓提取#时间:2019/1/3#作者:cclplus#仅供学习交流使用#如若照片本人认为侵犯了肖像权,请联系我的邮箱707101557@qq.com#如有疑问或者需求,可以联系作者的邮箱#如果你有什么好的建议或者指导,我将不胜感激import cv2import numpy as npfrom ma...
2020-04-09 20:18:08 33519 2
原创 广度优先搜索算法(附C++实现)
在上一篇文章中,笔者介绍了DFS,这篇文章介绍的是图论的另一个经典算法--BFS(广度优先搜索算法)。这一篇文章将对BFS作出介绍。队列的push操作将元素添加到队列的末尾,但pop操作将队列的第一个元素弹出,这与堆栈有差异。我们构造这样一个图(如图1),并通过C++实现BFS,本文处理的图比二叉树要更复杂,如果时针对二叉树的BFS,程序会更为简单算法过程:1.将根节点放入队列...
2020-04-07 20:00:55 24676 1
原创 OpenCV实现图像滤波
图像滤波算法前言代码高斯滤波算法NLmeans滤波算法(Python)各项异性滤波算法邻域滤波算法总变分滤波算法Python学习前言 本文将是一篇为图像处理的初学者准备的滤波算法的入门文章。代码高斯滤波算法#include <cmath>#include <limits>#include <cstdlib>#include <iostre...
2020-04-05 11:34:22 1172
原创 用数学的方法分析情感——写给读完即将脱单的你
用数学的方法寻找脱单攻略情感模型的建立常用名词解析参考文献情感模型的建立 ;情感是人对客观事物是否满足自己的需要而产生的态度体验。常用名词解析 &amp;amp;emsp参考文献[1]:[《心理学大辞典》黄希庭主编 ]...
2020-01-22 19:10:05 489
原创 卡尔曼预测股票(Tensorflow)
Tensorflow实现卡尔曼滤波前言前言 前几篇文章里的矩阵运算都是基于numpy实现的,这里也展示的是使用python进行矩阵运算时常用的一个库——Tensorflow。Tensorflow算是目前最火的一个三方库,在此之前雄踞榜首的三方库一直是JS。 本文将使用Tensorflow实现一个Kalman预测模型,用于预测股票的变化。内核仍然采用Tensorflow实现,留给用户的接...
2019-12-01 13:19:01 3706 3
原创 Python终将成为最火爆的编程语言,因为它是属于大众的
很多培训机构宣称py是人工智能必备的编程语言,打着速成的旗号来引诱学者学习python。事实却并不是这样的,万丈高台平地起,不论你想从事怎样的编程工作,都是从最基本的编程技巧开始的;Python并不适合所有人,如果你是一个编程类专业的学生,适度了解python是有必要的(python的第三方库的爆发造就了不少C/C++程序员的就业),但如果你作为一个非编程类专业但又需要了解编程的人...
2019-11-13 08:30:16 66108 55
原创 RC4无损加密和解密图片
前言 RC4加密算法的特点在于其简单易用且十分高校,一个简单的异或运算就能够对文本进行加密。而且RC4的加密算法是对称的,即原图经过一次RC4操作即得到加密图片,加密图片经过一次RC4操作,即得到解密图片。代码# -*- coding: utf-8 -*-'''date:2019/11/2功能:主要用于RC4的加密和解密算法介绍:RC4是经典的对称加密算法即RC4(原文+密钥)=...
2019-11-12 21:10:29 1475
原创 格雷码
Python数据结构格雷码前言格雷码二进制格雷码转自然二进制码作者说前言 格雷码是由贝尔实验室的Frank Gray与1940年提出,用于在PCM(脉冲编码调变)方法传送讯号,防止讯号出错。其特点是任何两个相邻数的代码只有一位二进制数不同的编码。时至今日,格雷码有了更广泛的作用,比如在遗传算法中,使用自然二进制码来表示基因会造成汉明悬崖问题;而采用格雷码则能够很好的避免这个问题的出现。格雷...
2019-10-30 22:38:39 1122
原创 共轭梯度法(FR法)
优化算法的学习是有一定难度的(也许有人不这么想,但即使你是天赋异禀的天之骄子,敬畏知识也是一种美德)。笔者本着敬畏知识的态度,从基本理论出发,逐步引入优化算法的殿堂。 关于共轭梯度法理论的介绍,可以通过参考文献【1】了解 这里我通过一个例子来介绍共轭梯度法 (1) (2)...
2019-10-27 15:31:45 6056
原创 Win10+Anaconda+Python
Python指南安装python建议去官网下载pythonhttps://www.python.org/downloads注意:64位机最好选择x64,32位机一定选择x86设置pip环境变量python的pip.exe,pip3.exe文件,在Script中因此在环境变量的PATH里新建C:\Python37\Scripts环境变量的设置,我的电脑-&amp;amp;amp;gt;属性-&amp;amp;amp;gt;高级系...
2019-10-26 10:55:25 2793 8
原创 Python数据结构最小生成树
前言 最近收到电力类专业同学的求助,希望能用一个算法使得从变电站至所有负载的总路线最短。当然,如果要添加特殊要求,你可以练习我的邮箱707101557@qq.com。其实应用最小生成树能够很好的解决这类问题。即给定一幅加权无向图,找到它的一颗最小生成树。此类算法主要应用是电路元器件的设计,航空航线规划,电站电力分配,图像分析等领域。最小生成树 图的生成树是它的一棵含有其所有顶点的无环连通...
2019-10-26 10:24:59 2876
原创 遗传算法拟合函数(原理及Python实现)
遗传算法问题描述 利用遗传算法求解如下最优化问题 min F=∑i=13Wig(Qi)min \ \ F = \sum_{i=1}^{3}W_{i}g(Q_{i})min F=∑i=13Wig(Qi) 其中 g(x)=−0.1544×x2+1.181×x+0.6028g(x)=-0.1544\times x^{2}+1.181\tim...
2019-10-11 19:15:54 3528
原创 切比雪夫求积分法(附全过程代码)
前言 这是一篇数值计算算法的开胃菜,主要介绍切比雪夫求积分法的使用;如果你遇到编程和数学的问题,强烈建议找到你身边的算法工程师或者计算机、电子、通信、数学专业的朋友,往往能够事半功倍。求解Gamma函数Gamma函数对特殊值 以下资料来自于维基百科 切比雪夫多项式展开通过求解方程组的方式解出c[i]的值,即可通过c[I]求解出Gamma函数的值···*#写于2019年3月...
2019-05-08 22:26:47 5599
原创 多项式求值(附C++实现)
目录前言一维多项式求值前言 本文主要介绍了一维多项式的求值和二维多项式求值,从算法工程师的视角出发设计更高效的代码。读者可以通过C++代码或者Python代码进一步了解这个算法。一维多项式求值 计算多项式 显然即使是一个萌新程序员也能实现这个功能,但这不等于他的代码足够高效,按照这一公式编写代码,算法的时间复杂度是而比较高明的写法是算法的时间复杂度是//作者:ccl...
2019-03-19 23:06:52 8376
原创 Python与C进行混合编程
目录写在前面在vs中建立一个工程设置调整step1 选择输出目录step2 改变目标文件拓展名step3 添加附加目录step4 添加附加库目录step5添加附加依赖项知识储备条件编译简单例程程序测试信息征集写在前面 阅读这篇文章需要一定的C/C++和Python基础,阅读完这篇文章,你将能够开发简单的Python的库。 笔者所使用的C++编译器是vs2017,所使用的Python版本是...
2019-03-09 20:27:33 3608
原创 干涉衍射仿真实验(python仿真)
###############利用python仿真双缝实验#时间:2018/12/31#作者:cclplus#仅供学习交流使用#如有疑问或者需求,可以联系作者707101557@qq.comimport numpy as npimport matplotlib.pyplot as pltimport math#表示长度的物理量单位m#波长wavelength=float(...
2019-01-01 12:28:56 11416
原创 解色散方程(附C++和matlab代码)
解色散方程Solution of the dispersion equation set then known so Constant establishment So we can use the dichotomyand To avoid losing accuracy,I made some necessary changesset C++实现(C...
2018-11-10 20:34:14 6787 1
原创 C++实现矩阵类(附代码和功能)
本文由两部分组成,第一部分介绍一个在win10系统上运行的exe程序,第二部分介绍通过C++实现矩阵运算的方法(功能会更强大,但不如exe文件操作方便)。 用户界面如下,能够实现矩阵的加、减、乘、除运算,以及矩阵的转置,求逆,求行列式的值等。 读者可以在下载该程序,直接在自己的电脑上运行。下载地址:https://download.csdn.net/do...
2018-10-11 21:14:03 67427 26
原创 C/C++和matlab混合编程
有些时候使用混合编程能够让程序更加高效笔者所使用的matlab软件为2018a,C++编译器为Microsoft Visual C++ 2017(matlab本身是不带C/C++编译器的,安装编译软件是必须的)仍然是先从简单的hello world 开始首先编写一个C++程序(当然也可以C程序)#include <iostream>#include<mex....
2018-08-29 00:22:45 8873 1
原创 利用Box-Muller变换生成正态分布的随机数(附代码)
前言 之前的文章中笔者有提到利用独立同分布的中心极限定理生成正态分布的随机数,对随机数的分布特性要求越高,利用独立同分布的中心极限定理生成正态分布的随机数的算法时间复杂度也越高,如果需要大量的正态分布随机数“利用独立同分布的中心极限定理生成正态分布的随机数”的做法是不可取的。本文将为大家带来时间复杂度较低的算法——利用Box-Muller变换生成正态分布的随机数。If...
2018-08-02 18:22:22 18259 1
原创 求解一元二次方程的高精度根(附C/C++代码)
通过编程解决问题时,通常有“一力降十会”的说法,使用一个强有力的算法所带来的效果可能比使用十次巧妙的编程技巧更有效对方程进行求解,有求根公式可得这样做真的合理么?当b的平方远远大于4ac时将造成数据精度的丢失(当-b+root(或者-b-root)很小的时,将对求根结果的精度造成损失,或者说减法是易失精度的),多次采用这样的方式计算结果将使精度的损失增大其实,用以下这组...
2018-07-26 21:17:04 8308 1
原创 深度优先搜索算法(附C++实现)
深度优先搜索算法(以下简称DFS)是一种用于遍历(或搜索)树(或图)的算法。我们构造这样一个图(如图1),并通过C++实现DFS 图1(图片来源于codeforces.com)算法过程1.从根节点开始2.放入一个节点(起始时放入的为根节点)3.如果这个节点是第一次出现,则放入堆栈中4.判断该节点的子节点是否搜索完成,...
2018-07-23 20:24:07 29211 3
opencv_install.rar
2020-02-25
Release.rar
2019-11-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人