双目视觉目标追踪及三维坐标获取—python(代码)

2022年九月更新: 在原来的基础上,我使用了yolov5代替了opencv的目标检测算法辅助相机进行三维坐标的获取,并成功用获取的坐标实时控制机械臂,感兴趣的话可以看我b站里的视频,视频下方也有开源的链接:【软核】我给自己开发了一条机械臂 双目视觉 目标检测_哔哩哔哩_bilibili 以下为原答案: 对着csdn和b站研究了几天双目视觉,算是能粗略的实现一些功能了。在这里记录一下思路,顺便记录一下遇到的坑。 先看一下最终成果吧,实现对物体的追踪和显示三维像素坐标: 再说一下具体的步骤 一、相机标定 使用双目相机的前提都是先获取相机的内参和外参,有些贵一点的相机出厂时会把这些参数一起给你,比较普通的相机就需要我们自己标定了。我是通过matlab标定的,具体步骤可以看这篇博客:Matlab双目相机标定_indigo love的博客-CSDN博客_matlab双目相机标定 里面讲的都很详细了,给的代码都可以直接运行,但是要注意一个细节。在matlab标定的界面,这个选项默认是给2个参数的,我们要手动勾选到三个参数,不然最后输出的相机参数就会不太一样 这里我们先把标定的结果放到一个叫stereoconfig.py的文件里,方便后面使用 import numpy as np class stereoCamera(object): def __init__(self): # 左相机内参 self.cam_matrix_left = np.array([[684.8165, 0, 637.2704], [0, 685.4432, 320.5347], [0, 0, 1]]) # 右相机内参 self.cam_matrix_right = np.array([[778.2081, 0, 602.9231], [0, 781.9883, 319.6632], [0, 0, 1]]) # 左右相机畸变系数:[k1, k2, p1, p2, k3] self.distortion_l = np.array([[0.1342, -0.3101, 0, 0, 0.1673]]) self.distortion_r = np.array([[0.4604, -2.3963, 0, 0, 5.2266]]) # 旋转矩阵 self.

DES加密解密算法(简单、易懂、超级详细)

目录 一、基础补充 二、什么是DES算法 (1)对称加密算法 (2)非对称加密算法 (3)对称加密算法的应用 三、DES算法的基础操作步骤 1.明文的加密整体过程 2.F轮函数解析 3.密钥的形成过程 四、AC代码 五、DES算法的测试 六、共勉 一、基础补充 在实现DES算法时,需要掌握对二进制数的了解,例如:源码、反码、补码,位操作等,如果有不懂的朋友可以先去看看我对二进制数的理解,再来看DES算法,会更加容易。 源码、反码、补码:http://t.csdn.cn/Osuf2 位操作,例如:按位与、按位或、按位异或、按位左移、按位右移等:http://t.csdn.cn/YQ60C 我的参考视频: DES加密算法|密码学|信息安全_哔哩哔哩_bilibili 二、什么是DES算法 (1)对称加密算法 1. 通信的双方同时掌握一个密钥,加密解密都是由一个密钥完成的(加密密钥等于解密密钥)。 2. 双方通信前共同拟定一个密钥,不对第三方公开。 3. 不具有个体原子性,一个密钥被共享,泄露几率会大大增加。 (2)非对称加密算法 1.在非对称加密中,不再只有一个密钥Key了。在非对称加密算法中,密钥被分解为一对,一个称为公开密钥,另一个称为私有密钥。对于公钥,可以通过非保密方式向他人公开,而私钥则由解密方保密,不对别人公开。 (3)对称加密算法的应用 1. DES算法是对称加密算法的代表,虽然现在已经很好实现,但是对于研究其改进的方法,有很重大的影响。 2. 在DES算法中由于大部分原始数据较长,首先需要将数据切成64位的明文分组,所以DES算法也叫做分组加密算法。 3. 在DES算法中使用的密钥位64位,其中有效的密钥长度其实只有56位(分成8块每块长为8位,每隔8位设置左后一位为校验位,采用就奇偶校验法)。 4. 在DES算法中加密的明文较长,需要对DES加密进行16轮的函数循环迭代。 三、DES算法的基础操作步骤 由于DES算法过于复杂,我将它分为3大步: (1)明文的加密的整体过程 (2)F轮函数解析 (3)密钥的形成过程 1.明文的加密整体过程 (1) 输入64bit的明文进行IP置换,分成左右两个分支各为32bit, 左边:32bitL0,右边:32bitR0 (2) 右分支:L1 = R0 左分支:引入48bit 的密钥,R1=L0 异或 f(R0,K1) (3) 相同的操作进行16次的运算循环,算出相应的,R1~R16,L0~L16 (4)最后在进行IP的逆序置换,将左右两个分支再次合并为64bit密文 (5)将上述的说法,汇聚成流程图,方便大家理解 (6)整体的操作代码: string wen(string wenBinary[], int num) { int i, j; string ipWenBinary[100]; //保存明文 string left[17], right[17], temp, result; //分为左右两个分支 for (i = 0; i < num; i++) { temp = "

GPU版本安装Pytorch教程最新方法

目录 步骤 第一步:安装 Anaconda 和 Pycharm 软件 第二步:下载安装CUDA11.3 (1)首先查看自己电脑GPU版本 方式一:搜索框输入nvidia,打开nvidia控制面板 方式二:win+R打开cmd,输入nvidia-smi (2)根据这个链接查看自己对应的cuda版本 (3)安装 第三步:下载GPU版本下的pytorch和pytorchvision 第四步:验证以上步骤全部安装成功 步骤 如果要使用GPU进行机器学习的训练,那么首先需要支持训练的显卡及驱动即正确安装CUDA、CUDNN,最重要的一点是需要与驱动对应的torch GPU版本,否则大概率使用torch.cuda.is_available()命令检查GPU是否可用时得到False。 检查显卡-显卡驱动CUDA适配版本-下载Anaconda-下载CUDA-检查CUDA是否安装好-下载CuDNN-下载GPU版本的pytorch-pycharm中调试环境-大功告成 第一步:安装 Anaconda 和 Pycharm 软件 如果已经安装好,这一步可忽略。 Anaconda下载可以直接在网上搜教程,很全,都可以用。 下载地址:Anaconda | Individual Edition 推荐使用清华的镜像 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ (1)可以直接从 Anaconda官网 下载,但因为Anaconda的服务器在国外,所以下载速度会很慢,这里 推荐使用清华的镜像 来下载。选择合适你的版本下载,这里选择 Anaconda2022.05-Windowsx86_ 64.exe 版本。 (2) 第二步:下载安装CUDA11.3 cuda: Compute Unified Device Architecture,是一种有NVIDIA推出的通用并行计算架构, 该架构使GPU能够解决复杂的计算问题。cudnn: 是NVIDIA 推出的用于深度神经网络的GPU加速库,他强调性能,易用性和低内存开销。cuda和cudnn的关系: cudnn是基于cuda架构开发的专门用于深度神经网络的GPU加速库。cuda可以理解为一个大的商圈,但这个商圈是空的,还未装修。cudnn可以理解为装修后的房间,例如负一楼专门针对游乐(深度神经网络)装修成大型游乐厂。 详细了解可参考大神的文章 https://blog.csdn.net/u014380165/article/details/77340765 查看对应版本的CUDA,这部非常关键!!!请一定要重视,避免之后多次重装。 (1)首先查看自己电脑GPU版本 方式一:搜索框输入nvidia,打开nvidia控制面板 方式二:win+R打开cmd,输入nvidia-smi nvidia-smi 可直接查看自己可安装的最高版本的 CUDA版本,我的电脑是 CUDA11.6。 (2)根据这个链接查看自己对应的cuda版本 https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html CUDA下载链接:https://developer.nvidia.com/cuda-toolkit-archive 接下来,我们来下载这个CUDA,这里选择的版本不能高于你的显卡驱动里面那个版本号,由于我的是11.6,且系统是win11,所以我这里选择的是11.5 双击运行下载好的CUDA的exe文件,安装时不需要更改路径,这个是压缩包提取的暂存的文件夹,不是最终路径,这里不需要更改。 (3)安装 选择自定义安装后,取消勾选 Visual Studio,原因安装耗时较长,也可不需要。后面的路径也不需要更改。

