当前位置: 首页 > news >正文

软件工程个人项目

3123004548软件工程个人项目

这个作业属于哪个课程 <https://edu.cnblogs.com/campus/gdgy/SoftwareEngineering2024>
这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/Class34Grade23ComputerScience/homework/13477
这个作业的目标 <设计一个能处理长文本的论文查重算法>

声明:本算法实现的测试环境为python 3.11

GitHub链接:https://github.com/Ascrio/3123004548

PSP表格相关记录

PSP2 1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 15 10
Estimate 估计这个任务需要多少时间 330 355
Development 开发 15 15
Analysis 需求分析(包括学习新技术) 30 30
Design Spec 生成设计文档 10 10
Design Review 设计复审 15 15
Coding Standard 代码规范(为目前的开发制定合适的规范) 10 20
Design 具体设计 30 50
Coding 具体编码 120 100
Code Review 代码复审 5 10
Test 测试(自我测试,修改代码,提交修改) 15 30
Reporting 报告 15 10
Test Report 测试报告 15 10
Size Measurement 计算工作量 20 25
Postmortem & Process Improvement Plan 事后总结,并提出过程改进计划 15 20

模块接口的设计与实现过程

设计概述

采用基于余弦相似度算法的词袋模型,设计了该论文查重功能,并通过DocumentComparator类来封装整个查重算法功能,并采用面向对象的方式组织代码,确保模块化和可维护性

函数设计以及调用模块展示

核心函数DocumentComparator类包括以下函数

1._ init _():初始化jieba分词器

2.fetch_document_data(): 读取文档内容

3.process_content(): 对内容进行分词和预处理,同时构建词汇表

4.compute_document_similarity(): 余弦相似度算法计算两个文档的相似度

5.execute_comparison(): 执行完整的比较流程

辅助函数primary_function()则负责处理命令行参数和程序流程

各函数之间调用模块关系如下

diagram

算法设计于与流程展示

1.对指定的文本进行jieba分词器处理,将文本处理成词语序列,同时过滤处理文本中出现的符号

2.读取源文档和目标文档,并对两个文档进行分词和过滤处理

3.使用gensim构建词袋模型(Bag-of-Words Model)

4.计算文本余弦相似度,并将结果标准化到[0,1]范围

5.输出结果至文件

核心函数DocumentComparator 流程图如下

4e4ac3f0d27a53bf62d2b7fc46da9462

算法的关键点在于文本分词以及词袋模型的构建,文本分词为文档转换成词频向量做了铺垫,而词袋模型的构建是文本查重算法实现的基础核心

该算法实现简单,无需复杂的语义分析,适合处理大量文档,且对词序不敏感能够实现检测内容重复而非结构化抄袭,同时不依赖词典库

模块接口的性能改进

最初代码采用基于给定停用词列表的simhash算法,经运行后得出性能分析图如下

image

后经研究发现,代码对停用词列表高度依赖且算法因为反复查看停用词导致算法的时间成本耗费很大,同时存在多处函数开销极大的情况(如_find_and_load函数)

同时,该算法存在无法区分差距较大的文本,导致即使文本完全不同,也有50%以上的相似度,如下图所示

image

经过代码改进,性能图如下

image

可见,函数平均时间耗费有所降低,且函数利用得到有效提升

同时,对于差异较大的文本,该算法能够完全区分并且以此给出较低的相似度

image

在改进版的算法中,虽然消耗最大的函数依旧为_find_and_load函数,但是函数的平均开销相比前者有所降低,性能得到一定改进

运行结果展示

如下展示两个相似文本orig.txt和orig_0.8_add.txt的运行结果

将两个文本的路径代入后,输入两个txt文件的路径,显示运行结果图如下

image

显示结果为99.17%,符合结果预期

模块部分单元测试展示

为了测试代码稳定性,设计了18处测试代码paperchecker.py,经测试改进代码已全部通过

image

