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

Oracle数据库数据编程SQL<递归函数详解>

递归函数是一种在函数体内直接或间接调用自身的函数。这种函数通过将复杂问题分解为更小的相同问题来解决特定类型的编程任务。

目录

一、递归函数基本概念

1. 递归定义

2. 递归工作原理

 二、递归函数示例

1. 经典阶乘函数

2. 斐波那契数列

3. 计算数字位数

三、递归查询应用

1. 递归WITH子句(公用表表达式)

2. 层次结构查询(员工-经理关系)

 四、递归函数设计要点

 五、递归与迭代对比

1. 递归与迭代对比

2. 迭代实现阶乘(对比) 

六、递归函数的高级应用

1. 遍历树形结构

2. 解决汉诺塔问题

七、递归的局限性及优化

1. Oracle递归深度限制

2. 尾递归优化

3. 记忆化(Memoization)优化


一、递归函数基本概念

1. 递归定义

递归函数包含两个关键部分:

  • 基准条件(Base Case):确定递归何时结束,避免无限循环

  • 递归条件(Recursive Case):将问题分解为更小的子问题并调用自身

2. 递归工作原理

  • (1)函数检查是否满足基准条件
  • (2)如果满足,返回基准值
  • (3)如果不满足,将问题分解并调用自身处理更小的子问题
  • (4)最终将所有子问题的结果组合成最终解

 二、递归函数示例

1. 经典阶乘函数

CREATE OR REPLACE FUNCTION factorial(p_num IN NUMBER
) RETURN NUMBER
IS
BEGIN-- 基准条件:0!和1!都等于1IF p_num <= 1 THENRETURN 1;ELSE-- 递归条件:n! = n * (n-1)!RETURN p_num * factorial(p_num - 1);END IF;
END factorial;
/-- 调用示例
SELECT factorial(5) FROM dual;  -- 返回120 (5! = 5×4×3×2×1 = 120)

2. 斐波那契数列

CREATE OR REPLACE FUNCTION fibonacci(p_num IN NUMBER
) RETURN NUMBER
IS
BEGIN-- 基准条件IF p_num = 0 THENRETURN 0;ELSIF p_num = 1 THENRETURN 1;ELSE-- 递归条件:F(n) = F(n-1) + F(n-2)RETURN fibonacci(p_num - 1) + fibonacci(p_num - 2);END IF;
END fibonacci;
/-- 调用示例
SELECT fibonacci(10) FROM dual;  -- 返回55 (斐波那契数列第10项)

3. 计算数字位数

CREATE OR REPLACE FUNCTION count_digits(p_num IN NUMBER
) RETURN NUMBER
IS
BEGIN-- 基准条件:单个数字IF p_num BETWEEN -9 AND 9 THENRETURN 1;ELSE-- 递归条件:去掉最后一位后计数+1RETURN 1 + count_digits(TRUNC(p_num/10));END IF;
END count_digits;
/-- 调用示例
SELECT count_digits(12345) FROM dual;  -- 返回5

三、递归查询应用

 Oracle中的递归不仅限于PL/SQL函数,还可以用于SQL递归查询:

1. 递归WITH子句(公用表表达式)

-- 计算1到10的和
WITH recursive_sum(n, total) AS (-- 基准查询SELECT 1, 1 FROM dualUNION ALL-- 递归查询SELECT n+1, total+(n+1)FROM recursive_sumWHERE n < 10
)
SELECT * FROM recursive_sum;/*
结果:
N  TOTAL
1     1
2     3
3     6
4    10
5    15
6    21
7    28
8    36
9    45
10   55
*/

2. 层次结构查询(员工-经理关系)

-- 查找员工的管理链
WITH emp_hierarchy AS (-- 基准查询:从指定员工开始SELECT employee_id, last_name, manager_id, 1 AS levelFROM employeesWHERE employee_id = 110UNION ALL-- 递归查询:向上查找经理SELECT e.employee_id, e.last_name, e.manager_id, h.level + 1FROM employees eJOIN emp_hierarchy h ON e.employee_id = h.manager_id
)
SELECT LPAD(' ', 2*(level-1)) || last_name AS management_chain
FROM emp_hierarchy
ORDER BY level DESC;/*
结果:
MANAGEMENT_CHAINKingHigginsGietz
*/

 四、递归函数设计要点

  1. 必须存在基准条件:确保递归能够终止

  2. 每次递归应使问题更接近基准条件:避免无限递归

  3. 注意递归深度:Oracle有递归深度限制(默认约1000层)

  4. 性能考虑:递归可能比迭代解决方案效率低

  5. 内存使用:深层递归会消耗大量栈空间

 五、递归与迭代对比

