自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(184)
  • 收藏
  • 关注

原创 AI大模型(三)openAI大模型应用

本文介绍了OpenAI大模型中的分词(token)概念及其应用。token是将文本分词后转换为整数ID的过程,最终形成向量供神经网络处理,例如"猫"可能对应token ID 123。文章展示了使用tiktoken库进行分词和还原的Python代码示例,包括encode/decode操作。此外还演示了如何通过OpenAI API获取模型列表,列出了多个Claude模型及其权限信息。token是连接自然语言与神经网络计算的关键桥梁。

2025-05-24 21:15:00 348

原创 AI大模型(二)embedding模型调用后对产生的数据进行分析

本文介绍了如何使用T-SNE降维技术可视化文本嵌入(embedding)数据,并通过聚类和相似度搜索分析文本数据。首先,通过T-SNE将高维嵌入数据降维至二维空间,并根据评分或聚类结果绘制散点图,直观展示文本的分布和相似性。接着,利用K-Means聚类算法对嵌入数据进行分类,进一步分析文本的类别分布。最后,通过余弦相似度计算,实现基于关键词的相似文本搜索,帮助用户快速找到与目标文本语义相近的内容。这些方法为文本数据的可视化和分析提供了有效的工具。

2025-05-18 09:45:00 195

原创 AI大模型(一)embedding模型的基础使用

隔离性 :虚拟环境为Python项目提供了一个独立的环境,使得每个项目可以拥有自己特定版本的依赖库,而不会干扰其他项目或系统的全局Python环境。清洁开发环境 :保持系统环境的干净,避免安装大量仅用于特定项目或测试的库(测试的库可以安装在测试的虚拟环境中),使得系统级的Python保持简洁,有利于系统稳定性和安全性。首先了解到图片的本质是什么,英文的本质是什么,中文的本质是什么计算机是如何存储的。在AI大模型中所有的数据都是一个个的向量,这些向量数据就是AI大模型的基石。

2025-05-17 15:52:09 758

原创 python高级编程一(生成器与高级编程)

创建生成器,列表生成式,我们知道,只要将最外一层的中括号,改为小括号,⽣成器保存的是算法,每次调⽤ next(g) ,就计算出 g 的下⼀个元素的值,直到计算到最后⼀个元素,没有更多的元素时,抛出 StopIteration 的异常。当然,这种不断调⽤ next() 实在是太繁琐了,虽然是点一次出现一次,但正确的⽅法是使⽤ for 循环,因为⽣成器也是可迭代对象。在计算机的层次上,CPU执行的是加减乘除的指令代码,以及各种条件判断和跳转指令,所以,汇编语言是最贴近。迭代器是⼀个可以记住遍历的位置的对象。

2025-04-12 22:38:34 799 1

原创 python基础学习七(模块化编程)

自定义模块导入,文件需mark为自定义模块写入模块:调用模块以主程序的形式去运行1、包是一个分层次的目录结构,它将一组功能相近的模块组织在一个目录下作用:代码规范避免模块名称冲突包与目录的区别:包是保用_init_.py文件的包的导入:import 包名.模块名使用import方式进行导入的时候,只能跟包名或者模块名使用from方式导入时:可以导入包,模块,函数,变量第三方模块的安装及使用如下演示安装第三方模块schedule

2025-04-08 01:00:00 182

原创 python学习八(简单的学生信息管理系统)

【代码】python学习八(简单的学生信息管理系统)

2025-04-07 11:15:00 343

原创 python基础学习五(python中的对象)

不过,Python 通过 方法解析顺序(Method Resolution Order, MRO) 和 C3 线性化算法 明确规定了继承链的优先级,避免了二义性。所有父类方法都会被调用:只要每个类的 foo() 中都调用了 super().foo(),所有层级的 foo() 都会被依次执行。super() 的协作性:super() 不是直接调用父类的方法,而是根据 MRO 顺序依次调用下一个类的方法。方法解析顺序(MRO):Python 会按照 D -> B -> C -> A 的顺序查找方法。

2025-04-07 09:00:00 412

原创 python基础学习六(编码格式及文件读写相关)

文件对象的常用方法本质上是一个上下文管理器,它实现了特殊的enter方法和exit方法进入和退出方法当有异常情况时exit还是会执行文件赋值写法:OS模块操作目录:os.path操作目录相关函数:列出指定目录下所有的py文件递归的打印所有的:

2025-04-07 04:15:00 119

原创 python基础学习四(常见基础Bug整理)

【代码】python基础学习五(常见基础Bug整理)