考虑篇幅限制,此处仅展示3处测试代码

测试一:对于完全相同的文本,相似度应为1

def test_similarity_calculation_identical(self):text1 = "这是一个完全相同的测试文本"text2 = "这是一个完全相同的测试文本"processed1 = self.comparator.process_content(text1)processed2 = self.comparator.process_content(text2)similarity = self.comparator.compute_document_similarity(processed1, processed2)self.assertAlmostEqual(similarity, 1.0, delta=0.1)

测试二:对于完全不同的文本,相似度应小于0.4

def test_similarity_calculation_different(self):text1 = "这是第一个测试文本,关于人工智能和机器学习"text2 = "恐惧是生物的本能,勇气是人类的赞歌"processed1 = self.comparator.process_content(text1)processed2 = self.comparator.process_content(text2)similarity = self.comparator.compute_document_similarity(processed1, processed2)self.assertLess(similarity, 0.4)

测试三:对于一个有文本的文件和一个没有文本的文件,相似度应为0

   def test_one_empty_file_processing(self):content = "这是一个有内容的文件"with tempfile.NamedTemporaryFile(mode='w', delete=False, encoding='utf-8') as f:f.write(content)temp_file1 = f.namewith tempfile.NamedTemporaryFile(mode='w', delete=False, encoding='utf-8') as f:temp_file2 = f.nameprocessed1 = self.comparator.process_content(content)processed2 = self.comparator.process_content("")similarity = self.comparator.compute_document_similarity(processed1, processed2)self.assertEqual(similarity, 0.0)os.unlink(temp_file1)os.unlink(temp_file2)

测试结束后,以覆盖率(pycharm自带功能)运行代码,结果如下图所示

f7a92ba751826db10221f3e8a3df46c1

模块部分异常处理说明

异常一:文档读取阶段异常

目标:当用户传入的文档路径无效(如文件不存在、无权限、编码错误等),避免程序因 FileNotFoundError、UnicodeDecodeError等异常而中断
处理方式:使用 try-except捕获所有可能的读取异常,打印具体错误信息,并返回空字符串 ""作为兜底内容

def fetch_document_data(self, document_location):try:with open(document_location, 'r', encoding='UTF-8') as file_obj:return file_obj.read()except Exception as error:print(f"文档读取异常 {document_location}: {error}")return ""

对应代码测试片段如下

class TestDocumentFetcher(unittest.TestCase):def test_fetch_nonexistent_file(self):comparator = DocumentComparator()result = comparator.fetch_document_data("dummy_nonexistent_file_12345.txt")self.assertEqual(result, "")  # 应返回空字符串

异常二:内容处理阶段异常

目标:对读取到的原始内容进行分词和过滤,但如果传入的内容为空(比如上个阶段读取失败返回了 ""),则直接返回空列表,避免后续处理出错。
处理方式​​:首先判断 content_data是否为空,如果是,则返回空列表 [],而不是继续分词。

def process_content(self, content_data):if not content_data:  # 处理空字符串(包括空文件)return []segmented_data = jieba.lcut(content_data)filtered_result = []for segment in segmented_data:if re.match(r"[a-zA-Z0-9\u4e00-\u9fa5]", segment):  # 保留中/英文字符和数字filtered_result.append(segment)return filtered_result

对应代码测试片段如下

def test_process_empty_content(self):comparator = DocumentComparator()result = comparator.process_content("")self.assertEqual(result, [])  # 空内容应返回空列表

模型改进建议及使用说明

模型改进建议

该模型存在以下局限性

1.对于短文本且近义词占比较多的相似文本,算法难以区分其相似度并会给出低于期望的相似度

2.难以区分极少数可能存在前后文关系的亦或是语序关系的文本

基于该局限性,给出如下可能改进方向

1.引入新模型,考虑词汇序列等信息

2.结合语义向量,使用深度学习模型

使用说明

main.py

运行时,用户需往命令行里输入对应格式