1. 递归与迭代对比

特性递归迭代
代码简洁性更简洁通常更冗长
内存使用使用调用栈,可能栈溢出通常更高效
性能函数调用开销大通常更快
适用场景问题自然递归时大多数情况
可读性数学定义清晰时更易读流程更直观

2. 迭代实现阶乘(对比) 

CREATE OR REPLACE FUNCTION factorial_iter(p_num IN NUMBER
) RETURN NUMBER
ISv_result NUMBER := 1;
BEGINFOR i IN 1..p_num LOOPv_result := v_result * i;END LOOP;RETURN v_result;
END factorial_iter;
/

六、递归函数的高级应用

1. 遍历树形结构

CREATE OR REPLACE PROCEDURE print_folder_tree(p_folder_id IN NUMBER,p_level IN NUMBER DEFAULT 0
) ISCURSOR folder_cur ISSELECT folder_id, folder_nameFROM foldersWHERE parent_id = p_folder_id;
BEGIN-- 打印当前文件夹(带缩进)DBMS_OUTPUT.PUT_LINE(LPAD(' ', p_level*2) || 'Folder: ' || p_folder_id);-- 递归处理子文件夹FOR f_rec IN folder_cur LOOPprint_folder_tree(f_rec.folder_id, p_level + 1);END LOOP;
END print_folder_tree;
/

2. 解决汉诺塔问题

CREATE OR REPLACE PROCEDURE hanoi(p_disks IN NUMBER,p_from IN VARCHAR2,p_to IN VARCHAR2,p_aux IN VARCHAR2
) IS
BEGINIF p_disks = 1 THENDBMS_OUTPUT.PUT_LINE('移动盘子 1 从 ' || p_from || ' 到 ' || p_to);ELSE-- 将n-1个盘子从起始柱移动到辅助柱hanoi(p_disks - 1, p_from, p_aux, p_to);-- 移动第n个盘子到目标柱DBMS_OUTPUT.PUT_LINE('移动盘子 ' || p_disks || ' 从 ' || p_from || ' 到 ' || p_to);-- 将n-1个盘子从辅助柱移动到目标柱hanoi(p_disks - 1, p_aux, p_to, p_from);END IF;
END hanoi;
/-- 调用示例
EXEC hanoi(3, 'A', 'C', 'B');

七、递归的局限性及优化

1. Oracle递归深度限制

 Oracle默认递归深度限制约为1000层,可通过以下方式调整:

ALTER SESSION SET recursive_with_clause = 10000;  -- 增加递归WITH限制

对于PL/SQL递归函数,

可通过修改_recursive_with_balancing等隐藏参数调整限制(需DBA权限)

2. 尾递归优化

Oracle PL/SQL不自动执行尾递归优化,但可手动重构:

-- 普通递归
CREATE OR REPLACE FUNCTION sum_to_n(p_n IN NUMBER
) RETURN NUMBER
IS
BEGINIF p_n <= 1 THENRETURN 1;ELSERETURN p_n + sum_to_n(p_n - 1);END IF;
END;
/-- 尾递归形式(Oracle不会优化,但其他语言可能优化)
CREATE OR REPLACE FUNCTION sum_to_n_tail(p_n IN NUMBER,p_acc IN NUMBER DEFAULT 0
) RETURN NUMBER
IS
BEGINIF p_n <= 0 THENRETURN p_acc;ELSERETURN sum_to_n_tail(p_n - 1, p_acc + p_n);END IF;
END;
/

3. 记忆化(Memoization)优化

缓存已计算结果,避免重复计算:

