mulvus相关知识
参考资料https://www.bilibili.com/video/BV11a4y1c7SW/?spm_id_from=333.880.my_history.page.click
https://milvus.io/
向量给定一个数据,提取其多维度的特征,这些维度中的特征共同组成了该数据在坐标系中的坐标点,从原点指向数据坐标点的带有方向和大小的数据称为向量,一个向量即可在一个坐标系中表示一个数据
向量之间的最近距离可以反应数据的相似程度,从而可以搜索给定数据的近似数据,类似的应用如”以图搜图”,
向量数据库的应用便是,给定一个查询向量,从数据库中找到与查询数据最为相似的一些向量,具有一定模糊性
最近邻
暴力搜索/平坦搜索:给定向量与所有数据库中向量进行比较,搜索质量完美,时间过长
减小搜索范围
聚类
先对数据库中数据使用聚类算法分类,在与查询向量最近的类中查询近似向量
位置敏感哈希
增大哈希碰撞的可能性,用于分桶,桶作为查询范围
对哈希值进行分段分桶
内存开销乘积量化用聚类的中心也叫质心来代替这个范围的向量,会丢失向量的具体值,但可以省去内存开销
给每个类的质 ...
xfire服务的搭建
参考资料SpringBoot2 整合 XFIRE 服务端和客户端_springboot xfire_gblfy的博客-CSDN博客
Attribute “singleton” must be declared for element type “bean”._singletonattribute-CSDN博客
原因某项目有个使用了xfire框架的webservice服务,报错:
sap pi中间件请求会出现此问题,但soapui请求不会,为了在soapui上复现该问题,搭建了一个xfire服务
搭建pom注意springboot版本
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" ...
哈夫曼树
基本概念一棵节点带权值的二叉树,若带权路径长度达到最小,称为最优二叉树,也叫哈夫曼树。权值越大离根节点越近。
带权路径
指当前节点值乘当前节点的层数
树的带权路径长度 WPL 为所有叶子节点的带权路径长度之和,注意是叶子节点,不包括分支节点
构造方法
给定N个权值,N个权值将会构造出一个有N个叶子节点的哈夫曼树。
将N个权值作为N个森林,每个森林的树只有一个节点
在森林中选出两个根节点的权值最小的树合并,作为一棵新的树,新树的根节点权值为其左右子树根节点权值之和。
从森林中删除选取的两棵树,并将新树加入森林。
重复3,4,直到森林中只剩一棵树,该树即为所求哈夫曼树
哈夫曼编码出现频率高的字符编码成较短的二进制数,而出现频率低的字符编码成较长的二进制树,这样可以用更少的比特数表示更多的字符,可应用于如数据压缩。
举例:
对字符串“aaa bb cccc dd e”其中的字符进行哈夫曼编码
统计各个字符出现的次数
a
空格
b
c
d
e
3
4
2
4
2
1
根据出现次数为权值进行哈夫曼树的构造
在树上进行编码,左分支编0,右分支编1
a
空格 ...
字符集
参考资料ASCII码一览表,ASCII码对照表 (biancheng.net)
UTF-8 到底是什么意思?unicode编码简介 - 知乎 (zhihu.com)
相关概念字节序字节序是指计算机存储数据时采用的字节排列顺序,在计算机科学中有两种字节序:大端字节序和小端字节序,大端字节序(Big-Endian)是指最高有效位在最低地址的字节序。小端字节序(Little-Endian)是指最低有效位在最低地址的字节序
BOMBOM是一个特殊的标记符,用于表示文本文件的字节序。
编码ASCII占用一个字节:8位,有效信息存储位7位,首位为0,一共128个字符
二进制
十进制
十六进制
字符/缩写
解释
00000000
0
00
NUL (NULL)
空字符
00000001
1
01
SOH (Start Of Headling)
标题开始
00000010
2
02
STX (Start Of Text)
正文开始
00000011
3
03
ETX (End Of Text)
正文结束
00000100
4
04
EOT (End Of Tran ...
fastjson
参考资料https://alibaba.github.io/fastjson2/spring_support_cn.html
spring框架集成fastjson2fastjson2在集成到spring框架时,引用的模块应该是fastjson-extension
且fastjson针对不同版本的springboot版本做了不同的封装
12345678910111213<dependency> <groupId>com.alibaba.fastjson2</groupId> <artifactId>fastjson2-extension-spring5</artifactId> <version>2.0.40</version></dependency>or<dependency> <groupId>com.alibaba.fastjson2</groupId> <artifactId>fastjson2-exten ...
log4j2
简介log4j2也是slf4j的实现之一,且在logback之后(融入了logback中的特性)
单独使用依赖1234567891011<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core --><dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.22.0</version></dependency><dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.22.0</ve ...
各种license
一张图来自阮一峰的博客,翻译自乌克兰程序员Paul Bagwell
jackson
参考资料https://blog.csdn.net/qq_41834086/article/details/111152470
序列化与反序列化实例实体类
12345678910111213141516171819202122package com.example.demo;public class Person { public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } String username; int age;}
...
encrypt
AES加密AES支持三种长度的密钥:128位、192位、256位,分别称之为AES128、AES192和AES256。
AES加密会把明文拆成一个一个的明文块,每个明文块128bit,如果最后一块长度不足128位,则默认使用缺失的字节数填充。接着对这些明文块分别加密,将加密结果拼接形成最终加密结果。
在加解密过程,每个明文块会作为4*4字节的矩阵进行处理
加密过程包括如下四步
AddRoundKey(轮密钥加)
矩阵中的每个字节都与该次轮密钥(round key)做异或运算
SubBytes(字节替代)
通过非线性的替换函数,用查找表的方式把每个字节替换成对应的字节
ShiftRows(行移位)
将矩阵中的每个横列进行循环式移位
MixColumns(列混淆)
为了充分混合矩阵中各个直行的操作,使用线性转换来混合每列的四个字节。
填充方式
不填充 NoPadding
不进行填充,要求明文必须位16个字节的整数倍。
长度填充 PKCS5Padding(默认)
填充的数据为16-最后一块字节数:相差长度
若明文为16个字节的整数倍,则填充16个字节的数据,其值都为16(16- ...
南京大学计算机科学实验
开发环境配置
非root用户使用sudo执行命令,需将其添加到sudo中,使用命令
123su -add username sudoexit
重启之后生效
在修改镜像的过程中,原教程操作为
1sudo echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ stable main" > /etc/apt/sources.list
虽然使用了sudo,但仍然会报权限问题,经查找,得知该段指令会被分为两步运行,echo 会使用sudo执行,但 > 会使用非sudo身份。
第一种解决方案(避免使用su)
1sudo su -c "echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ stable main" > /etc/apt/sources.list"
第二种(更安全)
1echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ stabl ...