YOLO系列训练时出现loss出现nan值或者测试时P\R\map全部为0值的解决办法(GTX16xx系列显卡大坑)

目录 0 前言(用处不大,可以直接看解决办法) 1 产生问题的原因 2 解决办法 YOLO V5 YOLO V7 2 小结 ☆ 这个问题是GTX16xx用户的大坑,基本上每个GTX16xx用户使用YOLO系列算法,都会遇到这些问题。 这个方法是不彻底的解决办法,牺牲了训练的时间来换取问题的解决,经过本人在GTX1660TI笔记本上测试YOLOV5和YOLOV7算法均成功解决了。 0 前言(用处不大,可以直接看解决办法) 最近正在做目标检测相关的算法,因为要求实时性要很高,所以选择了YOLO系列算法。最先开始选择的是刚出炉新鲜的YOLOV7算法,训练时没有问题,但是在最终测试时,发现检测不出来任何的bbox,开始以为是没有训练好,但是发现训练时的validation都有bbox。最后决定还是老实采用YOLO V5算法(为什么不选美团的YOLO V6?YOLO V6在论文外的数据集,表现还没有YOLOV 5好,大家dddd),不过使用YOLOV5 时又发现了训练时出现了nan值,于是在github上yolov5问答里找到了解决办法(不使用AMP)。但是有发现了validation时出现P\R\map全为0值。于是找呀找,最后都没有发现问题所在。最后在阅读YOLO V5 的train.py的源代码发现了一些解决办法问题。 1 产生问题的原因 由于NVIDIA 官方的一些软件问题,导致了PyTorch里面一些CUDA代码有些问题,就是fp16(float16)数据类型在卷积等一些运算的时候会出现nan值。导致了训练时候出现了nan值,故而在validation时就会检测不到导致了上述情况。 2 解决办法 YOLO V5 里面检测没有nan值、不识别问题,就只有训练的时候有问题。 下面正式开始解决问题,在train.py搜索amp把check_amp注释掉直接把amp赋值为False,如下图: 这样做之后在运行train.py发现训练时就不会有nan值了。如果还有,那就应该就关闭这篇博客了,考虑下其他方法了。然后,你就会发现validation时会出现P/R/map全部为0。然后你就继续在train.py里面搜索half关键字,把所有有.half()变为.float(),如下图: 这样之后,你就会发现 ——还是没有解决问题。 要解决这个问题,还需要在val.py里面将所有的half改为False,同时im.half() if half else im.float() 改为 im.float()。如下图: 这样做之后,再次运行train.py发现没有问题了。 YOLO V7 经测试,train.py没有问题,主要还是在detect.py里面有问题。主要还是把每个地方.half()改为.float()或者把half赋值为False,如下图: 3 小结 其实,归根究底就是NVIDIA对GTX16xx相关CUDA包有问题,有其他人说吧PyTorch版本降为1.10.1和CUDA 10.2,我也试过,确实能解决问题,但是训练时长长了很多,而且现在PyTorch官方已经不怎么支持使用CUDA 10.2版本了。 这个解决办法的原理,就是把显卡半精度浮点型数据改为单精度的浮点型去运算。这样虽然精度高了,但是训练时长也相应会增加一些、显存占用也会增加一些,但是,这样总比不能训练和不能检测要好些吧,要是有更好的办法,欢迎在评论区分享分享。。 contact_details_qq=277746470

【K210】K210学习笔记一——sensor

【K210】K210学习笔记一——sensor 前言sensor的配置模块导入模块配置模块各配置解释 完整源码 前言 本人大四学生,电赛生涯已经走到尽头,一路上踩过不少坑,但运气也不错拿了两年省一,思来想去,决定开始写博客,将电赛经验分享一二,能力有限,高手轻喷。 本篇主要是介绍 K210 上的 sensor (感光元件)模块,也就是摄像头模块。如果你要使用 K210 来进行一些颜色追踪(比如识别黑色,传回坐标让小车寻线,或者是识别其他颜色的线),那么 sensor 必须要好好配置,如果配置不好,会直接影响颜色追踪的效果。 然后就是记录一个大坑,就是有时摄像头画面会偏绿(或者偏其他颜色)的问题。 这个问题同样会影响颜色追踪的结果。 sensor的配置 模块导入 首先需要导入的是 sensor 模块。 # sensor_V1.0 - By: FITQY - 周天 8 月 21 日 2022 #__________________________________________________________________ # 导入模块 import sensor, time # 导入感光元件模块 sensor 跟踪运行时间模块 time 模块配置 我对 sensor 模块的配置如下。 #__________________________________________________________________ # 感光元件设置 sensor.reset() # 重置并初始化感光元件 默认设置为 摄像头频率 24M 不开启双缓冲模式 #sensor.reset(freq=24000000, dual_buff=True) # 设置摄像头频率 24M 开启双缓冲模式 会提高帧率 但内存占用增加 sensor.set_pixformat(sensor.RGB565) # 设置图像格式为 RGB565 (彩色) 除此之外 还可设置格式为 GRAYSCALE 或者 YUV422 sensor.

【排序算法】希尔排序(C语言)