CREATE OR REPLACE PACKAGE fib_pkg ASTYPE num_array IS TABLE OF NUMBER INDEX BY PLS_INTEGER;g_fib_cache num_array;FUNCTION fibonacci(p_n NUMBER) RETURN NUMBER;
END fib_pkg;
/CREATE OR REPLACE PACKAGE BODY fib_pkg ASFUNCTION fibonacci(p_n NUMBER) RETURN NUMBERISBEGIN-- 基准条件IF p_n = 0 THENRETURN 0;ELSIF p_n = 1 THENRETURN 1;END IF;-- 检查缓存IF g_fib_cache.EXISTS(p_n) THENRETURN g_fib_cache(p_n);END IF;-- 计算并缓存结果g_fib_cache(p_n) := fibonacci(p_n - 1) + fibonacci(p_n - 2);RETURN g_fib_cache(p_n);END;
END fib_pkg;
/

递归函数是解决分治问题和层次结构处理的强大工具,但需要谨慎设计以避免性能问题和栈溢出错误。在Oracle环境中,对于深度递归问题,有时使用迭代方法或递归WITH子句可能是更好的选择。

相关文章:

Oracle数据库数据编程SQL<递归函数详解>

递归函数是一种在函数体内直接或间接调用自身的函数。这种函数通过将复杂问题分解为更小的相同问题来解决特定类型的编程任务。 目录 一、递归函数基本概念 1. 递归定义 2. 递归工作原理 二、递归函数示例 1. 经典阶乘函数 2. 斐波那契数列 3. 计算数字位数 三、递归查…...

Burp Suite从入门到实战之配置启动

目录 1.Burp Suite配置启动 1.1安装Burp Suite jar包 1.2JDK&#xff0c;JDK包含JRE&#xff08;Java运行时环境&#xff09; 1.2.1配置JDK11环境变量配置 1.2.2系统变量里添加JAVA_HOME​编辑 1.2.3找到Path变量进行编辑添加bin 1.2.4命令行查看是否配置成功 1.3激活j…...

【力扣hot100题】(016)缺失的第一个正数

题目里这么多条条框框……先不按条条框框做了两下。 第一个思路&#xff1a;你不仁我不义&#xff0c;先排序后遍历&#xff08;时间不符题意&#xff09; class Solution { public:int firstMissingPositive(vector<int>& nums) {sort(nums.begin(),nums.end());i…...

(undone) MIT6.824 Lecture 02 - RPC and Threads

知乎专栏&#xff1a;https://zhuanlan.zhihu.com/p/641105196 原视频&#xff1a;https://www.bilibili.com/video/BV16f4y1z7kn?spm_id_from333.788.videopod.episodes&vd_source7a1a0bc74158c6993c7355c5490fc600&p2 看知乎专栏 一、Why we choose go&#xff1f…...

红宝书第二十一讲:详解JavaScript的模块化(CommonJS与ES Modules)

红宝书第二十一讲&#xff1a;详解JavaScript的模块化&#xff08;CommonJS与ES Modules&#xff09; 资料取自《JavaScript高级程序设计&#xff08;第5版&#xff09;》。 查看总目录&#xff1a;红宝书学习大纲 一、模块化的意义&#xff1a;分而治之 模块化解决代码依赖混…...

输入百分比校验(数字非负数保留2位不四舍五入)

场景用于输入百分比&#xff0c;限制只能输入非负数&#xff0c;保留2位小数&#xff0c;且不四舍五入 以下举例环境 vue2 element-ui 请自行根据实际场景使用 html部分 <el-inputv-model"item.percentage"placeholder"请输入"maxlength"5"…...

Python----机器学习(KNN:决策边界,决策边界计算,交叉验证步骤)

一、KNN算法简介 1.1、定义 KNN&#xff08;K-Nearest Neighbor&#xff09;算法是一种基于实例的学习方法&#xff0c;通过测量数据点之间的距离进行分类或回归分析。它是一种简单易懂的多分类技术&#xff0c;依赖于距离最近的邻居来推断数据点的类别或数值&#xff0c;为许…...

SpringBoot 3+ Lombok日志框架从logback改为Log4j2

r要将Spring Boot 3项目中的日志框架从Logback切换到Log4j2&#xff0c;并配置按日期滚动文件和控制台输出&#xff0c;请按照以下步骤操作&#xff1a; 步骤 1&#xff1a;排除Logback并添加Log4j2依赖 在pom.xml中修改依赖&#xff1a; <dependencies><!-- 排除默…...

实战篇Redis

黑马程序员的Redis的笔记&#xff08;后面补一下图片&#xff09; 【黑马程序员Redis入门到实战教程&#xff0c;深度透析redis底层原理redis分布式锁企业解决方案黑马点评实战项目】https://www.bilibili.com/video/BV1cr4y1671t?p72&vd_source001f1c33a895eb5ed820b9a4…...