2025-04-06 06:30:00 163

原创 python基础学习三(元组及字符串的使用)

lsd# 不允许重复print(s)#使用set#定义空集合s6=set()字符串驻留机制的优缺点:字符串的查询操作的方法:字符串劈分操作的方法。

2025-03-29 21:37:46 267

原创 python基础学习二(列表及字典的使用)

实现在某个范围内查找,不包含范围的stop包含start。一个对象由id,type,value组成。添加元素后源列表不变。长度不一致会以短的那个列表为基准。对列表进行切片会新生成一个对象。列表元素的判断及遍历写法。

2025-03-29 16:08:02 246

原创 Python入门基础

算术运算:先算乘除后算加减有幂运算会先计算幂运算。以上四个计算运算优先级依次递减。从键盘录入两个整数,并求和。还有bool(set())计算1-100之间的偶数和。1-50输出5的倍数的数。输出一个三行四列的矩形。

2025-03-22 22:57:38 1178

原创 响应式编程五股票订阅系统实现

出于测试目的,Reactor 提供了额外的 reactor-test 模块,该模块提供了 StepVerifier。StepVerifier 提供了一个流式 API,用于为任何 Publisher 构建验证流程。验证 Publisher 主要有两种方法。第一种是 StepVerifier.create(Publisher source)。使用此技术构建的测试如下所示在此示例中,Publisher 应生成两个特定元素,后续操作将验证特定元素是否已传递给最终订阅者该类提供的构建器技术可以定义验证过

2024-03-07 22:56:06 1230

原创 响应式编程四Spring WebFlux高阶实战,2W字干货!!

Spring Cloud Gateway 是 Spring 官方基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等技术开发的网关,Spring Cloud Gateway 旨在为微服务架构提供一种简单而有效的统一的 API 路由管理方式。因此,Spring团队在过去几年中的核心挑战,就是如何构建一个新的解决方案,以在使用基于注解的编程模型的同时,提供异步非阻塞服务的所有优势。Spring MVC和Spring WebFlux并不是分立的。

2024-02-14 18:16:05 1448

原创 响应式编程三流处理

concat 操作符通过向下游转发接收的元素来连接所有数据源。当操作符连接两个流时,它首先消费并重新发送第一个流的所有元素,然后对第二个流执行相同的操作。mergemerge 操作符将来自上游序列的数据合并到一个下游序列中。与 concat 操作符不同,上游数据源是立即(同时)被订阅的。打印是乱序的zipzip 操作符订阅所有上游,等待所有数据源发出一个元素,然后将接收到的元素组合到一个输出元素中。combineLatest 操作符与 zip 操作符的工作方式类似。但是,只要至少一个上游数据源发

2024-02-13 18:19:58 1058

原创 响应式编程二Mono,Flux简单介绍

响应式编程是一种面向数据流和变化传播的声明式的编程范式1)Publisher,发布者2)Subscriber,订阅者3)Subscription,发布者和订阅者直接的关系,订阅多少数据4)Processor (reactor 3.5取消)1)对响应式流规范的一种实现2)Spring WebFlux默认的响应式框架3)完全异步非阻塞,对背压的支持4)提供两个异步序列API:Flux[N]和Mono[0|1]5)提供对响应式流的操作。

2023-12-19 22:03:27 2379

原创 响应式编程一之基础夯实(初学必看!)

前五个对应一个输入一个输出,没有输出是消费者,没有输入是生产者。

2023-12-12 22:35:59 205

原创 根据对数器找规律、根据数据量猜题目解法

1)某个面试题,输入参数类型简单,并且只有一个实际参数2)要求的返回值类型也简单,并且只有一个3)用暴力方法,把输入参数对应的返回值,打印出来看看,进而优化code。

2023-12-09 16:41:24 213

原创 有序表常见题型

3,-2,4,3,6,-1] 范围是[1,5]的,假设有一个结构,这个结构是接收前缀和的,那么对于遍历到的当前数x,则需要判断当前数x是否在[1,5]的范围上,以及它的前缀和是否存在落在[sum(x)-5,sum(x)-1]范围上。如【3,6,1,9,2】达标的子数组通过暴力求解的方式时间复杂度为O(N的三次方)【找每个子数组占用O(N的二次方)的时间复杂度,然后再算每个子数组的和占用O(N)的时间复杂度总的占用了O(N的三次方的时间复杂度)】3、这个结构能接收重复的数字(我多个范围可能有相同的前缀和)

2023-12-03 23:32:07 215

原创 SB树,看这一篇就够了