python main.py [原文文件路径] [抄袭版论文的文件路径] [答案文件路径]

image

输入后,函数将输出结果至答案txt文件中

image

paperchecker.py

运行时,需确保main.py文件存在且包含DocumentComparator类,往命令行输入python paperchecker.py即可运行18种单元测试,并给出对应结果

image

相关文章:

软件工程个人项目

软件工程个人项目3123004548软件工程个人项目这个作业属于哪个课程 <https://edu.cnblogs.com/campus/gdgy/SoftwareEngineering2024>这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/Class34Grade23ComputerScience/homework/13477这个作业的目标 <设计一个…...

学习道路道阻且长 希望自己坚持下去

本人是一名专升本的大三学生 现在专业是软件工程专业 从今天开始学习java 翻了一下资料 发现很多人建议从前端开始学习 在专科学习中 也学过相应的基础知识,不过遗忘程度可能有点严重。对于语言的基本语法掌握需要加强巩固,希望自己好好坚持下去,努力学习。...

2025/9/18 总结

A 用时:2h 预期:100pts 实际:100pts 求出前缀和,\(s_k+s_i \text{xor} s_k\),考虑从高到低贪心,如果 \(s_i\) 的 \(j\) 位为 \(1\),不管如何贡献都有 \(2^j\),如果 \(s_i\) 的第 \(j\) 位为 \(0\),则 \(s_k\) 的第 \(j\) 位为 \(1\) 有 \(2_{j+1}\) 贡献,用高维前缀和…...

P2216 [HAOI2007] 理想的正方形

P2216 [HAOI2007] 理想的正方形#include <bits/stdc++.h> using namespace std;const int maxn = 1e3 + 10; int a,b,n; int c[maxn][maxn]; deque <int> dq1,dq2; int max1[maxn][maxn],min1[maxn][maxn]; int max2[maxn][maxn],min2[maxn][maxn];int ans = 2e9;i…...

PuTTY下载和安装

下载地址: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html更改安装路径创建桌面快捷方式...

数据通路-单总线结构(最头晕的一集)

数据通路就是数据在各个部件之间传输的路径(包括路径上的部件) 控制信号是有控制部件产生的 数据通路的结构 1cpu内部单总线方式 2cpu内部多总线方式 3专用数据通路方式 内部总线 是指同一个部件,如cpu内部链接各寄存器以及运算部件之间的总线; 系统总线 是指同一台计算机系…...

python基础篇-集合

集合 :集合内的数据不重复,但是数据是无序的创建集合 {} 或者set()注: 创建空集合只能用set(), 因为{}已经被字典占用了eg: s1 = {10, 20 ,40,30 }eg: s2 = set(abcdefg) :用set创建,序列会被拆开 = 》 {’a, b, c, d, e, f, g}集合的操作:1.增加s1.add() 增加单个数据…...

#egsg:在同一程序中比较-计算圆的面积

以下是一个同时使用easygui和pysimplegui实现的圆形面积计算程序,通过菜单让用户选择使用哪种GUI库: import math import easygui import PySimpleGUI as sgdef easygui_calculator():"""使用easygui实现的版本"""title = "圆形面积计算器…...

282 项多模态胃肠病学数据集:适配 VLM 与 MLLM 微调,融合医学图像与临床文本的医疗 AI 训练数据

​ 获取更多高质量数据集,请访问典枢数据交易平台:https://dianshudata.com一、引言与背景 在医疗人工智能领域,胃肠病学的智能化诊断与分析始终依赖高质量数据的支撑,而视觉语言模型(VLM)与多模态大型语言模型(MLLM)的崛起,为整合医学图像与文本信息、提升临床决策效…...

2-sat板子