c++-函数增强

一、编译器对函数名的处理 1. C与C的差异 C编译器&#xff1a;保留原始函数名&#xff0c;无额外处理。例如&#xff1a; int add(int a, int b) { return a b; } 在汇编代码中仍为add。 C编译器&#xff1a;通过name mangling&#xff08;名称修饰&#xff09;生成唯一函数…...

BKA-CNN-GRU、CNN-GRU、GRU、CNN四模型多变量时序预测(Matlab)

BKA-CNN-GRU、CNN-GRU、GRU、CNN四模型多变量时序预测&#xff08;Matlab&#xff09; 目录 BKA-CNN-GRU、CNN-GRU、GRU、CNN四模型多变量时序预测&#xff08;Matlab&#xff09;预测效果基本介绍程序设计参考资料 预测效果 基本介绍 BKA-CNN-GRU、CNN-GRU、GRU、CNN四模型多…...

css基础之浮动相关学习

一、浮动基本介绍 在最初&#xff0c;浮动是用来实现文字环绕图片效果的&#xff0c;现在浮动是主流的页面布局方式之一。 效果/代码 图片环绕 代码 div {width: 600px;height: 400px;background-color: skyblue;}img {width: 200px;float: right;margin-right: 0.5em;}<…...

告别分库分表,时序数据库 TDengine 解锁燃气监控新可能

达成效果&#xff1a; 从 MySQL 迁移至 TDengine 后&#xff0c;设备数据自动分片&#xff0c;运维更简单。 列式存储可减少 50% 的存储占用&#xff0c;单服务器即可支撑全量业务。 毫秒级漏气报警响应时间控制在 500ms 以内&#xff0c;提升应急管理效率。 新架构支持未来…...

1.3 斐波那契数列模型:LeetCode 746. 使用最小花费爬楼梯

动态规划解最小花费爬楼梯问题&#xff1a;LeetCode 746. 使用最小花费爬楼梯 1. 题目链接 LeetCode 746. 使用最小花费爬楼梯 题目要求&#xff1a;给定一个整数数组 cost&#xff0c;其中 cost[i] 是从楼梯第 i 阶向上爬所需支付的费用。你可以从下标 0 或 1 的台阶开始爬&a…...

8.4考研408简单选择排序与堆排序知识点深度解析

考研408「简单选择排序与堆排序」知识点全解析 一、简单选择排序 1.1 定义与核心思想 简单选择排序&#xff08;Selection Sort&#xff09;是一种选择排序算法&#xff0c;其核心思想是&#xff1a; 每趟选择&#xff1a;从待排序序列中选择最小&#xff08;或最大&#x…...

【个人笔记】用户注册登录思路及实现 springboot+mybatis+redis

基本思路 获取验证码接口 验证码操作用了com.pig4cloud.plugin的captcha-core这个库。 AccountControl的"/checkCode"接口代码&#xff0c;通过ArithmeticCaptcha生成一张验证码图片&#xff0c;通过text()函数得到验证码的答案保存到变量code&#xff0c;然后把图…...

LiteDB 数据存储与检索效率优化的最佳实践指导

一、引言 在当今数字化时代,数据处理和存储变得至关重要。对于小型项目或者嵌入式系统而言,需要一种轻量级、高效且易于使用的数据库解决方案。LiteDB 作为一款嵌入式的 NoSQL 数据库,因其零配置、易于集成等特点,受到了开发者的青睐。然而,若要充分发挥其性能优势,就需…...

WEB安全--RCE--RCE的绕过

一、回调函数的绕过&#xff08;PHP&#xff09; 1.1、回调函数 1.1.1、原理&#xff1a; 回调函数&#xff08;Callback Function&#xff09;指的是将函数名或匿名函数作为参数传递给另一个函数&#xff0c;从而在特定条件下调用该函数。 以一个常见的回调函数为例&#…...

uni-app:指引蒙层

组件说明 指引蒙层组件: 通过id标签,突出对应id中的模块; 可以自定义提示词。 点击任意位置关闭蒙层 效果展示和使用示例 切换id之后的效果: 代码实现 <template><view class="guide-mask" v-if="showMask" @click="hideMask"&g…...

什么是CMS?常用CMS有哪些?