四种违规类型得调整和AVL树一样,不一样得地方就在于谁的孩子变了,则需要重新递归调用,SB树在删除得时候可以不用去做平衡性调整,在加入节点得过程中进行平衡性调整,因为递归是具有传递性的。

2023-09-11 22:59:37 444

原创 AVL树的讲解

总结:LL型违规只用进行一次右旋,LR型违规则需要进行一次小范围的左旋,再执行整棵树的右旋,RL型违规则需要先进行小范围上的右旋,再进行整棵树的左旋,RR型只需要进行一次左旋,时间复杂度均为O(1)如下图加入一个节点X首先看当前X节点是平的,再看X对应的父节点也是平的,最终找到方框标记的节点发现不再平衡了,左树高度为1,右树高度为3,而且是RR型违规。如果此处要删掉7,则需要找到7对应右孩子的最小值8去替换7的位置,调整成如下图的样子,此时只需要从9开始查它的父节点依次调整即可,

2023-08-19 14:19:51 351

原创 资源限制类题目解法,看这一篇就够了!

利用大根堆结构处理,维持了一个门槛,大根堆里面维护一个数字,然后再维护那个数字出现的次数,当新来的数大于大根堆的根节点时则弹出大根堆的头节点,然后让新的数字进来,当堆空间不满足5G的内存空间大小时,将堆中元素输出,再通过临时变量t记录当前堆中最大的节点是哪个,再重新遍历10G的文件跳过小于等于t的元素重新构建新的大根堆从而解决问题。用两bit位信息表示一个数的出现次数,就是找数对应的两位bit位就解决了(0,1两个bit位的数字表示数字0出现的次数),3、hash函数的性质,同一种数字只会进入同一个文件。

2023-08-12 16:01:29 289

原创 当阿里面试官问什么是hash?什么是布隆过滤器?什么是一致性hash?看这一篇就够了,很肝!也很干!

布隆过滤器可以看作是一系列逻辑加位图的整体,假设准备长度为m的bit类型数组,则占用m/8Byte空间,假设准备了三个hash函数,如果此时来了一个str1,str1会先执行hash函数1,将执行的结果对m取模,将得到的结果在bit数组上的某个位置标记,然后str1先执行hash函数2,将执行的结果对m取模,将得到的结果在bit数组上的某个位置标记,最后str1会执行hash函数3,将执行的结果对m取模,将得到的结果在bit数组上的某个位置标记。对于大量的输入,它会非常离散的分布在整个输出域上面。

2023-07-30 09:59:54 201

原创 算法拾遗三十五indexTree和AC自动机

有如上图敏感词信息,首先知道c路径下的一个x节点的fail指针是指向【cde】路径下c下的y节点,x节点从上到下匹配到敏感词abcde中的abc,但是在匹配d的时候失败了,下面所有字符串中哪一个字符串的前缀,它一定跟我必须以c结尾的后缀的一样,且是最长的,如下图abcd中d的fail指针是指向cde中的d节点,它没有去找de而是找的cde。当前来到1位置,我前面没有和我长度为1的凑一对,所以help的1位置填入3,当来到2位置的时候,前面有和我长度为1的凑一对,2位置填入4。你可以继续用ac自动机。

2023-07-12 22:37:02 251

原创 算法拾遗三十四线段树

给定固定长度的数组,然后要在数组给定的范围内完成加法【如数组1,200下标元素加6】,更新【7,375范围数组元素更新为4】,查询操作【查询3到999范围内数组元素的合】1、有如上数组,以及对应的线段树图,在其叶子节点上放置【1-1范围上的和,2-2范围上的和,3-3范围上的和,4-4范围上的和】2的n次方的时候是最省空间的【基本上小于等于2N就够用】,如果是2的某次方加1的时候是最费空间的需要小于等于4N的空间。然后,求max,和求累加和,肯定是不一样的,所以修改 pushUp方法。

2023-06-26 22:59:50 228

原创 算法拾遗三十三Morris遍历

【栈的大小为二叉树的高度】第二个问题:如何发现所有的叶节点,对于能回到自己两次的节点,第二次回到的时候判断其下的是不是叶子节点:如第二次回到b判断d是否是叶子节点,第二次回到a恢复完后判断e是否是叶子节点,最后再判断整棵树的最右节点是否是叶子节点。2)如果cur有左树,则需要找到左树上的最右节点(mostRight),如果mostRight的右指针指向是空的,那么让它指向当前节点,然后cur向左移动。如果知道x的层数,y是x的右孩子,如果y左树上的最右节点指向非x那么y一定在x的下一层。