vector<int>e[maxn]; int n,m; int inscc[maxn]; int low[maxn],dfn[maxn]; stack<int>stk; int instk[maxn]; int tot,cnt; vector<int>scc[maxn];void dfs(int u,int fa){low[u]=dfn[u]=++tot;stk.push(u);instk[u]=1;for(int v:e[u]){if(!dfn[v]){//树边d…...

centos 7中安装jenkins

1.安装java11 [root@localhost ~]# yum install -y java-11-openjdk-devel [root@localhost ~]# java --version openjdk 11.0.23 2024-04-16 LTS OpenJDK Runtime Environment (Red_Hat-11.0.23.0.9-2.el7_9) (build 11.0.23+9-LTS) OpenJDK 64-Bit Server VM (Red_Hat-11.0.2…...

pythonjs逆向 破解滑动验证码 - hello-*

现在的滑动验证码防盗等级都比较高,之前的是一张完整的图片带缺口,现在返回的图片是打乱顺序拼接而成的,所以现在破解不仅要识别滑块的缺口,同时还需要复原完整的图片一.伪造请求获取验证码图片可以看到请求中主要的两个参数ctxid和request,所以我们只需要找到这两个参数的…...

解决 pandas.to_csv 乱码、丢失行和自动换行问题 时间转换

解决 pandas.to_csv 乱码、丢失行和自动换行问题-百度开发者中心 https://developer.baidu.com/article/details/2792989 在使用 pandas.to_csv 函数时,可能会遇到一些问题,如乱码、丢失行和自动换行等。这些问题通常是由于编码格式、数据类型或文件写入方式不当引起的。下面…...

JavaDay7

数组 数组的定义数组是相同类型数据的有序集合。 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。 其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们。数组声明创建首先必须声明数组变量,才能在程序中使用数组。下面是声明数组…...

前端场景题笔记

先说背景再说方案 1. js超过number最大值的数怎么处理? 换数据类型。 2. 如何解决页面请求接口大规模并发问题? 请求队列,Push,shift。防抖节流。 3. 大文件上传? 前端切片,标记唯一值,后端整合。 4. 前端怎么实现截图? Canvas(基于html的绘图工具)(…...

P3934 [Ynoi Easy Round 2016] 炸脖龙 I 做题记录

欧拉函数前置芝士:扩展欧拉定理 题目大意 给一个长为 \(n\) 的序列,\(m\) 次操作,每次操作:区间 \([l,r]\) 加 \(x\); 对于区间 \([l,r]\),查询:\[{a_l}^{{a_{l+1}}^{{a_{l+2}}^{{\dots} ^{a{r}}}}} \mod p \]思路 首先我们有: \[a^k\equiv \left\{\begin{matrix}a^k, …...

【CompletableFuture 核心操作全解】详细注释版

一、任务创建操作 1. runAsync() - 执行无返回值的异步任务 /*** 创建并执行无返回值的异步任务* * @param runnable 要执行的任务逻辑(无返回值)* @return CompletableFuture<Void> 表示任务执行状态的Future对象* * 特点:* - 任务在ForkJoinPool.commonPool()中执行…...

关于学术不端的一些思考

前言 由图书馆性骚扰事件,牵扯出学术不端行为,最后撤销硕士学位。正应了那句“来说是非者,便是是非人”。学术不端 中华人民共和国学术不端问题包括论文抄袭、洗稿、代写、造假、买卖、学历学位认证失信行为、掠夺性开放获取出版、批量引进海外“速成博士”等。 国际上一般指…...

python基础-字典

字典:以键值对的方式存储 { key: value, key2:value2} 初始化空字典: dict2 = {} 或者dict3 = dict() 字典的常见操作:1.增加 dict1[id] = 1101 如果key = id不存在,则新增key和value对应的键值对; 如果key = id的已存在,则修改覆盖key = id对应的value的值2.删除del …...

pod 内nslookup请求时常异常

pod 内nslookup请求时常异常 现象原因 装机模板中在 /etc/resolv.conf 添加了 search tbsite.net 。 kubelet clusterfist 会自动将宿主机的 search 追加到 search default.svc.cluster.local svc.cluster.local 之后。 解决方式 清理 node 上的 search 记录。业务 pod 需要重启…...

单调队列优化DP

董晓一系列都可以做下来 https://www.bilibili.com/video/BV19X4y1m7Sb dp题单 https://www.luogu.com.cn/training/853282...

4.5.11版本闪亮登场~快来看看有哪些新功能

产品更新概览 功能修复: 修复检测更新失败问题; 修复iframe组件存放文件夹无法打开问题; 修复二维地图部分场景加载失败问题; 修复项目发布后无法获取数据问题; 修复访客免验证登录校验问题。 功能优化: 优化数据刷新逻辑; 鲸孪生标记性能优化; 图标组件性能优化; 优化…...

教你数分钟内创建并运行一个 DolphinScheduler Workflow!

本文就主要探讨如何在 ApacheDolphinScheduler 上更好地玩转 Workflow, 以帮助大家更好地管理数据处理任务。Workflow是什么? 对于数仓场景和数据湖场景来说,最显著的特点就是数据处理的长流程和高复杂度任务依赖关系,从源数据采集到最终报表数据的生成,中间可能经历上百个…...

AT_agc065_b [AGC065B] Erase and Insert

倒过来看,每次将 \(p\) 中 \(i\) 随便放到一个位置,那么在放 \(i\) 之前,你需要保证 \(1 \sim i - 1\) 的相对顺序递增,然后就可以 DP 了。 另外一种做法是题解区第一篇。...

《大模型时代——智能体的崛起与应用实践(微课视频版)》

在人类技术演进的长河中,人工智能(Artificial Intelligence,AI)无疑是最具革命性的篇章之一。随着科技的飞速发展,人类迎来了一个全新的纪元—大模型时代。本章旨在深入剖析这一时代的内涵,从大模型的基本概念出发,探索其发展历程,关键技术要素,核心价值,以及支撑其发…...

第三节:GoLangChain提示词(Prompts)处理详解

在使用大语言模型(LLM)时,提示词(Prompt)是与模型交互的关键。良好的提示词设计能够显著提升模型输出的质量。本文将基于langchaingo库,详细介绍Go语言中处理提示词的几种主要方式。 1. 引言在与大语言模型交互时,提示词的设计至关重要。LangChain框架提供了一套完整的提示词…...

rhel8 中vdo 邏輯卷的邏輯擴容

物理盤 = 500G vdo size = 2000G 擴容到5000Gumount /home/repo vdo stop --name=vdo01 vdo growLogical --name=vdo01 --vdoLogicalSize=5000Gdf --human-readable /home/repoxfs_growfs /dev/mapper/vdodf --human-readable /home/repovdostats --human...

Codeforces Round 1051 (Div. 2) 部分题解

D E F 题解Codeforces Round 1051 (Div. 2) 部分题解 D - Inversion Graph Coloring 理解成二分图,图中没有奇环,等价于序列不存在 \(i<j<k\) 使得 \(a_i>a_j>a_k\) 。 设 \(f_{i,x,y}\) 表示前 \(i\) 个数,当前序列最大值为 \(x\) ,下一个不能取小于 \(y\) 的…...

kingbase金仓数据库的密码有效期和密码复杂度

Kingbase金仓数据库提供了密码有效期和复杂度配置功能,可以通过以下方式进行设置: 一. 密码有效期配置 插件identity_pwdexp identity_pwdexp是KingbaseES的一个扩展插件,用于设置口令有效期。 KingbaseES的用户管理中含有口令有效期这一属性,用户密码过期检查就是通过设置…...

HDF5文件

掌握HDF5文件:先理解核心结构(打基础),再学C#读写库(搭环境),最后实战读写操作(练手)。 全程结合代码示例,确保新手能跟上。 阶段1:先搞懂HDF5文件的核心结构(必须先理解!) HDF5(Hierarchical Data Format 5)是一种分层结构的二进制文件格式,专门用于存储和管…...

Error encountered when performing Introspect the Portion of idea Introspect using JDBC metadata在哪设置

Error encountered when performing Introspect the Portion of 最新解决方案&新版本idea Introspect using JDBC metadata在哪设置?前言 使用idea2025专业版(MAC)连接mySQL后无法显示表结构,并且报错 Error encountered when performing Introspect the Portion of 1 …...

核桃 CSP-S 模拟

核桃 CSP-S 模拟 T3 题意: 给定一个 \(01\) 串,选定一个操作序列,每次从原串中删除一个数,保持原串中相对顺序不变,把形成的新字符串加入答案字符串,求出本质不同答案字符串总数。 其中 \(n\le 400\) 思路: 我们不妨把题意转化一下,对于每一个节点赋值 \(t_i\) 表示 \(…...

正确输入连字号、连接号、破折号和负号

转载:Pigman - 博客园: 正确输入连字号、连接号、破折号和负号论文书写和报告编制中,经常出现连字号、连接号、破折号和负号的混淆使用,既不符合规范也影响文档美观。下面对这组符号进行区分,并给出word下正确输入方法。连字号 (Hyphen),[-] 1) 英语中的复合词,…...

9 月记录

P13644 K-LCA 给出树和 \(k\),每次询问给出区间 \([l,r]\),找到选择 \(k\) 个区间内的点使得 LCA 深度最大。 \(n,q\le 10^5,1<k\le n\)。考虑回滚莫队,每次加入一个点,二分最深的子树个数 \(\ge k\) 的祖先,可以做到两个 \(\log\)。 考虑树链剖分,标号是先标号轻儿子…...

python基础-元组

元组: 一个元组可以存储多个数据,切元组内的数据是不可更改 t1 = (10,20,30)t2 = (10,)t3 = 10, 元组操作:元组不支持修改,只支持查找tuple.index()访问:下标访问: tuple[index]统计某项元素出现的次数: tuple.count(item)元组的长度: length = len(tuple)目标元素的位置…...

.net core中获得程序集以及注入框架的方法总结

虚方法public class Animal { // 虚方法 public virtual void MakeSound() { Console.WriteLine("动物发出声音"); } }public class Dog : Animal { // 重写虚方法 public override void MakeSound() { Console.WriteLine("汪汪汪!"); } }var sss = Assem…...

python基础篇-list(列表)

list:列表中可以一次性存储多个数据,且数据项的类型可以不同 常见操作:1.查找下标访问,查找某个位置的数据项: list[index]查找某个数据项首次出现的下标: list.index[item, 开始位置下标, 结束位置下标];如果存在则返回出现位置下标,如果不存在,则报错出现的次数: li…...

vscode使用powershell中文乱码

VSCode使用终端中文乱码 原因: vscode编辑文本默认使用utf-8,但是windows的终端默认使用gbk(简体中文)编码。utf-8采用1-4位记录一个字符,其中中文采用3位。gbk采用两位记录一个中文字符。所以中文显示乱码。 解决方案:先确认终端是中文编码,在终端输入chcp,若输出936表…...

关于如何读懂 P11832 [省选联考 2025] 图排列?

题面太形式化了! 我!根!本!读!不!懂! 这题想要拿分必须转化题面。 初步转化 他只给了我们 \((p_{a_i},p_{b_i})\),然后让我们去找最小的 \(p\)? 没给我 \(a_i,b_i\)?\(a_i,b_i\) 不用刻意构造出来,我们只需要时刻保证 \(a_i,b_i\) 的限制就可以了。 假设我们拿到了最…...

Untitled

Untitled展开思考过程 Hinted 3/5 似乎没有性质,因此考虑做一步转化。 考虑一个点若被同种边通过大于 2 次,那么 必然有一次没有用,考虑每条边可以是区间 +1 或者是区间 -k(k 足够大),要求最终每个点 <0 并且绝对值不是 k 的倍数 让我想到同余最短路,但是我们可以考虑…...

敏感性分析

什么是敏感性分析? 数学模型只是实际问题的一个粗略的抽象,最优解也只是针对某一特定的数学模型。管理者要对未来做各种假设,在这些假设下,测试可能产生的结果,通过对各种结果深入分析来指导决策。通常,在取得最初版本模型的最优解之后,进行分析 才能取得对问题深入的认…...

完整教程:论园区电气安全管理系统的重要性

完整教程:论园区电气安全管理系统的重要性pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !impo…...

基于CSU8RP1186芯片的握力器解决方案

握力器方案采用高精度传感器、ADC芯片和先进的数据处理技术,可将物体的重量以千克和磅为单位进行准确测量和记录,其原理是通过在称重时,握力器传感器的金属构架受力形变,贴片上的金属丝也随着被拉长或缩短,金属丝电阻因此改变,通过测量金属丝的电阻变化,得到所称重物的数…...

亮相2025年服贸会,天翼云打造高质量算力服务新生态!

近日,2025年中国国际服务贸易交易会(简称服贸会)在北京隆重举行。本届服贸会以“数智领航,服贸焕新”作为年度主题,顺应服务贸易数字化、智能化、绿色化趋势,聚焦人工智能、医疗健康、智慧物流、商旅文体健融合发展等专业领域,展示多个国家和地区的创新发展成果。天翼云…...

易路薪酬专家Agent:基于10亿级数据与AI的智能薪酬解决方案

导读: 在AI深度赋能人力资源管理的趋势下,薪酬模块的智能化已成为企业提升人效与战略决策的关键。本文深度解析易路人力资源科技公司最新推出的人才薪酬专家Agent,重点介绍其基于10亿级动态市场数据与多智能体协同(市场数据Agent、薪酬诊断Agent、竞品招聘动态Agent)的核心…...

有点意思!Java8后最有用新特性排行榜!

相信这两天看了 JDK 25 新特性的同学已经彻底对 Oracle 失望了,这那是挤牙膏啊?是连牙膏都懒得挤了。 所以,大家都在评论区喊话,如果你(Oracle)实在不想发可以不发,但不要糊弄大家。 那么,今天呢。我也把从 JDK 8 之后的长期支持版:JDK11、JDK17、JDK21、JDK25 的新特…...

数据结构 Trick 之:KDT 求 k 近/远 点

注意,此 Trick 的时间复杂度是错的,但是貌似目前没人能卡满。 能够解决的问题\(O(n \sqrt n)\) 可过。 维护二维平面。 每次求到一个点的 \(k\) 近或 \(k\) 远点。 \(k\) 很小(\(20\) 左右)思路 二维空间想到 KDTree(TreeKevin Durant Tree)。 众所周知,动态维护 \(k\) …...

.NET 8程序配置版本及产品信息

一、给主程序单独添加配置 1、双击主程序,会打开主程序的.csproj文件,在PropertyGroup下添加 <Company>Your Company</Company><Product>Your Product</Product><Version>1.2.3</Version><FileVersion>1.2.3.0</FileVersion…...

C语言第二讲:进制转化

C语言中进制转化的符号表示进制 数据类型 赋值格式二进制 %0b a=0b1010八进制 %o a=03344十进制 %d a=1234十六进制 %x/%X a=0x34a5 / 0X43D6输出时转化: int a=100; printf("%o",a); 赋值时转化: int a; a=03355//赋值为八进制数...

XXL-JOB(4)

XXL-JOB(4)分片任务 分片任务能更好的利用集群的能力,可以同时调度多个机器并行运行任务。分片任务的实现原理包括以下几个核心步骤:1、任务分配当一个分片任务被触发时,调度器会根据任务的分片参数决定需要多少个执行器参与任务。每个执行器或执行线程会接收到一个分片索…...