一、内容管理系统&#xff08;Content Management System&#xff09;‌ ‌什么是CMS‌&#xff1a;位于 Web 前端&#xff08;服务器&#xff09;和后端办公系统之间的软件系统&#xff0c;用于内容创建、编辑、审批和发布。支持文本、图片、视频、数据库等各类数字内容的管理…...

【Es】基础入门:开启全文搜索的大门

文章目录 一、Elasticsearch 是什么​二、核心概念解读​索引&#xff08;Index&#xff09;​文档&#xff08;Document&#xff09;​映射&#xff08;Mapping&#xff09;​分片&#xff08;Shard&#xff09;​副本&#xff08;Replica&#xff09;​ 三、基本操作入门​安…...

74. Linux设备树详解

一、什么是设备树 1、uboot启动内核用到zImage&#xff0c;imx6ull-alientek-emmc.dtb。bootz 80800000 – 83000000. 80800000 —zImage 83000000—dtb 2、设备树&#xff1a;设备和树。 设备树(Device Tree)&#xff0c;将这个词分开就是“设备”和“树”&#xff0c;描述设…...

从责任链模式聊到aware接口

从责任链模式聊到aware接口 责任链是什么&#xff1f; 责任链模式是一种行为型设计模式&#xff0c;将多个对象连接成一条链&#xff0c;并且沿着这条链传递请求&#xff0c;让多个对象都有机会处理这个请求&#xff0c;请求会顺着链传递&#xff0c;直到某个对象处理它为止。…...

在win11 环境下 新安装 WSL ubuntu + 换国内镜像源 + ssh + 桌面环境 + Pyhton 环境 + vim 设置插件安装

在win11 环境下 新安装 WSL ubuntu ssh gnome 桌面环境 Pyhton 环境 vim 设置插件安装 简单介绍详细流程换国内镜像源安装 ssh 桌面环境python 环境vim 设置插件安装 简单介绍 内容有点长&#xff0c;这里就先简单描述内容了。主要是快速在 Win11 搭建一个 wsl 的 linux 环…...

考研408-数据结构完整代码 线性表的链式存储结构 - 单链表

单链表操作详解&#xff08;C实现&#xff09; 目录 单链表尾插法创建单链表头插法创建删除指定节点按值查找按序号查找插入节点完整代码示例注意事项总结 尾插法创建 #include<bits/stdc.h> using namespace std;typedef struct LNode {int data;struct LNode* next;…...

使用Python爬虫获取淘宝App商品详情

在电商领域&#xff0c;获取商品详情数据对于市场分析、竞品研究和用户体验优化至关重要。淘宝作为国内领先的电商平台&#xff0c;提供了丰富的商品资源。虽然淘宝App的数据获取相对复杂&#xff0c;但通过Python爬虫技术&#xff0c;我们可以高效地获取淘宝App商品的详细信息…...

在 VMware Workstation 17 中安装的 Ubuntu 虚拟机无法使用桥接模式

在 VMware Workstation 17 中安装的 Ubuntu 虚拟机无法使用桥接模式时&#xff0c;通常是由于 网络配置错误、桥接适配器选择不当或主机网络环境限制 导致。以下是详细的排查和解决方法&#xff1a;我采用第一步就解决了问题 1. 检查 VMware 桥接模式配置 步骤 1&#xff1a;…...

2025前端八股文终极指南:从高频考点到降维打击的面试突围战

2025前端八股文终极指南&#xff1a;从高频考点到降维打击的面试突围战 一、2025前端八股文核心考点重构 1.1 新型响应式系统三连问 Vue3信号式响应性&#xff1a; // 信号式响应性底层实现 const [count, setCount] createSignal(0) effect(() > {console.log("当…...

MIPS-32架构(寄存器堆,指令系统,运算器)

文章目录 0 Preview:寄存器32通用0 $zero1 $at2—3 \$v0-$v14—7 \$a0-$a38—15 \$t0-$t716—23 \$s0-$s724—25 \$t8-$t926—27 \$k0-$k128 $gp29 $sp30 $fp 指令系统运算存储器 0 Preview: MIPS架构有32位版本和64位版本&#xff0c;本文介绍32位版本 寄存器 正如笔者曾说…...

MySQL数据库和表的操作之SQL语句