2023-06-15 00:41:00 279

原创 jetLinks协议开发对接真实设备方式

为了调试可以将jetlinks的协议包拖入到jetlinks-community-master项目里面,建立一个文件夹并把协议包拖进去,再鼠标选中协议包的pom.xml文件右键add as Maven project即完成项目的添加。由于公司内网的原因,只演示到实际调用设备处,由下图可以看出已经去加载协议包对应的dll文件了,则jetlinks和协议包所写的设备代码已经可以实现联动调用了,调研结束。我这里用到的是IPC设备,则打开IPC设备对应的开发文档,根据上面设备的型号去开发文档上面去找。

2023-06-12 14:40:12 3297 6

原创 算法拾遗三十二bfprt算法,蓄水池算法

第三个时间复杂度为:假设数组中有10000个数,要求最大的前一百个,就可以用前面改写快排的方法,求第k小的数,这个例子中就求第10000减去100(9900)小的数,这个时间复杂度为O(N),然后后面的K*logK的时间复杂度为剩下的k个数排序。当吐出10号求以后,现在吐出的是i号球(i>10),f(i)=10/i的概率进入袋子里面,如果i号球要进入袋子,那么袋子中的10个球等概率淘汰一个出去。那么m数组就是中间的方框的内容,如果原数组有N个数那么m数组就是N/5的长度,假设是a,b,c,d,e。

2023-06-08 21:59:00 402

原创 算法拾遗三十一马拉车算法

L-L’(叫甲)关于C的对称就是R‘到R(叫乙)这一段,甲和乙在L-R这个大回文里面,是关于C对称的,甲和乙是逆序的,甲又在i’为中心的回文里面,甲一定是回文,那么乙一定是回文。根据i‘扩出来的回文区域分,i’是小于i的,所以当初是求过i‘扩出来的大小的,而且当初求的答案一定被保存在R里面的。这种情况扩的范围是跟i‘一样的,因为L-R已经是一个回文了,假设i位置和i’位置扩出同样长的区域,2乘以C-i就是i‘,i’的回文半径长度和i-R的距离谁小,谁就是我至少不用验证的区域。

2023-05-30 22:43:47 462

原创 ELK简介

开源的流数据处理、转换(解析)和发送引擎,可以采集来自不同数据源的数据,并对数据进行处理后输出到多种输出源。Logstash是Elastic Stack的重要组成部分Beats 是一套免费且开源的轻量级数据采集器,集合了多种单一用途数据采集器。它们从成百上千或成千上万台机器和系统向 Logstash 或 Elasticsearch 发送数据。Kibana 是一个免费且开放的可视化系统,能够让您对 Elasticsearch 数据进行可视化,并让您在 Elastic Stack 中进行导航。

2023-04-18 23:50:46 1481

原创 算法拾遗三十KMP算法

S1从i位置出发,S2对着0位置出发在S1的x位置和S2的Y位置没有配上,对于S2的每一个位置我们求了个next数组,Y位置前面的最长前后缀串的长度我们是知道的。且i位置的字符和0位置的字符配上了,当我来到s1的x位置的时候和s2的y位置没有配上,那么对于暴力解来说是我彻底放弃已匹配的串然后从s1的i+1位置和s2的0位置重新开始匹配。0到6位置和12到18位置的串相等,如果7位置上面的字符和19位置上面的字符相等那么20位置的next为8【注意:i位置的next值不可能超过i-1位置的next加1】

2023-03-30 23:00:35 283

原创 算法拾遗二十九单调栈结构续及快速矩阵幂

1、二叉树递归套路2、从左往右尝试模型3、范围尝试模型4、样本对应模型5、业务限制模型6、斐波那契数列的矩阵乘法模型。

2023-03-23 22:09:49 267

原创 算法拾遗二十八之单调栈结构

首先0位置的3进去,1位置的4进去,轮到2位置的3发现进不去,需要弹出4,从而得出4的答案,右边离他最近的比他小的到不了,左边离他近的比他小的到不了只能自己乘以自己4乘4等于16。然后3位置的2进来时,2位置的4左边到不了的是1位置的1,右边到不了的是3位置的2,还是只有自己一个单位,通过公式算出结果为2,代表高度为3的自己和高度为4的自己。然后3位置的2入栈,原2位置的4出栈,然后4位置的2进来发现两个算的一样的值,3位置的2不算了,通过4位置的2找联通区域统一算。

2023-03-19 23:17:15 254

原创 算法拾遗二十七之窗口最大值或最小值的更新结构