【排序算法】—— 希尔排序 目录 一、希尔排序原理1. 插入排序的问题2. 希尔排序的思路 二、希尔排序的相关问题1. 为什么插入排序那么多但效率却很高2. 如何选择希尔增量 三、代码实现1. 代码实现思路2. 实现代码 希尔排序是对直接插入排序的优化,在学习之前,没有学过插入排序的童鞋们建议先学习插入排序:点击跳转到插入排序😜 一、希尔排序原理 1. 插入排序的问题 ​ 逆序有序的数组排序时,时间复杂度为 O ( n 2 ) O(n^2) O(n2),此时效率最低 ​ 顺序有序的数组排序时,时间复杂度为 O ( n ) O(n) O(n),此时效率最高 ​ 我们发现,当被排序的对象越接近有序时,插入排序的效率越高,那我们是否有办法将数组变成接近有序后再用插入排序,此时希尔大佬就发现了这个排序算法,并命名为希尔排序 2. 希尔排序的思路 ​ 希尔排序是对插入排序的优化,基本思路是先选定一个整数作为增量,把待排序文件中的所有数据分组,以每个距离的等差数列为一组,对每一组进行排序,然后将增量缩小,继续分组排序,重复上述动作,直到增量缩小为1时,排序完正好有序。 ​ 希尔排序原理是每一对分组进行排序后,整个数据就会更接近有序,当增量缩小为1时,就是插入排序,但是现在的数组非常接近有序,移动的数据很少,所以效率非常高,所以希尔排序又叫缩小增量排序。 ​ 每次排序让数组接近有序的过程叫做预排序,最后一次插入是直接插入排序 以3作为增量对数组进行分组,以下数组被分成3组,每组之间都是以3的等差数列 对每一组进行插入排序,得到如下数组 此时增量缩小,以2为增量对数组进行分组,数组被分成2份,每组之间都是2的等差数列 对每一组进行插入排序,得到如下数组 最后增量为1,分为1组(其实就等于没分),对其进行插入排序,数组变得有序 二、希尔排序的相关问题 1. 为什么插入排序那么多但效率却很高 希尔排序中待排数据每次是以增量的移动步数空出插入位置,所以效率比普通插入一次一步的移动方式要快 每一次排序之后数组就会变得接近有序,插入排序的移动次数就会越来越少,效率也不是普通的插入排序能比的了 希尔排序移动次数:共移动8步 直接插入排序移动次数:共移动15步 综上所述:希尔排序在越大的数组上更能发挥优势,因为步子迈的更大,减少插入排序的移动次数更多 2. 如何选择希尔增量 ​ 希尔排序的分析是一个复杂的问题,它的时间是一个关于增量序列的函数,这涉及到一些数学上未能攻克的难题,所以目前为止对于希尔增量到底怎么取也没有一个最优的值,但是经过大量研究已经有一些局部的结论,在这里并不展开叙述。 ​ 最初希尔提出的增量是 gap = n / 2,每一次排序完让增量减少一半gap = gap / 2,直到gap = 1时排序变成了直接插入排序。直到后来Knuth提出的gap = [gap / 3] + 1,每次排序让增量成为原来的三分之一,加一是防止gap <= 3时gap = gap / 3 = 0的发生,导致希尔增量最后不为1,无法完成插入排序。到目前为止业内对于两个大佬的方法依然是看法不一,都没有比出个上下来

2021数学建模国赛B题复盘详细解析

声明:本赛题为去年的题目,想着2022的国赛即将来临,我决定花一个晚上再次回顾经典题目。 未经允许,不得转载。——CSDN:川川菜鸟 题目 C4 烯烃广泛应用于化工产品及医药的生产,乙醇是生产制备 C4 烯烃的原料。在制备过程中,催化剂组合(即:Co 负载量、Co/SiO2 和 HAP 装料比、乙醇浓度的组合)与温度对 C4 烯烃的选择性和 C4 烯烃收率将产生影响(名词解释见附录)。因此通过对催化剂组合设计,探索乙醇催化偶合制备 C4 烯烃的工艺条件具有非常重要的意义和价值。 某化工实验室针对不同催化剂在不同温度下做了一系列实验,结果如附件 1 和附件 2 所示。请通过数学建模完成下列问题 问题 第一问 对附件 1 中每种催化剂组合,分别研究乙醇转化率、C4 烯烃的选择性与温度的关系,并对附件 2 中 350 度时给定的催化剂组合在一次实验不同时间的测试结果进行分析。 第二问 探讨不同催化剂组合及温度对乙醇转化率以及 C4 烯烃选择性大小的影响 第三问 如何选择催化剂组合与温度,使得在相同实验条件下 C4 烯烃收率尽可能高。若使温度低于 350 度,又如何选择催化剂组合与温度,使得 C4 烯烃收率尽可能高。 第四问 如果允许再增加 5 次实验,应如何设计,并给出详细理由。 名词解释与附件说明 第一问 分析 题目首先看前面部分,关键词:”附件1“,”每种“,”分别研究“,”关系“,“附件2”,“350度” 先看前面部分的附件1: 重新读题:“每种组合”,对应附件1数据中的第二列,先大概看看即可,主要是对应数据。 继续看第二句话:“分别研究…和温度的关系”。那么先只研究乙醇转化率和温度的关系,因此需要控制其它的变量是不变化的,这是很简单的控制变量法思想。我们希望乙醇转化率是x,温度是y,最后有可能类似y=ax+b的关系,如果其它变量发生变化,那就成了x1,x2…了,所以控制变量法。 为此,认真看数据第二列,数据比较多,需要理解一下,以A1的催化剂组合为例: 200mg 1wt%Co/SiO2- 200mg HAP-乙醇浓度1.68ml/min 它的含义是:Co/SiO2 和 HAP 质量比为 200mg:200mg,且乙醇按每分钟 1.68 毫升加入。其中Co 与 SiO2 的重量之比为1:100(即1wt%)。

2021年高教杯数学建模国赛C题生产企业原材料的订购与运输