&#x1f3af; 本文专栏&#xff1a;MySQL深入浅出 &#x1f680; 作者主页&#xff1a;小度爱学习 MySQL数据库和表的操作 关系型数据库&#xff0c;都是遵循SQL语法进行数据查询和管理的。 SQL语句 什么是sql SQL&#xff1a;结构化查询语言(Structured Query Language)&…...

Ubuntu在VMware中无法全屏

Ubuntu在VMware中无法全屏 方法&#xff1a;安装open-vm-tools 在Ubuntu打开终端&#xff1a; 1.输入&#xff1a; sudo apt-get install open-vm-tools2.安装依赖&#xff1a; sudo apt-get install open-vm*3.重启Ubuntu reboot...

[C++面试] 智能指针面试点(重点)续3

[C面试] RAII资源获取即初始化&#xff08;重点&#xff09;-CSDN博客 [C面试] 智能指针面试点&#xff08;重点&#xff09;-CSDN博客 [C面试] 智能指针面试点&#xff08;重点&#xff09;续1-CSDN博客 [C面试] 智能指针面试点&#xff08;重点&#xff09;续2-CSDN博客 …...

借助FastAdmin和uniapp,高效搭建AI智能平台

在数字化办公时代&#xff0c;效率与协作是企业发展的核心竞争力。传统的办公工具虽然功能丰富&#xff0c;但在面对复杂多变的团队协作需求时&#xff0c;往往显得力不从心。为了解决这一痛点&#xff0c;我们推出了一款全新的办公AI平台&#xff0c;它不仅能够满足文字和语音…...

【弹性计算】异构计算云服务和 AI 加速器(四):FPGA 虚拟化技术

《异构计算云服务和 AI 加速器》系列&#xff0c;共包含以下文章&#xff1a; 异构计算云服务和 AI 加速器&#xff08;一&#xff09;&#xff1a;功能特点异构计算云服务和 AI 加速器&#xff08;二&#xff09;&#xff1a;适用场景异构计算云服务和 AI 加速器&#xff08;…...

Unity功能模块一对话系统(5)-完善对话流程及功能

现在我们的文本仍然是单句显示的&#xff0c;这还不是我们想要的效果&#xff0c;本期让我们完善对话流程&#xff0c;并使用SO&#xff08;ScriptableObject&#xff09;来进行一段对话序列的配置和动态加载。 最终效果功能展示 功能一&#xff1a;场景内可根据资源序号ID来…...

Ubuntu 系统中安装 Nginx

步骤 1&#xff1a;更新软件包列表 在安装前&#xff0c;先更新系统软件包列表&#xff1a; sudo apt update步骤 2&#xff1a;安装 Nginx 通过 apt 直接安装 Nginx&#xff1a; sudo apt install nginx -y步骤 3&#xff1a;验证安装 安装完成后&#xff0c;检查 Nginx …...

Elasticsearch:使用 Azure AI 文档智能解析 PDF 文本和表格数据

作者&#xff1a;来自 Elastic James Williams 了解如何使用 Azure AI 文档智能解析包含文本和表格数据的 PDF 文档。 Azure AI 文档智能是一个强大的工具&#xff0c;用于从 PDF 中提取结构化数据。它可以有效地提取文本和表格数据。提取的数据可以索引到 Elastic Cloud Serve…...

如何 编译 px4

DeepSeek-R1满血版 回答完成 深度思考完成 用时27秒&#xff0c;搜索全网29篇资料 以下是详细的PX4固件编译教程&#xff0c;综合多平台及常见问题解决方案&#xff1a; 一、环境准备 ‌系统要求‌ ‌Ubuntu 20.04/22.04‌&#xff08;推荐&#xff09;或 ‌MacOS 12‌ Windo…...

pycharm2024.1.1版本_jihuo

目录 前置&#xff1a; 步骤&#xff1a; step one 下载软件 step two 卸载旧版本 1 卸载软件 2 清除残余 step three 下载补丁 step four 安装2024.1.1版本软件 step five 安装补丁 1 找位置放补丁 2 自动设置环境变量 step six 输入jihuo码 前置&#xff1a; 之…...

LLaMA Factory微调后的大模型在vLLM框架中对齐对话模版