搞一个窗口,这个窗口就是原始数组的长度,窗口的最小值(最薄弱点)是-5减去出发位置前面一个数,从而还原出原始数组累加和最薄弱点,还原出的结果还是小于0则不是良好出发点,还原出的结果不小于0则是良好出发点。如果L-R已经达标了,那么L-R内部的所有子数组都是达标的,因为L-R范围内部的子数组max在变小,min在变大。2、L向右移动一位,看看R能不能往右扩,再算从L+1位置到能构成条件的子数组有多少个,再累加进结果。暴力解:搞定循环数组的遍历,从0位置出发找是否有解,从1位置出发找是否有解依次找下去。

2023-03-09 22:32:02 468

原创 算法拾遗二十六之暴力递归到动态规划六

0,然后与一下得到limit=1100011,其中1是能放n皇后的位置。如上算是一种解,考虑皇后的时候一行一行的填入皇后,每一行填入一个皇后,这样就不用检查两个皇后是否共行了。同理再定义一个第0行的x位置是皇后放置的位置,或出来三个方框的位置是第一行不能选的。最后是1的不能放皇后是0的可以,然后整体取反变成其他的全1中间的三个1变成三个0。如果y==乙或者甲减去x的绝对值等于y-乙的绝对值【共斜线】之前的某个皇后在(x,y),然后当前位置在(甲,乙)位置。能选的位置是列或上左下与右下还是0的位置。

2023-03-01 22:58:19 332

原创 算法拾遗二十六之暴力递归到动态规划五

英雄第一次砍怪是一个0-M范围的(M+1)次的展开,第二次,第三次砍击都是M+1次的展开【可能性总数为M+1的k次方】它依赖dp(4,10)dp(4,9) dp(4,8)dp(4,7);dp(5,11) = dp(5,10)+dp(4,11)-dp(4,7)可由此推导而出。找依赖关系,假设有dp(5,10),还剩五滴血,可以砍十刀,假设攻击范围为(0,3)则推导为对号=(X+1,a+0)取一个最小值。dp(5,11)依赖于dp(4,11…dp(5,10)依赖于(4,10…分析位置依赖:观察X号位置。

2023-02-16 23:17:11 211

原创 java8函数式接口分布式事务简单实现方式

【代码】java8函数式接口分布式事务简单实现方式。

2023-02-13 23:06:47 489

原创 算法拾遗二十五之暴力递归到动态规划四

如上图所示,假设当前i位置的面值i为3元,当前在第十四列,发现它依赖于(15,14),(15,11)(15,8)(15,5)(15,2)这些位置之和才能得到那个对号的值,那么怎么优化呢?我看星号这个位置,是b+c+d+e,那么推对号则是a+星号的值(发现优化点)推严格表结构是为了建立空间感,发现优化枚举行为可以通过邻近位置推导。如果没有枚举行为记忆化搜索和严格表结构【从表中简单位置推导出复杂位置的解】复杂度一样的好,如果有枚举行为的话,需要搞出。这种情况对号再根据星号来算的话会多算一个d出来。

2023-02-08 22:18:53 119

原创 算法拾遗二十五之暴力递归到动态规划三

马走日字格,并且永远从(0,0)位置出发,且棋盘大小为9*10,然后到达a,b位置,必须走k步。给定一个串,并生成一个逆序串,这个逆序串和原串的最长公共子序列就是最长回文子序列。定义一个函数f(str,L,R),返回在str的L到R上最长回文子序列是多长。(范围尝试模型:特别在意考虑样本的开头和结尾共同结合的可能性如何)最长公共子序列为:1234321就是原串的最长回文子序列。L>R是没用的,正常的范围不会出现L>R的情况。L = R-1的时候,相等就是2,不等就是1。子序列:是可以不连续的。

2023-01-29 23:06:40 239

原创 算法拾遗二十四之暴力递归到动态规划二

假设有0,1,2三个货物,分别有其重量和价值,我们通过从左往右,0号货物在要的时候【不要的时候】1号货物在要的时候【不要的时候】2号货物在要的时候【不要的时候】,每个分支都走,那么就能找到最大值,因为我们暴力枚举了。如上图,终止条件返回1,是因为我的0位置做了决定是A,我的1位置做了决定是A,2位置做了决定是A,3位置终止返回1,我前面做了决定将111,转换为AAA,我3位置只是搜集一个点数。然后b用ac行吗,发现不行,然后b用ka行吗,发现也不行,返回一个系统最大值回去。可以从尝试入手,改动态规划,

2023-01-12 23:32:08 460

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除