左手の明天
用知识改变命运
Python领域优质创作者,CSDN博客专家,蓝桥课程签约作家,简书、掘金、知乎优秀创作者。主要趋向于python,matlab及其相关算法的研究,熟悉图像处理及分析,机器视觉,数据安全,数据可视化。参加了全国大学生机器人大赛Robocon赛事并获得国家一等奖,全国大学生数学建模挑战赛国家三等奖。
这么多程序猿,你是最独特的一个!!!
努力成为python工程师(≧∇≦)
wx公众号:做一个柔情的程序猿
展开
-
数学建模初始-建立数学模型
全文共6070个字,码字总结不易,老铁们来个三连:点赞、关注、评论作者:左手の明天原创不易,转载请联系作者并注明出处版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。数学模型与数学建模数学模型(Mathematical Model)通过抽象和简化,使用数学语言对实际对象的刻画,以便于人们更深刻地了解所研究的对象,从而更有效地解决实际问题。模型的特点模型的逼真性和可行性模型的渐进性模型的强健性模型的可转移性模型的非预制性原创 2022-03-03 19:46:12 · 933 阅读 · 0 评论 -
基于matlab和python的LSB隐写实现
将字符串嵌入图片可以顺序选取像素点,也可以随机选取像素点。下面我们依次来实现每种算法。LSB隐写实现1. 顺序嵌入1.1 python版本1.2 matlab 版本2. 随机LSB隐写资源传送门「❤️ 感谢大家」1. 顺序嵌入顺序嵌入很简单,遍历每个像素点,然后将二进制嵌入最后一位即第八位即可。画了一个流程图,这里贴上来方便理解:1.1 python版本首先我用python实现了一个,利用python3的PIL库写起来还是很简单的。直接看代码吧# coding:utf-8# python原创 2021-04-06 10:09:31 · 715 阅读 · 0 评论 -
通俗易懂之最小二乘法(附matlab和python例子实现)
最小二乘法也称最小平方法,是一种数学优化技术,通过最小化误差的平方和来寻找数据的最佳函数匹配。最小二乘法线性函数模型最小二乘法原理实例分析python实现matlab实现例子资源传送门「❤️ 感谢大家」线性函数模型典型的一类函数模型是线性函数模型。最简单的线性式是y=b0b_{0}b0x+b1b_{1}b1写成矩阵形式为:直接给出该式的参数解:其中:为x的算术平均值,也可解得如下形式:参考:https://blog.csdn.net/zengxiantao1994/articl原创 2021-03-29 16:34:09 · 1307 阅读 · 1 评论 -
matlab创建网络函数使用:linspace,logspace,freqspace,meshgrid,ndgrid
linspace:生成线性间距向量语法y = linspace(x1,x2)y = linspace(x1,x2,n)参数说明:x1,x2为点区间,指定为数值标量对组。x1 和 x2 定义 linspace 生成点的区间。x1 和 x2 可以是实数或复数,x2 可以大于或小于 x1。如果 x2 比 x1 小,则向量包含递减的值。n为点的数目,指定为实数标量。如果 n 为 1,则 linspace 返回 x2。如果 n 为零或负数,则 linspace 返回 1×0 空矩阵。如果 n原创 2021-03-19 11:26:51 · 1104 阅读 · 1 评论 -
一文带你解析算法复杂度分析
1. 何为数据结构?何为算法?简单来说,数据结构就是数据的存储方式,比如数组就是把数据存在一段连续的内存上,而链表则是通过指针的关联将数据存在任意可用的内存上;栈是先进后出,队列是先进先出。而算法则是对这些数据的操作方法,比如数据的插入、查找、删除、排序等。二者相辅相成,互为一体,数据结构为算法服务,而算法要在指定数据结构上进行操作。2. 复杂度分析?学习数据结构和算法的目的是为了在实际应用的时候更加优化地利用内存,提高程序运行效率,而复杂度分析则是给我们提供一个衡量代码质量好原创 2021-03-03 22:10:39 · 277 阅读 · 2 评论 -
【算法分析】——优化visit数组的重置操作
有时候,需要以数据中的每一项为起点进行dfs或者bfs,比如寻找二分图的最大匹配问题,此时一般要借助visit数组来标记某一项是否被访问过了,避免死循环。在数据量较大的情况下,visit数组开得也比较大,多次memset整个visit数组要花很长时间。二分图二分图:简单来说,如果图中点可以被分为两组,并且使得所有边都跨越组的边界,则这就是一个二分图。准确地说:把一个图的顶点划分为两个不相交集 U 和V ,使得每一条边都分别连接U、V中的顶点。如果存在这样的划分,则此图为一个二分图。二分图的一个等价定义是原创 2020-12-13 21:35:14 · 345 阅读 · 1 评论 -
【算法分析】——区间dp
所谓区间dp,指在一段区间上进行动态规划,一般做法是由长度较小的区间往长度较大的区间进行递推,最终得到整个区间的答案,而边界就是长度为1以及2的区间。转移方程区间dp常见的转移方程如下:dp(i,j) = min{dp(i,k-1) + dp(k,j)} + w(i,j) (i < k <= j)其中dp(i,j)表示在区间[i,j]上的最优值,w(i,j)表示在转移时需要额外付出的代价,min也可以是max。四边形不等式按上述转移方程递推的时间复杂度为O(n3),如果w函数满原创 2020-11-25 09:46:01 · 265 阅读 · 0 评论 -
【算法分析】——背包模板题
01 背包题面: 有n种物品和一个容量为v的背包,每种物品只有1件,第i种物品的花费为c[i],价值为w[i],求背包所能容纳的最大价值。#include <bits/stdc++.h>using namespace std;int n, v, c[505], w[505], f[100005];void zpack(int ci, int wi) { for (int j = v; j >= ci; j--) f[j] = max(f[j], f[j-c原创 2020-11-20 16:43:00 · 345 阅读 · 0 评论 -
【算法分析】——floyd判圈
算法简介floyd判圈算法也称为快慢指针算法,可在有限状态机、迭代函数或者链表上判断是否存在环,如存在,还能求出环的长度以及环的起点。算法原理该算法的过程很简单,给定起始点S(不需要在环内),在S处设置两个指针A和B,每次A前进一步,同时B前进两步,如果没有环,B永远在A的前面;否则必存在某一时刻,B与A再次相遇。判环是否存在按上述步骤模拟,如果A与B未相遇且B已走到头,则不存在环。反之,若A与B再次相遇,则存在环。环的长度假设环存在,A与B再次相遇的点记为M,让A继续前进,再次回到M所经过原创 2020-11-09 20:04:11 · 342 阅读 · 0 评论 -
【算法分析】——循环数组的最小表示
问题描述假设有数组a[n],可通过旋转得到n种表示,求字典序最小的表示。最小表示的典型应用是判断同构问题,例如判断两个字符串是否为变形词,只需将各个串转成最小表示,再判断最小表示是否相同即可。具体实现直观做法是枚举所有表示,取字典序最小的,但时间复杂度较高,这里介绍个线性做法。以字符串为例,下面代码求的是变形词的最小表示,循环数组的求法完全一样。#include <bits/stdc++.h>using namespace std;int MinExp(string s, int原创 2020-11-01 20:56:42 · 392 阅读 · 0 评论 -
【算法分析】——最大子段和问题
算法设计专栏开启:传输门欢迎各位star,当然还是将就习俗:先点赞在看,养成习惯~~~最大子段和问题最大子段和循环数组最大子段和最小正子段和最大子矩阵和资源传送门「❤️ 感谢大家」最大子段和题面: 给定整数数组a[n],求它的连续子段和的最大值,当所有整数均为负数为时和为0。分析: 设dp[i]表示以数字a[i]结尾的子段的和的最大值,那么dp[i] = max(a[i], a[i]+dp[i-1])。#include <bits/stdc++.h>using namespac原创 2020-10-26 20:39:07 · 461 阅读 · 0 评论 -
【算法分析】——快速幂算法
设a,b,c都是正整数,计算a的b次方对c取模(a ^ b % c)在非对称密钥算法RSA中是一个很基本的问题,由于a,b,c可能会比较大,直接计算显然无法满足效率要求,可以借鉴快速幂的思想减少计算次数。做法是根据b的奇偶性,分情况讨论:如果b为偶数,不妨设b = 2k,那么a ^ b % c = a ^ 2k % c = (a ^ k % c) * (a ^ k % c) % c = (a ^ k % c) ^ 2 % c如果b为奇数, 不妨设b = 2k + 1,那么a ^ b原创 2020-10-25 09:36:50 · 1160 阅读 · 2 评论 -
【算法分析】——典型的树形问题
绳子与重物题面有编号为0~n-1的n条绳子,每条绳子下栓了一个重量为w[i]的重物,绳子的最大负重为c[i],每条绳子可挂在别的绳子下,也可直接挂在钩子上(编号为-1),如果绳子下所有重物的重量之和大于绳子的最大负重就会断掉,依次给出每条绳子的负重、重物重量以及挂载编号,问最多可以挂多少条绳子且不会出现绳子断掉的情况。分析二分答案,对于给定的绳子数,dfs遍历整棵树,求出各个节点的负重,检查是否会断,时间复杂度为O(n),总时间复杂度为O(nlogn)。#include <bits/stdc原创 2020-10-24 16:10:27 · 340 阅读 · 0 评论 -
【算法分析】——树与图的直径
在一棵树中,将任意两个节点之间最短距离的最大值定义为该树的直径。类似地,在一个无向图中,将任意两点间最短距离的最大值定义为图的直径。树与图的直径树的直径无向图的直径资源传送门「❤️ 感谢大家」树的直径求树的直径一般用两次bfs解决,当然也可以用两次dfs,这里以bfs为例进行说明。先在树上任选一点A作为起点进行bfs,记录最后被访问的点B,那么B离A的距离最远,再以B为起点进行第二次bfs,即可得到直径。#include <bits/stdc++.h>using namespace s原创 2020-10-24 08:27:17 · 3092 阅读 · 15 评论 -
【算法分析】——三分搜索
二分搜索一般用于寻找正好满足某种条件的临界值,要求搜索区间满足单调性,而三分搜索一般是在凸函数或者凹函数上寻找极值。三分搜索原理实例B君的圆锥奶牛的聚会在整数内搜索资源传送门「❤️ 感谢大家」原理假设函数图像在区间[lo,hi]是开口向上的曲线,那么区间内必有极大值,取三分点m1和m2,若f(m1)>f(m2),那么极大值位于[lo,m2]内,排除区间[m2,hi];反之极大值区于[m1,hi]内,可排除[lo,m1],时间复杂度为O(logn)。实例B君的圆锥题面:已知圆锥的表面积为S,原创 2020-10-23 19:50:28 · 801 阅读 · 0 评论 -
用python实现前向分词最大匹配算法
前向分词最大匹配算法理论介绍前向最大匹配算法具体代码实现分词结果理论介绍分词是自然语言处理的一个基本工作,中文分词和英文不同,字词之间没有空格。中文分词是文本挖掘的基础,对于输入的一段中文,成功的进行中文分词,可以达到电脑自动识别语句含义的效果。中文分词技术属于自然语言处理技术范畴,对于一句话,人可以通过自己的知识来明白哪些是词,哪些不是词,但如何让计算机也能理解?其处理过程就是分词算法。可以将中文分词方法简单归纳为:基于词表的分词方法基于统计的分词方法基于序列标记的分词方法其中,基于词表原创 2020-08-05 21:32:25 · 850 阅读 · 0 评论 -
数据分析模型(二):模糊聚类分析方法及实例(附完整代码)
聚类分析是数据挖掘技术中的一种重要的方法,可以作为一个独立的工具来获得数据分布情况,它广泛地应用于模式识别、数据分析、图像处理、生物学、经济学等许多领域。聚类分析方法是数理统计中研究“物以类聚”的一种多元分析方法,及用数学定量地确定样品的亲疏关系,从而客观地分型化类。由于事物本身在很多情况下都带有模糊性,因此把模糊数学方法引入聚类分析,能使分类更切合实际。我们所应用的模糊聚类方法是基于模糊相似关...原创 2020-05-03 10:50:51 · 10592 阅读 · 4 评论 -
数学分析模型(一):数据的无量纲处理方法及示例(附完整代码)
数据的无量纲处理方法及示例(附完整代码)(1)极值化方法(2)标准化方法(3)均值化方法示例要求建模步骤程序备注在对实际问题建模过程中,特别是在建立指标评价体系时,常常会面临不同类型的数据处理及融合。而各个指标之间由于计量单位和数量级的不尽相同,从而使得各指标间不具有可比性。在数据分析之前,通常需要先将数据标准化,利用标准化后的数据进行分析。数据标准化处理主要包括同趋化处理和无量纲化处理两个方面...原创 2020-05-01 11:49:19 · 11431 阅读 · 0 评论 -
数学评价模型(二):模糊综合评判
模糊综合评判1. 一级模糊综合评判模型Ⅰ: 模型Ⅱ:模型Ⅲ:模型Ⅳ:【典例】Matlab代码实现2. 多级模糊综合评判【典例】Matlab代码实现综合评判就是对受多个因素制约的事物或对象作出一个总的评价,这是在日常生活和科研工作中经常遇到的问题,例如对学生的评价应该考虑到各门功课的成绩,但绝不能忽略品行和健康。在歌手大赛中,也不能只考虑艺术水平而...原创 2020-04-10 16:33:49 · 1694 阅读 · 1 评论 -
基于混沌Logistic加密算法的图片加密与还原
基于混沌Logistic加密算法的图片加密与还原摘要混沌Logistic映射的理论混沌的基本概念Logistic映射方程混沌Logistic映射与其他加密算法介绍普通行列置乱加密算法普通置乱加密算法的流程算法分析算法分析混沌Logistic映射加密算法混沌Logistic映射加密算法模型算法分析验证与性能分析Matlab GUI操作界面普通行列置乱加密实现像素点的RGB值的缩放加密实现混沌Logi...原创 2020-03-22 13:17:28 · 6601 阅读 · 6 评论 -
数学评价模型(一):层次分析法
层次分析法(Analytic Hierarchy Process,简称 AHP)是对一些较为复杂、较为模糊的问题作出决策的简易方法,它特别适用于那些难于完全定量分析的问题。它是美国运筹学家 T. L. Saaty 教授于上世纪 70 年代初期提出的一种简便、灵活而又实用的多准则决策方法。§1 层次分析法的基本原理与步骤人们在进行社会的、经济的以及科学管理领域问题的系统分析中,面临的常常是一...原创 2020-04-05 19:09:11 · 1927 阅读 · 0 评论 -
数学规划模型(五):多目标规划模型
多目标规划模型多目标规划模型的基本知识多目标规划模型的绝对最优解多目标规划模型的有效解多目标规划模型的弱有效解多目标规划模型的常用解法介绍1. 主要目标法2. 分层序列法3.线性加权求和法多目标规划建模示例1. 模型假设2. 模型建立3. 模型求解多目标规划模型的基本知识前面介绍的线性规划模型、整数规划模型、非线性规划模型中的目标函数都只有一个(可以进我的博客查看详细)。而在许多实际问题中...原创 2020-04-01 14:44:49 · 16864 阅读 · 0 评论 -
数学规划模型(四):非线性规划模型
接上三篇文章:数学规划模型(一):数学规划模型的基本知识数学规划模型(二):线性规划模型数学规划模型(三):整数规划模型非线性规划模型的基本知识在数学规划模型中,如果目标函数或约束条件、中包含非线性函数,就称这种规划模型为非线性规划模型。为非线性规划模型的可行域。非线性规划模型的全局最优解非线性规划模型的局部最优解一般说来,求解非线性规划模型要比求解线性规划模型困难得多...原创 2020-03-30 15:49:12 · 12545 阅读 · 3 评论 -
数学规划模型(三):整数规划模型
整数规划模型整数规划模型的基本知识指派问题整数规划建模示例整数规划模型的基本知识线性规划模型的决策变量取值可以是任意非负实数,但许多实际问题的建模中,只有当决策变量的取值为整数时才有意义。例如,产品的件数、机器的台数、装货的车数、完成工作的人数等,分数或小数解显然是不合理的。要求全部或部分决策变量的取值为整数的线性规划模型,称为整数规划模型。全部决策变量的取值都为整数的整数规划模型,称为纯整...原创 2020-03-29 15:50:44 · 5513 阅读 · 0 评论 -
数学规划模型(二):线性规划模型
线性规划模型线性规划模型的一般形式线性规划建模示例线性规划模型的一般形式线性规划模型所解决的问题具有以下共同特征:(1)每个问题都可用一组决策变量 表示某一方案,决策变量的一组定值就代表一个具体方案。通常决策变量取值是非负的。(2)存在一定的限制条件(即约束条件),这些约束条件可用关于决策变量的一组线性等式或线性不等式来表示。(3)有一个目标要求(即目标函数),目标函数可表示为关于决策变...原创 2020-03-28 15:53:38 · 5991 阅读 · 0 评论 -
带你彻底理解朴素贝叶斯算法与实现
超级详细对朴素贝叶斯算法进行讲解,能让你对朴素贝叶斯算法的认识有质的飞跃。。。。朴素贝叶斯算法与实现1. 朴素贝叶斯是什么1.1 先验概率1.2 条件概率1.3 全概率公式1.4 后验概率2. 朴素贝叶斯的推导3. 参数估计3.1 极大似然估计3.2 贝叶斯估计4. 朴素贝叶斯算法过程5. 朴素贝叶斯分类流程图6. 朴素贝叶斯算法分析1. 朴素贝叶斯是什么依据《统计学方法》上介绍:朴素...转载 2020-03-27 14:27:18 · 776 阅读 · 0 评论 -
数学规划模型(一):数学规划模型的基本知识
接下来分享的内容是之前自己做数学建模过程的中用到的东西以及自己学习的东西,比较烧脑,请准备好保护头发。。。。哈哈》》》》》》》》数学规划模型一、数学规划模型的基本知识1、数学规划模型的一般形式2、数学规划模型的可行解与最优解3、数学规划模型的基本类型一、数学规划模型的基本知识1、数学规划模型的一般形式简单的优化模型往往是一元或者多元,无约束或者等式约束的最值问题。而在工程技术、经济金融管理...原创 2020-03-27 12:32:03 · 8343 阅读 · 0 评论 -
最短路径的算法:Floyd算法
Floyd算法又称为弗洛伊德算法,插点法,是一种用于寻找给定的加权图中顶点间最短路径的算法。核心思路通过一个图的权值矩阵求出它的每两点间的最短路径矩阵。从图的带权邻接矩阵A=[a(i,j)] n×n开始,递归地进行n次更新,即由矩阵D(0)=A,按一个公式,构造出矩阵D(1);又用同样地公式由D(1)构造出D(2);……;最后又用同样的公式由D(n-1)构造出矩阵D(n)。矩阵D(n)的i行...原创 2020-03-25 12:01:02 · 589 阅读 · 0 评论