LLaMA Factory微调后的大模型Chat对话效果&#xff0c;与该模型使用vLLM推理架构中的对话效果&#xff0c;可能会出现不一致的情况。 下图是LLaMA Factory中的Chat的对话 下图是vLLM中的对话效果。 模型回答不稳定&#xff1a;有一半是对的&#xff0c;有一半是无关的。 1、未…...

Vulnhub:Digitalword.local: FALL靶机渗透

将靶机按照图中连接方式打开&#xff0c;fall在virtualBox中打开 信息收集 扫描得ip arp-scan -l 扫描端口 nmap -A -T4 -sV -p- 扫描目录 gobuster dir -u http://192.168.117.160 -x php,txt,html -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt 一个一个…...

androidstudio安装完成后创建新的示例项目编译报错解决

项目场景&#xff1a; 提示&#xff1a;这里简述项目相关背景&#xff1a; 安装完成android studio想要编译一个自带的demo项目&#xff0c;没想到一直有编译报错&#xff0c;最后终于搞好了&#xff0c;记录下避免再踩坑。 androidstudio安装完成后创建新的示例项目编译报错…...

C#/.NET/.NET Core技术前沿周刊 | 第 31 期(2025年3.17-3.23)

前言 C#/.NET/.NET Core技术前沿周刊&#xff0c;你的每周技术指南针&#xff01;记录、追踪C#/.NET/.NET Core领域、生态的每周最新、最实用、最有价值的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿&#xff0c;助力技术成长与视野拓宽。 欢迎投稿、推荐…...

QT 跨平台发布指南

一、Windows 平台发布 1. 使用 windeployqt 工具 windeployqt --release --no-compiler-runtime your_app.exe 2. 需要包含的文件 应用程序 .exe 文件 Qt5Core.dll, Qt5Gui.dll, Qt5Widgets.dll 等 Qt 库 platforms/qwindows.dll 插件 styles/qwindowsvistastyle.dll (如果使…...

数制——FPGA

1、定点数 定点数的三种表示方式&#xff1a; 原码&#xff1a;符号位 绝对值 表示方法 反码&#xff1a;正数的反码表示 与原码表示一致&#xff0c;负数的反码表示 除符号位&#xff0c;其他位全都取反 补码&#xff1a;正数的补码表示 与原码表示一致&#xff0c;负数的补码…...

车载以太网网络测试 -25【SOME/IP-报文格式-1】

1 摘要 本专题接着上一专题对SOME/IP进行介绍&#xff0c;主要对SOME/IP报文格式以及定义的字段进行详细介绍&#xff0c;有助于在实际项目过程中对SOME/IP报文的理解。 上文回顾&#xff1a; 车载以太网网络测试 -24【SOME/IP概述】 2 SOME/IP-报文格式 通过上个专题介绍&a…...

Kubernetes》》k8s》》Replication Controller

RC(Replication Controller) 应用托管在kubernetes之后&#xff0c;kubernetes需要保证应用能够持续运行&#xff0c;这是RC的工作内容&#xff0c;它会确保任何时间kubernetes中都有指定数量的Pod在运行。在此基础上&#xff0c;RC还提供了一些更高级的特性&#xff0c;比如滚…...

力扣HOT100之矩阵:73. 矩阵置零

这道题我没有想到什么好的办法&#xff0c;直接暴力AC了&#xff0c;直接遍历两次矩阵&#xff0c;第一次遍历用两个向量分别记录出现0的行数和列数&#xff0c;第二次遍历就判断当前的元素的行数或者列数是否出现在之前的两个向量中&#xff0c;若出现了就直接置零&#xff0c…...

天锐蓝盾终端安全防护——企业终端设备安全管控

从办公室的台式电脑到员工手中的移动终端&#xff0c;这些设备不仅是工作的得力助手&#xff0c;更是企业数据的重要载体。然而&#xff0c;随着终端设备的广泛使用&#xff0c;安全风险也如影随形。硬件设备使用不当、数据随意传输等问题频发&#xff0c;使得企业数据面临着泄…...

【博客】使用GithubAction自动同步obisidian和hexo仓库

使用Github Action自动同步obisidian和hexo仓库&#xff0c;避免手动操作。 本文首发于❄慕雪的寒舍 1. 烦恼 先来说说慕雪现在的笔记和博客是怎么管理的吧&#xff0c;我正在使用两套笔记软件 思源笔记&#xff1a;私密性高一些&#xff0c;不是博客的笔记都在这里面。由于思…...