最近我们小组做了建模训练,选择的题目是21年的国赛C题,我负责软件部分,这题我刚好会做,第一次独自完成了代码,有点激动,和大家分享一下,共同学习,不过因为我个人比较懒,讲解的不怎么多。。。不过会分享一下完整的代码 其实我的代码还有点问题,转运方案没有按照它的要求,当时没注意到这个问题,所以输出的结果和题目给的表格不太一样。 我路子可能比较野,写的代码有点杂乱无章,感觉算小屎堆了(悲) 因为事后没有整理,所以代码会有一些多余的部分,是当时用过后发,之后又不用的。。。 我也是个建模新手,还有很多不足的地方,欢迎大家指出我的错误,一起交流 大家会看到一个Excel,叫‘问题1评分排名.xlsx’,当时鬼迷心窍弄成这样,现在一看实属脱裤子放屁。这个表格大家复制就能用了 供应商ID材料成本总供货量订单数达标率评分排名S0011.149250.2087916.15234E-05289S0021.2273710.6736840.000692156105S0031131381910.8542710.03694448243S0041.164330.2038830.000103899245S0051.269121070.9035090.01939939454S006130130.21.01257E-05387S0071.269482400.8666670.01950140953S008141150.253.79261E-05313S0091.131190.151.51885E-05348S0101.1170320.2272730.000400748129S011185320.6511630.00016209187S0121.229120.1470598.21066E-06397S013144200.6551724.70146E-05304S0141.228160.5925931.05163E-05381S0151.228150.2777789.81485E-06388S0161.237170.7272732.77322E-05324S0171.2138250.3134330.000310438153S0181.166310.3472220.00010913233S0191.1109120.1551720.00022839173S020172330.2359550.000126006210S0211.280420.6290320.000149329195S0221.2140160.196970.000315793150S023116311330.606250.0045182359S0241.1124450.4415580.000272282163S02513751260.8592590.00098176891S0261.228140.8235299.11532E-06392S0271.281300.5957450.000150732193S0281.1106190.3469390.000220167175S0291.168290.2111110.000114417228S0301.2162280.9655170.000378089133S0311.1412072400.9250.1160433830S032171300.3906250.000122868215S033130170.8421051.25537E-05364S034130140.0909091.07151E-05379S0351.2144550.420.000329074145S0361.1124490.870370.000272614162S0371506861570.9006210.14275532725S0381.236220.18752.69251E-05327S0391385450.6349210.00100650687S0401.1319052400.9041670.08983018731S041171280.3225810.000122644216S0421.2138250.3392860.000310438152S0431.239180.2205883.32102E-05318S044130140.7647061.07163E-05377S0451.131200.2195121.57757E-05346S0461.21971400.6540880.000486107119S0471.166280.2022470.000108744237S0481.165260.440.000105729243S0491.238190.441863.08765E-05320S0501.166290.906250.000108869235S0511.229150.1967211.02113E-05385S0521.254250.5333337.51754E-05271S0531.2773110.000139675200S0541.14131130.7441860.00108777270S0551.1240412400.90.06766932435S0561.228170.2954551.12168E-05375S0571.150220.3448286.37202E-05285S0581.134200.2105262.15241E-05337S059147470.3469396.25025E-05288S060186100.360.000163567186S061184300.3731340.000159113189S0621.27550.2352940.000132477203S063130210.2077921.51106E-05350S0641.23971260.9029850.00104353180S0651.2189640.6136360.000455845123S0661.23881320.8510640.00101863184S06712331690.9881660.000589569112S068142160.159424.08295E-05309S0691.1169700.5612240.000400273130S070146260.7428575.36666E-05300S0711.2191120.0833330.000459402122S0721.228170.3170731.12168E-05374S0731.132170.739131.59024E-05345S0741130511710.7213110.0366992744S0751.23901250.8507460.00102381783S07613761970.9154230.0009902489S0771.1128120.1724140.000281908161S0781.285531010.7943930.02402372650S0791.164240.4038460.000102722248S0801192372400.8750.05413160437S0811.149230.6774196.11551E-05290S0821.258270.2777788.64829E-05263S0831.228140.3759.11406E-06393S084170180.2112680.000118955220S085146230.3571435.3017E-05301S0861179492060.8421050.05050194339S0871.264270.6578950.000103073246S0881.14251390.8235290.00112292464S0891.2141250.558140.00031888149S0901145290.6279070.000330292144S0911.273290.5192310.000128321206S0921.13981260.8846150.00104633977S0931.236120.1694922.38267E-05333S094141240.4117654.00253E-05311S0951.132130.1408451.40651E-05358S0961.273280.4629630.000128216208S0971.263300.2972970.000100704249S0981.14132060.928230.00109440468S0991.260250.5365859.17327E-05259S100142160.0989014.08295E-05310S1011.256250.2328778.06782E-05266S1021.2131500.50.000292281158S103130180.2539681.31827E-05363S1041.2155250.2638890.000358284137S1051.1120250.3454550.000259803167S1061.277370.9230770.00014037197S107169290.3650790.000117194224S1081.12409502400.9458330.6789231854S1091.236190.3214292.58355E-05328S11014261280.7077920.00112509663S1111.131160.3684211.34925E-05361S1121.112350.31250.000267727165S11313851260.9015150.00100983986S1141.2109312290.8528140.03072528245S1151.23981210.7234040.00104605279S1161.275230.5945950.000133342202S1171.1123610.4387760.000270995164S1181.166280.3571430.000108744236S1191.22990.1702136.27734E-06401S1201.133160.406251.75815E-05343S1211.2137260.4444440.000307664154S1221.273310.6444440.000128543205S1231.264492400.8083330.01809527256S1241.134140.41.92079E-05340S1251.149160.1864416.01054E-05292S126147540910.840.13388981127S1271.2158240.3281250.000366697135S1281.2133510.6619720.00029796157S129115251920.7783250.00422069260S1301.260280.1979179.21415E-05258S1311.11375122400.9083330.38743277711S1321.263280.540.00010043250S133171260.7666670.000122436217S1341.152210.2769236.90704E-05280S13518750.2380950.000166287183S136142190.4090914.1421E-05308S1371.133190.1785711.89143E-05341S1381.14111420.7610060.00108381472S1391.11518622220.968750.42787136810S1401.13020472190.8863640.8510957893S1411.14201200.8538460.00110780667S1421.1121150.3043480.00026226166S1431.2827872400.8958330.23321661920S1441.22830.151.40666E-06402S1451.263280.301370.00010043251S1461.13521690.711230.00092059698S1471.110880.350.000225495174S1481.259270.1758.92396E-05260S1491251720.8641980.000630385108S1501.218062400.7958330.00501322757S15111944982400.9541670.5480204935S1521.23981240.7080290.00104622378S1531.1175130.1785710.000414334128S1541.27634770.6153850.0214339352S1551.240190.2777783.60939E-05315S1561.228160.2291671.05157E-05384S1571.23951200.8409090.00103756981S1581.237200.3529412.86471E-05321S1591.2215470.4634150.000527955116S160145200.2205884.97234E-05303S161147200.1944445.51741E-05298S162128140.1011249.11309E-06394S1631.2252460.4615380.000632024107S164172220.2179490.000124864212S1651.275630.5894740.000139395201S1661.132160.3076921.54154E-05347S1671.2136280.30.000304934155S1681.131170.21.40455E-05359S1691.13591180.951220.00093636194S1701.2135240.5121950.000301959156S171172290.3968250.000125537211S1721.13561280.8613140.00092858496S1731372160.3589740.00096945692S1741.13461250.9841270.000900333100S1751.13661380.9645390.00095731693S1761.151510.48757.36843E-05274S177147210.2337665.53475E-05297S1781.21634510.000381681131S1791.131140.1621621.24307E-05366S1801.152520.8474587.65001E-05269S1811.236160.1896552.48761E-05331S1821153270.5416670.000352724139S183128150.1463419.81411E-06390S1841.273260.4150940.000128016209S1851.264260.2409640.000102951247S18613771220.7878790.00098713790S1871.274260.273810.000130808204S1881.151230.8846156.66242E-05283S1891.288921510.8553460.02497915148S1901.14830.1428575.63779E-05296S1911.13511190.751880.00091396899S192130160.1764711.19304E-05368S1931.1101250.80.000206402176S19411013652400.9458330.28556979717S1951.236170.3414632.51805E-05330S1961.240200.4166673.63449E-05314S1971.13541190.8480.00092238897S1981.254220.1494257.47328E-05273S1991.1130300.56250.000288156159S2001.165300.3287670.00010623242S2011.281989280.5306120.2309677921S2021.14001270.872180.00105201476S2031.236230.8214292.73152E-05325S2041.28150.1481480.000149381194S2051.260300.2957759.24397E-05256S206131140.9333331.24321E-05365S2071154440.4065930.000356347138S2081.28757900.5317460.0245985849S2091.2163370.397260.000381269132S2101156941180.6618710.04414718541S2111.258540.838719.2344E-05257S212131100.0882351.05487E-05380S21312461630.9578310.00062473109S2141.152520.4516137.64999E-05270S2151.150140.1315796.26627E-05287S2161.14251290.7162160.00112234365S2171.2139200.3720930.000313084151S2181154832400.9291670.04355281842S2191.236250.6666672.81304E-05322S220170280.3870970.000119861219S2211.23921230.976190.00102931582S2221.132150.3846151.49461E-05351S223128170.3783781.12163E-05376S2241.1108950.7818180.000234872172S2251.132140.81251.44962E-05352S2261.2200340.4406780.000485251120S2271.2254300.6923080.000637197106S2281151150.228070.000346755140S2291.23548872400.9458330.9999999891S2301.152250.6764716.96937E-05279S231131160.1410261.34922E-05362S2321.1119260.5750.000257038169S2331.1179570.5647060.000427327127S234145450.2772285.69767E-05295S2351.1189310.7631580.000454188124S236128160.61.05158E-05383S2371.23281190.9421490.00084944102S2381.13230.0363641.13591E-05372S23914301450.9862070.00113732861S2401.14950.0781255.92449E-05293S241128110.1428577.01013E-06398S2421.279290.3846150.000145053196S2431.263270.220930.000100301253S2441164062400.8708330.04615383340S24513861520.8036810.00101438485S246144180.1805564.66366E-05305S2471566982400.9458330.15969730624S2481.169300.3058820.000117314223S2491.167310.450.000111897229S2501.235120.5789472.11804E-05338S2511.23660.0925932.28153E-05335S252148240.3220345.86212E-05294S2531223680.9305560.000551517114S2541.2161260.5333330.000375206134S2551.236180.4444442.55005E-05329S2561.14111230.8538460.00108268173S257131130.1960781.19263E-05370S2581.14141250.750.0010912269S2591.167300.5185190.000111767231S2601.11841280.7517240.000448532125S2611.169310.4153850.000117437222S262128130.1785718.41215E-06395S26314271320.7894740.0011281362S2641.13250.51.16162E-05371S2651.2141590.60.000321021148S2661.265192400.8708330.01829252555S267182620.5393260.000158066190S26811297862400.93750.36566075215S2691.22111430.8451610.000525212117S270192580.8593750.000184726177S2711247490.7096770.000618063111S2721.132140.7777781.44961E-05353S2731.29484900.8383840.02664727446S2741.277320.5918370.000139782198S2751.21585532400.9458330.4467267458S2761.152190.1923086.87995E-05281S277130160.1463411.19303E-05369S2781.262260.2168679.74022E-05255S279189360.6938780.000173641179S2801.1127750.4741380.000283765160S2811.236150.2653062.4588E-05332S2821.21693402400.98750.4771247337S2831.230140.0882351.07157E-05378S28414659724010.13123249828S2851.235190.1772152.34169E-05334S2861.167300.7250.000111767230S2871.16660.10.000107142239S2881.230130.3333331.01264E-05386S2891.240140.2142863.50228E-05316S290131190.2465751.51885E-05349S2911.279842190.860360.02242068251S2921.29160900.6186440.02573423847S2931.219280.1194030.000462181121S2941188422400.8791670.05301849238S2951.256560.5903618.782E-05262S2961.262330.629.84036E-05254S297131140.1621621.24306E-05367S2981.151130.7647066.53583E-05284S2991.262620.3455880.000104921244S3001.229980.6363640.000763699104S301189310.750.000173181180S3021.259250.1910118.89639E-05261S3031.15490.6428577.3483E-05275S3041.2156880.830.000365824136S305128160.751.05162E-05382S30611260962400.9541670.35526225616S3071.2781961710.970930.22027906522S3081.11369982400.9166670.38598431512S3091.237180.5925932.80229E-05323S3101.14061250.81250.00106874974S3111.165310.31250.000106366240S3121.277320.5081970.000139782199S3131384380.4637680.0010035588S314116702350.7787230.00463008358S3151.132120.4230771.36576E-05360S3161.169280.5813950.000117079225S3171.229210.21.43009E-05354S3181.2346990.887850.000898758101S3191.166310.3380280.00010913234S320142200.2258064.16399E-05307S3211.13320.1666671.41077E-05356S3221.168290.3906250.000114417227S3231.229120.4615388.21116E-06396S3241.14241260.8602940.00111936766S325173290.3934430.000128321207S326182300.338710.000153525191S3271.135170.5172412.26922E-05336S3281.13340.0810811.42463E-05355S3291.21565182400.9416670.4409920749S3301.11366522400.91250.3850092813S331170500.5135140.00012324213S3321.2305460.9019610.000781228103S3331.1178970.6129030.000428024126S3341148100.0694440.000338221141S3351.150180.2884626.31314E-05286S3361.2144310.6382980.000327566146S3371.236220.72.69255E-05326S3381.1301092040.9411760.08476898932S339144440.5833335.4236E-05299S3401.11714262400.9416670.4830031236S3411.263270.350.000100301252S3421224390.9750.000552974113S343128110.1142867.0101E-06399S3441.15490.1111117.34829E-05276S345187140.3939390.000166513182S3461.1232402400.8708330.06541209736S347182280.3478260.000153346192S3481.2924211940.9195980.2603654118S349142230.5714294.23596E-05306S3501.239200.2266673.37387E-05317S351144370.9487185.16705E-05302S3521.2890312400.9166670.25081233619S3531.168330.8250.000114931226S3541.257230.2656258.3165E-05265S35513170.2592599.44272E-06391S35611303072400.950.3671289414S3571220540.750.000542333115S3581.134100.6666671.80475E-05342S359186330.6458330.000164977184S3601.14051310.6821190.00106629175S36113280802400.8791670.9244573212S362191690.9857140.000183823178S3631.256190.3478267.99072E-05267S3641.1287632400.9416670.08097598333S3651416312400.950.1172382229S3661.149490.7704926.80754E-05282S3671.1263352400.90.07413384534S368186130.3666670.000163662185S3691146260.3283580.000332988143S3701.258250.488.61984E-05264S3711.154240.2428577.50215E-05272S3721.229100.256416.9109E-06400S3731.230150.1690141.13179E-05373S3741492242400.9958330.13863543326S3751.1112130.1311480.000236863171S3761.13581210.7898550.0009337495S377171310.4912280.000122986214S3781.149210.3090916.08165E-05291S3791249360.9729730.000623265110S380185250.460.000161506188S3811.2201280.843750.000487885118S382128150.3783789.81437E-06389S3831147270.7352940.000335839142S384189190.3260870.000172362181S3851.153240.2439027.22719E-05277S3861.1119410.7037040.000257968168S3871.133130.1710531.64103E-05344S3881.1114640.9014080.00024634170S3891.169310.5434780.000117437221S3901.166130.2040820.000107415238S391170310.3037970.000120211218S3921.14121290.8478260.0010858371S3931.133101.40902E-05357S3941.2144100.1363640.000326951147S3951.275843740.8690480.21364824123S3961.238250.219783.28205E-05319S3971.152520.8644077.65001E-05268S398141160.353.81135E-05312S3991.165300.3606560.00010623241S4001.153130.1666677.0951E-05278S4011.167290.3731340.000111642232S4021.13580.0547952.03274E-05339 第一问 第一问选取了 材料成本总供货量订单数达标率 几个指标,利用熵权topsis法进行排名,取前五十名 不过数据处理的代码里还有一些计算其他的,写了但是没用上。。。 熵权topsis代码非原创,是借鉴了某位大佬的,不过我忘记是哪位的了。。。。 如果大佬不满意的话请联系我,我把它删掉 第一问代码 %%第一问代码 %处理数据 clc;clear [num,txt,raw]=xlsread('附件1 近5年402家供应商的相关数据.xlsx',1); [num2,txt2,raw2]=xlsread('附件1 近5年402家供应商的相关数据.xlsx',2); %计算供给达标周数 sum_hege=zeros(402,1); [m,n]=size(num); for j=1:m for i=1:n if num(j,i)~=0&&num2(j,i)>=num(j,i) sum_hege(j,1)=sum_hege(j,1)+1;%计算供给达标的周数 end end end num_gongji=sum(num~=0,2);%计算企业要求供应商供给的周数 num2_sum=sum(num2,2);%求出供应商一共提供了多少材料; num2_mean=mean(num2,2);%得出平均每个星期提供的材料数量; num2_gongji=sum(num2~=0,2);%计算供应商有供货的周数; num2_wugongji=sum(num2==0,2);%计算没有供货的周数; num2_month=num2_mean*4; dabiaolv=sum_hege./num_gongji; %将材料量化 cailiao=ones(402,1); xunzhaoA = strcmp(txt2(2:end,2),'A');%找出A,标记为1 mA=find(xunzhaoA==1);%找出字符串所在的索引 xunzhaoB = strcmp(txt2(2:end,2),'B');%找出A,标记为1 mB=find(xunzhaoB==1);%找出字符串所在的索引 cailiao(mA)=1.2; cailiao(mB)=1.1; data=[cailiao num2_sum num2_gongji dabiaolv]; bingtu=[sum(num2_sum<100),sum(num2_sum>=100&num2_sum<1000),sum(num2_sum>=1000&num2_sum<10000),sum(num2_sum>=10000)]; pie3(bingtu) legend('供货量小于100','供货量100-1000','供货量1000-10000','供货量大于10000') %% %熵权topsis x=data;%导入数据 [n,m]=size(x); % 数据的归一化处理 [X,ps]=mapminmax(x',0,1); ps.ymin=0.002; % 归一化后的最小值 ps.

(附源码)springboot仓库管理系统的开发毕业设计260931

springboot仓库管理系统 摘 要 随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,仓库管理系统当然也不能排除在外。仓库管理系统是以实际运用为开发背景,运用软件工程原理和开发方法,采用java技术构建的一个管理系统。整个开发过程首先对软件系统进行需求分析,得出系统的主要功能。接着对系统进行总体设计和详细设计。总体设计主要包括系统功能设计、系统总体结构设计、系统数据结构设计和系统安全设计等;详细设计主要包括系统数据库访问的实现,主要功能模块的具体实现,模块实现关键代码等。最后对系统进行功能测试,并对测试结果进行分析总结,得出系统中存在的不足及需要改进的地方,为以后的系统维护提供了方便,同时也为今后开发类似系统提供了借鉴和帮助。这种个性化的网上系统管理特别注重交互协调与管理的相互配合,激发了管理人员的创造性与主动性,对仓库管理系统而言非常有利。 本仓库管理系统采用的数据库是Mysql,使用java技术开发。在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。 关键词:仓库管理系统,java,Mysql Springboot warehouse management system ABSTRACT With the rapid development of science and technology, all aspects of society and all walks of life are trying to integrate with modern advanced technology and improve their own advantages through scientific and technological means. Of course, warehouse management system can not be excluded. Warehouse management system is a management system based on practical application, software engineering principles and development methods, and Java technology.

python数据预处理

Ⅰ.数据源 Ⅱ.导入库 import pandas as pd import numpy as np from scipy import stats import matplotlib.pyplot as plt import seaborn as sns from sklearn.preprocessing import MinMaxScaler, StandardScaler # 避免画图时无法显示中文(中文部分以正方格显示) plt.rcParams['font.sans-serif']=['SimHei'] plt.rcParams['axes.unicode_minus']=False # 显示所有的列,而不是以……显示 pd.set_option('display.max_columns', None) # 显示所有的行,而不是以……显示 pd.set_option('display.max_rows', None) # 不自动换行显示 pd.set_option('display.width', None) Ⅲ.读取数据 # 读取文件 catering_sale=pd.read_excel('./data/catering_sale.xls') Ⅳ.数据缺失值处理 # 判断是否存在缺失值 print(catering_sale.info(),'\n') # print(np.isnan(catering_sale).any(),'\n') catering_sale2=catering_sale.dropna(axis=0) print(catering_sale2.info(),'\n') 输出结果如下: <class 'pandas.core.frame.DataFrame'> RangeIndex: 201 entries, 0 to 200 Data columns (total 2 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 日期 201 non-null datetime64[ns] 1 销量 200 non-null float64 dtypes: datetime64[ns](1), float64(1) memory usage: 3.

HC-SR04超声波测距模块使用方法和例程(STM32)

基于STM32和HC-SR04模块实现超声波测距功能 最近在学STM32做个简单的应用实践一下,顺便水一篇文章。 本文用的单片机是STM32F103C8T6,超声波测距模块是HC-SR04,显示测距结果用的是0.96寸OLED屏模块。 效果展示 下图中小于10cm时的显示结果有点问题,代码已修复并更新 修复后的结果: 视频演示:https://www.bilibili.com/video/BV1Sg411Z7ex/ 基于STM32和HC-SR04模块实现超声波测距功能 HC-SR04硬件概述 HC-SR04超声波距离传感器的核心是两个超声波传感器。一个用作发射器,将电信号转换为40 KHz超声波脉冲。接收器监听发射的脉冲。如果接收到它们,它将产生一个输出脉冲,其宽度可用于确定脉冲传播的距离。就是如此简单! 该传感器体积小,易于在任何机器人项目中使用,并提供2厘米至400厘米(约1英寸至13英尺)之间出色的非接触范围检测,精度为3mm。 Operating Voltage工作电压直流5VOperating Current工作电流15毫安Operating Frequency运行频率40K赫兹Max Range最大范围4mMin Range最小范围2厘米Ranging Accuracy测距精度3毫米Measuring Angle测量角度15度Trigger Input Signal触发输入信号10µS TTL脉冲Dimension尺寸45 x 20 x 15毫米 HC-SR04超声波传感器引脚 让我们看一下它的引脚排列。 VCC 是HC-SR04超声波距离传感器的电源,我们连接了5V的供电。 Trig (Trigger) 引脚用于触发超声波脉冲,下面例程中用的GPIOB5,所以连接STM32的GPIOB5。 Echo 回声当接收到反射信号时,引脚产生一个脉冲。脉冲的长度与检测发射信号所需的时间成正比,下面例程中用的GPIOB6,所以连接STM32的GPIOB6。 GND 应该连接到STM32的地。 HC-SR0如何工作? 当持续时间至少为10 µS(10微秒)的脉冲施加到触发引脚时,一切就开始了。响应于此,传感器以40 KHz发射八个脉冲的声音脉冲。这种8脉冲模式使设备的“超声特征”变得独一无二,从而使接收器能够将发射模式与环境超声噪声区分开。 八个超声波脉冲通过空气传播,远离发射器。同时,回声引脚变为高电平,开始形成回声信号的开始。 如果这些脉冲没有被反射回来,则回波信号将在38毫秒(38毫秒)后超时并返回低电平。因此38 ms的脉冲表示在传感器范围内没有阻塞。 如果这些脉冲被反射回去,则在收到信号后,Echo引脚就会变低。这会产生一个脉冲,其宽度在150 µS至25 mS之间变化,具体取决于接收信号所花费时间。 HC-SR04的时序图如下: 然后,将接收到的脉冲的宽度用于计算到反射物体的距离。这可以通过我们在初中学到的简单的距离-速度-时间方程来解决。 距离=速度x时间 接线 将HC-SR04和0.96寸OLED屏连接到STM32。 HC-SR04STM32VCC5VTrigGPIO PB5EchoGPIO PB6GndGnd OLEDSTM32VCC3.3VGNDGNDSCLGPIO PB12SDAGPIO PB13 温度对距离测量的影响 尽管HC-SR04对于我们的大多数项目来说都相当准确,例如入侵者检测或接近警报;但是有时候您可能想设计一种要在户外或在异常炎热或寒冷的环境中使用的设备。在这种情况下,您可能要考虑到空气中的声速随温度,气压和湿度而变化的事实。 由于声音因素进入HC-SR04距离计算的速度,因此可能会影响我们的读数。如果已知温度(°C)和湿度,请考虑以下公式: 声速 m/s = 331.4 +(0.606 * 温度)+(0.0124 * 湿度)

Vue3实战教程(快速入门)

Vue3实战教程(快速入门) 前言1.搭建脚手架1.1 创建项目1.2 清除多余文件,创建干净项目1.3 创建登录页面 2.创建404页面(引入sass)2.1 引入sass2.2 创建404页面 3.构建登录注册页面(引入element-plus)3.1 实现布局左右切换动画3.2 引入element-plus3.3 使用element-plus表单组件3.4 表单验证 4.类型匹配和代码抽离4.1 代码抽离4.2 类型匹配4.2.1 ts文件类型匹配4.2.2 vue文件中的ts类型匹配 5.抽离登录组件6. 实现注册表单6.1 创建注册表单ts——存放注册表单及其验证规则6.2 创建注册表单组件6.3 在LoginRegister.vue中引入使用 7. 封装axios7.1 下载axios7.2 封装axios7.3 解决跨域问题(配置vue.config.js,设置代理)7.4 使用axios发起请求7.4.1 创建api文件夹,规范使用api(推荐)7.4.2 全局注册axios(不推荐,也没必要) 8.总结 前言 本教程通过搭建一个简单项目,帮助读者快速入门Vue3项目实战,掌握Vue3、TS、Element Plus、axios等技术栈。 1.搭建脚手架 vue -V查看vue版本,需要在4.5.1版本之后,即可进行以下操作。 1.1 创建项目 (1)使用命令 vue create vue3-elementplus-demo 创建Vue项目。 (2)进入选项配置,选择 Manually select features,进行手动配置 (3)配置项如下 都选择完毕后,回车,项目即可创建完毕,使用VsCode或者按照提示进入和启动项目 1.2 清除多余文件,创建干净项目 (1)删除以下文件 (2)在views目录下创建Index.vue文件(后面处于方便,又将Index.vue修改成了Home.vue),内容如下: <template> <div>首页</div> </template> <script> export default { name: 'Index' } </script> <style scoped></style> (3)修改router/index.ts路由文件:

【全网最详细yolov6】yoloV6调试记录(含训练自己的数据集及常见报错及解决方法)--持续更新ing

本文手把手教你如何调试最新的yolov6,复现运行COCO2017及训练自己的数据集,目前该项目刚发布,BUG会比较多,调起来一般不会那么顺利,本文含windows+ubuntu,并给出了一些常见问题和解决方法: 目录 1.项目简介 2.注意和推荐 3.项目配置(含COCO数据集配置) 4.训练自己的数据: 5.踩坑小记与解决方法: 6.自己训练的尝试和tips(供大家参考) 1.项目简介 最近由美团发布了yoloV6,声称达到了如下的效果: 其中YOLOv6-nano在COCO val2017数据集上达到了35.0 mAP, YOLOv6-s在同样的数据集上达到了43.1 mAP。 工程和说明见:GitHub - meituan/YOLOv6: YOLOv6: a single-stage object detection framework dedicated to industrial applications.https://github.com/meituan/YOLOv6 目前由于工程是近期发布的,有一定的问题,而且GIthub中的说明也不是很详细,特此写一篇关于调试的文章。 --------------------------------------------------------------------------------------------------------- 2.注意和推荐 由于该工程较新,bug还是非常多的,建议大家多去github上看看自己的issue是否有出现,这几天代码修改的也比较勤,大家尽量保持更新,会有bug fixed。现在更多的问题表现在训练自己的数据集上。 ------------------------------------------------------------------------------------------------------- 写在最前面: 经过测试该工程不适合笔记本(测试电脑为r9000p 2021)及普通台式机,适合运行在性能较好的电脑或者服务器上,本文为windows上的配置,供大家参考学习! 2022 7.1更新服务器运行,新版本工程加入了end2end ---------------------------------------------------------------------------------------------------------- 3.项目配置(含COCO数据集配置) 本部分是重现作者的效果,即在COCO上尝试运行该程序。 以下开始windows上的配置: 从requirement.txt可以看出该工程依赖于以下: 注意:请勿安装最新版本的torch(1.11.0)+torchvison(0.12)会出现问题! 我的成功运行的环境供大家参考:python 3.8.13 torchvision 0.11.1+cu113 torch 1.10.0+cu113 numpy 1.21.5 opencv-python 4.6.0.66 opencv-python-headless 4.5.5.64 addict 2.4.0 pyyaml 6.0 等等 此处省略安装torch配套的cuda和cudnn过程。 -------------------------------------------------------------------------------------------------------- 说明:本调试完成与windows10+pycharm,但仍然强烈推荐在服务器(linux)上完成调试 首先第一步克隆工程 git clone https://github.com/meituan/YOLOv6 cd YOLOv6 pip install -r requirements.

Go语言超全详解(入门级)

文章目录 1. Go语言的出现2. go版本的hello world3. 数据类型3.0 定义变量3.0.1 如果变量没有初始化3.0.2 如果变量没有指定类型3.0.3 :=符号3.0.4 多变量声明3.0.5 匿名变量3.0.6 变量作用域 3.1 基本类型3.2 指针3.2.1 指针声明和初始化3.2.2 空指针 3.3 数组3.3.1 声明数组3.3.2 初始化数组3.3.3 go中的数组名意义3.3.4 数组指针 3.4 结构体3.4.1 声明结构体3.4.2 访问结构体成员3.4.3 结构体指针 3.5 字符串3.5.1 字符串定义和初始化3.5.2 字符串UTF8编码3.5.3 字符串的强制类型转换 3.6 slice3.6.1 slice定义3.6.2 添加元素3.6.3 删除元素 3.7 函数3.7.1 函数分类3.7.2 函数声明和定义3.7.3 函数传参3.7.4 函数返回值3.7.5 递归调用 3.8 方法3.9 接口3.9.1 什么是接口3.9.2 结构体类型3.9.3 具体类型向接口类型赋值3.9.4 获取接口类型数据的具体类型信息 3.10 channel3.10.1 相关结构体定义3.10.2 阻塞式读写channel操作3.10.3 非阻塞式读写channel操作 3.11 map3.11.1 插入数据3.11.2 删除数据3.11.3 查找数据3.11.4 扩容 4. 常用语句及关键字4.1 条件语句4.2 循环语句4.2.1 循环处理语句4.2.1 循环控制语句 4.

C语言数据结构知识点小结(全)

Catologue C语言数据结构一、基本概念和术语二、时间、空间复杂度(1)时间复杂度(2)空间复杂度 三、类C语言有关操作补充1:数组定义补充2:动态内存分配补充3:C++中的参数传递 四、线性表(1)定义(2)线性表的表示和实现1、线性表的==顺序==表示和实现2、顺序表的优缺点3、线性表的==链式==表示和实现a、单链表的实现b、单向循环链表的实现c、双向链表的实现d、双向循环链表的实现 4、链表的优缺点 (3)单链表、循环链表、双向链表的时间效率比较(4)顺序表和链表的比较(5)案例引入1、线性表的应用2、一元多项式的运算3、图书管理系统 五、栈和队列(1)栈(LIFO)(2)栈的表示和实现1、栈的==顺序==表示和实现2、栈的==链式==表示和实现 (3)栈与==递归==(4)队列(FIFO)(5)队列的表示和实现1、队列的==顺序==表示和实现2、队列的==链式==表示和实现 六、串、数组和广义表(1)串(2)串的表示和实现1、串的==顺序==表示2、串的==链式==表示3、串的模式匹配算法 (3)数组(4)数组的表示(5)广义表 七、树和二叉树(1)树(2)二叉树(3)二叉树的表示1、二叉树的==顺序==存储结构2、二叉树的==链式==存储结构 (4)二叉树的遍历1、==先序==遍历的实现2、==中序==遍历的实现3、==后序==遍历的实现4、中序遍历的==非递归==算法5、二叉树的==层次==遍历 (5)二叉树遍历算法的==应用==1、二叉树的建立2、复制二叉树3、计算二叉树的深度4、计算二叉树结点的总个数5、计算二叉树叶子结点的总个数 (6)==线索==二叉树(7)树的存储结构1、双亲表示法2、孩子链表3、孩子兄弟表示法(二叉树表示法)4、树和二叉树的转换5、森林和二叉树的转换 (8)树与森林的遍历1、树的遍历2、森林的遍历 (9)==哈夫曼树==(10)哈夫曼树的表示1、哈夫曼树的==顺序==存储结构 (11)哈夫曼编码 八、图(1)图的定义(2)图的表示1、==数组==(邻接矩阵)表示法2、==链表==(邻接表)表示法 (3)图的遍历1、==深度==优先搜索遍历(Depth First Search --- DFS)2、==广度==优先搜索遍历(Breath First Search --- BFS) (4)图的应用1、最小生成树2、最短路径3、拓扑排序4、关键路径 九、查找(1) 查找表(2)线性表的查找1、顺序查找(线性查找)2、二分查找3、分块查找 (3)树表的查找(4)==哈希表==的查找 十、排序(1)插入排序1、直接插入排序2、折半插入排序3、==希尔==排序 (2)交换排序1、冒泡排序2、==快速==排序 (3)选择排序1、直接选择排序2、==堆==排序 (4)归并排序(5)基数排序(6)排序算法小结 附录A- ASCII C语言数据结构 一、基本概念和术语 **数据(data)**是对客观事物的符号表示。 **数据元素(data element)**是数据中的基本单位,在计算机程序中作为一个整体进行考虑和处理。 **数据对象(data object)**是性质相同的数据元素的集合,是数据的一个子集。 数据结构(data structrue)是相互之间存在一种或多种特定关系的数据元素的集合。通常有以下4类基本逻辑结构:1、集合,结构中的数据元素之间除了同属于一个集合的关系外,别无其他关系;2、线性结构,结构中的数据元素之间存在一个对一个的关系;3、树形结构,结构中的元素之间存在一个对多个的关系;4、图状结构或网状结构,结构种的数据元素之间存在多个对多个的关系。存储结构也有四种:1、顺序结构,2、链式结构,3、索引结构,4、散列结构 C语言缺少类这一关键字,所以一般使用结构体和函数搭配起来构造数据类型,举个例子构造复数数据类型: //定义复数数据类型 #include <stdio.h> typedef struct { float realpart; float imagpart; } Complex; void assign(Complex* A, float real, float image); void add(Complex* C, const Complex A, const Complex B); void minus(Complex* C, const Complex A, const Complex B); void multiply(Complex* C, const Complex A, const Complex B); void divide(Complex* C, const Complex A, const Complex B); void assign(Complex* A, float real, float imag) { A->realpart = real; A->imagpart = imag; } void add(Complex* C, const Complex A, const Complex B) { C->realpart = A.

在VScode中配置Python开发环境

1、安装python 官网下载地址:https://www.python.org/ftp/python/3.8.0/python-3.8.0-amd64.exe 双击打开.exe文件 勾选 Add Python 3.8 to Path选项,然后点击install now即可安装。 安装中: 安装完毕后点击close即可。 2、测试 按键盘win+r,在左下角运行窗口里输入cmd,回车。 在弹出的窗口里输入python,回车。得到如下显示。 在提示符 >>> 后面输入1+1,回车后显示2。 安装成功。 3、安装VScode 官网下载地址:https://code.visualstudio.com 找到下载好的安装包,双击打开,一直点下一步即可。 4、设置VScode 打开安装好的VScode,可以先设置好中文界面和解决中文注释乱码问题,详细步骤见上一篇博客:https://blog.csdn.net/weixin_43737995/article/details/104214032?spm=1001.2014.3001.5502 按照下图步骤搜索并安装。 添加一个准备存放代码的python文件夹。 打开设置。 在settings.json中输入下列代码,用来配置flake8和yapf并关闭pylint工具。 { "python.linting.flake8Enabled": true, "python.formatting.provider": "yapf", "python.linting.flake8Args": ["--max-line-length=248"], "python.linting.pylintEnabled": false } 保存并关闭。 5、测试 在所选择的文件夹下新建一个python文件,以.py结束。 在文件中输入要测试的代码: print('hello world') 运行并查看结果。 结果输出正常则安装完毕。

Spark入门(一篇就够了)

文章目录 引言1. Spark 基础1.1 Spark 为何物1.2 Spark VS Hadoop1.3 Spark 优势及特点1.3.1 优秀的数据模型和丰富计算抽象1.3.2 完善的生态圈-fullstack1.3.3 spark的特点 1.4 Spark 运行模式 2. Spark Core2.1 RDD详解2.1.1 RDD概念2.1.2 RDD属性2.1.3 RDD API2.1.3.1 RDD 的创建方式2.1.3.2 RDD 算子 2.1.4 RDD 持久化/缓存2.1.4.1 persist 方法和 cache 方法2.1.4.2 存储级别 2.1.5 RDD 容错机制Checkpoint2.1.6 RDD 的依赖关系2.1.7 DAG 的生成和划分 Stage2.1.7.1 DAG 2.1.7.2 DAG 划分Stage 2.1.8 RDD累加器和广播变量2.1.8.1 累加器2.1.8.2 广播变量 3. Spark SQL3.1 Spark SQL 概述3.2 数据分类3.3 Spark SQL 数据抽象3.3.1 DataFrame 和 DataSet3.3.2 举例 3.4 Spark SQL 应用3.

基于javaweb的图书管理系统

一、系统简介 本项目采用eclipse工具开发,jsp+servlet技术编写,样式采用了layui前端框架,数据库采用的是mysql,navicat开发工具。 系统一共分为2个角色分别是:管理员,学生 二、模块简介 管理员 1、登录 2、修改个人信息 3、图书类型管理 4、图书管理 5、图书借阅管理 6、借阅审批管理 7、图书借阅统计 8、学生管理 9、公告管理 学生 1、登录、注册 2、个人信息修改 3、图书借阅 4、借阅管理 5、借阅统计 6、查看公告 三、相关截图 项目结构、数据库结构 登录注册页面 图书类型管理 图书管理 学生管理 审批管理 借阅管理 公告管理 管理员统计 学生统计 图书借阅 借阅历史 四、相关代码 登录代码 用户通过login.jsp页面填写指定的用户名和密码,点击登录按钮,执行servlet里面的方法,后台校验成功后,返回main.jsp <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; %> <!DOCTYPE html> <html> <head> <meta charset="

黑马程序员最新版JavaWeb综合案例(前后端完整版)

JavaWeb 综合案例 学习视频链接: 黑马程序员最新版JavaWeb基础教程,Java web从入门到企业实战完整版 完整代码链接: https://github.com/HaiLei-Fly/JavaWeb-brand 1、功能介绍 案例功能: 用户登录(账号密码登录)用户注册(新用户注册账号)查询所有(查询所有品牌数据)新增品牌(增加新的品牌数据)修改品牌(修改品牌数据)删除品牌(删除品牌数据)批量删除(删除多条品牌数据)分页查询(分页展示品牌数据)条件查询(通过条件精确查询品牌数据) 2、工程准备 2.1 所需环境 MySQL 8.0.22 JDK 11.0.10 MAVEN 3.6.0 Navicat 16 IDEA 2021.3.3 pom.xml文件如下 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>brand-case</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <properties> <maven.compiler.source>11</maven.compiler.source> <maven.compiler.target>11</maven.compiler.target> </properties> <dependencies> <!--Servlet--> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> <!--jsp--> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.2</version> <scope>provided</scope> </dependency> <!--jstl--> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <version>1.1.2</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.