用Rust写平衡三进制加法器
1、三进制加法器的发展
最初的平衡三进制加法是采用了三选一结构(github原文),这位大佬也很厉害,他是硬件都弄了出来的,也写了虚拟机,甚至用这三态多路复用器弄出了可以存状态的硬件,但我没有去看了,因为当初刚开始的的一个全加器的方案(详情),都看了几天才懂,实在是不想费脑子了;不过也告诉我平衡三进制加法器确实存在,再后来,用图灵完备模拟了这结构,结果发现太复杂了,单1个零部件都好麻烦,然后幸运的推理出了与二进制相似的结构,即用2个平衡三进制半加器及1个平衡三进制调和门组成一器,哪时感觉牛呀;又后面,尝试用c++写这虚拟机,写着写着感觉很麻烦,就没写了,改用了rust来写,rust的好处就是它的变量是默认不会变的,写出来加法器后,在我眼中,数组就是平衡三进制逻辑门,平衡三进制就是数组,有关请看:平衡三进制存算一体架构
2、平衡三进制的二进制编码
转来转去的,目前最好实现的还是二进制,你想一下,一辆车走一条马路与两辆车走同一条马路并驱,速度是不是一样快,用空间来换时间还是很好用的,所以编码用来用去,还是方案二好用,如下所示:
二进制编码 | 平衡三进制表示 | 十进制 |
---|---|---|
00 | 0 | 0 |
01 | 1 | 1 |
10 | T | 2 |
11 | 未使用 | 未使用 |
3、平衡三进制逻辑门的转换
在上面用了2bit表示1trit,写虚拟机时发现8bit就是计算机的通用程序最小单位了,最主要的是它的移植性,所以都以1byte表示1trit,然后就是2表示的是-1、0表示0、1表示1,为什么这样映射,因为数组是从0开始的,不能以-1开始,然后这样就可以,将平衡三进制逻辑门进成数组的形式,而下图的三种逻辑门,就是组成全加器的关键,我们可以尝试转换。
例如,转换加和门:
逻辑加和 | 0 | 1 | 2 |
0 | 0 | 1 | 2 |
1 | 1 | 2 | 0 |
2 | 2 | 0 | 1 |
4、平衡三进制逻辑门的使用
现在的你,已经可以将数组变成逻辑门来使用了,所以我们尝试用rust,目标是写一个平衡三进制的多位加法器,先用1个加和门与1个共识门,组成1个平衡三进制半加器,然后再用2平衡三进制半加器和1个调和门,组成1个平衡三进制全加器,最后由多个全加器组成多位加法器;当然,这里是编程,我们只用到一个全加器,然后用while循环处理多位就好了,代码如下:
// **加和(TSUM)逻辑表 当为TT、01、10时出1,当为11、0T、T0时出T,其余为0 此门用于半加器的加和位处理 **
const TSUM:[[u8; 3];3]= [[0, 1, 2],[1, 2, 0],[2, 0, 1],
];
// **共识(TCONS)逻辑表 双T出T、双1出1、其余为0 此门用于半加器的进位处理 **
const TCONS:[[u8; 3];3]= [[0, 0, 0],[0, 1, 0],[0, 0, 2],
];
// **调和(TANY)逻辑表 当为TT、0T、T0时出T,当为11、01、10时出1,其余为0 此门用于全加器进位处理 **
const TANY:[[u8; 3];3]= [[0, 1, 2],[1, 1, 0],[2, 0, 2],
];/// 半加器:返回 (sum, carry)
pub fn ternary_half_adder(a: u8, b: u8) -> (u8, u8) {let sum = TSUM[a as usize][b as usize];// 和let carry=TCONS[a as usize][b as usize];// 进位;(sum, carry)
}
/// 全加器2:基于半加器实现
pub fn ternary_full_adder(a: u8, b: u8, c_in: u8) -> (u8, u8) {//2个平衡三进制半加器及1个平衡三进制调和门,组成一个平衡三进制全加器let (num,c1_in)=ternary_half_adder(a,b);let (sum,c2_in)=ternary_half_adder(num,c_in);let carry=TANY[c1_in as usize][c2_in as usize];//两个进位数合成一个进位数;(sum, carry)
}fn main() {let a = 1;let b = 1;let c=1;let (sum,carry)=ternary_half_adder(a, b);//半加器let (sum2,carry2)=ternary_full_adder(a, b, c);//平衡全加器println!("平衡半加器 sum:{} carry:{}",sum,carry);println!("平衡全加器 sum:{} carry:{}",sum2,carry2);
}
如上图所示,1+1=1T、1+1+1=10,运行结果也很正确。
5、平衡三进制多位加法器
其实上面的程序,可以更加简化,都已经将数组用成的逻辑门了,所以可以不用加和门、共识门、调和门什么的,直接面向结果编程,就像九九乘法表,所以用它的真值表,来写两个三维数组保存它的结果,直接调用这样就可以极大提升效率,平衡三进制全加真值表,如下所示:
所以就可以写出,如下代码:
// **全加器和(TFULLSUM) 逻辑表**
const TFULLSUM:[[[u8; 3];3];3] = [[[0, 1, 2],[1, 2, 0],[2, 0, 1],],[[1, 2, 0],[2, 0, 1],[0, 1, 2],],[[2, 0, 1],[0, 1, 2],[1, 2, 0],],
];
// **全加器进位(TFULLCONS) 逻辑表**
const TFULLCONS:[[[u8; 3];3];3] = [[[0, 0, 0],[0, 1, 0],[0, 0, 2],],[[0, 1, 0],[1, 1, 0],[0, 0, 0],],[[0, 0, 2],[0, 0, 0],[2, 0, 2],],
];/// 全加器:基于三维数组实现
pub fn ternary_full_adder(a: u8, b: u8, c_in: u8) -> (u8, u8) {let sum =TFULLSUM[a as usize][b as usize][c_in as usize];// 和let carry=TFULLCONS[a as usize][b as usize][c_in as usize];// 进位(sum, carry)
}fn main() {let a = 1;let b = 1;let c=1;let (sum2,carry2)=ternary_full_adder(a, b, c);//平衡全加器println!("平衡全加器 sum:{} carry:{}",sum2,carry2);}
结果正确,最后就多位相加的问题了,刚开始我也是想用for循环处理的,但太麻烦了,要用迭代器什么的,还要判断是否长度一样,它又是从低位加到高位的,所以我想很久,让我想到了一个优雅的方案--栈,栈这数据结构是先进后出,这样一个数如:1234与567,存入后再弹出就是4321与765,所以只要有两个栈协同弹出,先栈空的换成0,直到两栈都为空就完成了运算,巧的是,Rust标准库中Vec,天然就支持后进先出(LIFO),所以就可以写出,如下代码:
// **全加器和(TFULLSUM) 逻辑表**
const TFULLSUM:[[[u8; 3];3];3] = [[[0, 1, 2],[1, 2, 0],[2, 0, 1],],[[1, 2, 0],[2, 0, 1],[0, 1, 2],],[[2, 0, 1],[0, 1, 2],[1, 2, 0],],
];
// **全加器进位(TFULLCONS) 逻辑表**
const TFULLCONS:[[[u8; 3];3];3] = [[[0, 0, 0],[0, 1, 0],[0, 0, 2],],[[0, 1, 0],[1, 1, 0],[0, 0, 0],],[[0, 0, 2],[0, 0, 0],[2, 0, 2],],
];/// 全加器:基于三维数组实现
pub fn ternary_full_adder(a: u8, b: u8, c_in: u8) -> (u8, u8) {let sum =TFULLSUM[a as usize][b as usize][c_in as usize];// 和let carry=TFULLCONS[a as usize][b as usize][c_in as usize];// 进位(sum, carry)
}///多位三进制加法器基础,输入两个的三进制向量,返回加法结果向量和最终进位
pub fn ternary_stackadder_base(mut stack1: Vec<u8>,mut stack2: Vec<u8>,carry_in: u8)-> (Vec<u8>, u8){let mut result:Vec<u8> = Vec::new();//存储和let mut c_in:u8=carry_in;//Rust标准库中Vec,天然支持后进先出(LIFO),用栈协同弹出,倒序遍历, 支持不同长度while !stack1.is_empty() || !stack2.is_empty() {let v1 = stack1.pop().unwrap_or(0);let v2 = stack2.pop().unwrap_or(0);let (s_out, next_carry) =ternary_full_adder(v1, v2, c_in);result.push(s_out);//存结果c_in=next_carry;//进位传递}//result.push(c_in);可选,最高位溢出推入result.reverse(); // 反转,从高位到低位排列(result, c_in)
}//多位三进制加法器
pub fn ternary_stack_adder(stack1: Vec<u8>,stack2: Vec<u8>) -> Vec<u8> {let (mut result, carry) = ternary_stackadder_base(stack1,stack2, 0);result.insert(0, carry);result
}fn main() {let stack1=vec![0,1,1,1];let stack2=vec![0,2,0,0];let c:u8=1;let (sum,carry)=ternary_stackadder_base(stack1, stack2, c);println!("结果{}{:?}",carry,sum);}
结果正确,完结,撒花。。
6、平衡三进制逻辑门大全
数组就是逻辑门,算的快不如转的快,感觉忆阻器是很有前途,阻值没有负数,但是有0、1、2,这就已经够用了,不行还可以用,二位bit模拟1位平衡三进制数,管它那么多,先造出来再说,以下是平衡三进制的数组逻辑门大全,代码如下所示:
///*三进制逻辑门查找表声明**
///*2025/5/29**
///
/// 平衡三进制摩根定律及逻辑门转换图
/// TOR <-------> TNOR
/// ^ ^
/// | |
/// | |
/// v v
/// TNAND <-------> TAND// **非门(TNEG)逻辑表 输入T,输出1;输入0,输出0;输入1,输出T;**
pub const TNEG:[u8; 3]= [0, 2, 1];
// **右偏门(RIGHT_MUX)逻辑表(A+1) 输入T,输出0;输入0,输出1;输入1,输出T;**
pub const RIGHT_MUX:[u8; 3]= [1, 2, 0];
// **左偏门(LEFT_MUX)逻辑表(A-1) 输入T,输出1;输入0,输出T;输入1,输出0;**
pub const LEFT_MUX: [u8; 3]= [2, 0, 1];
// **最大门(MAX_MUX)逻辑表max(A,0) A与0比较,较大的输出 **
pub const MAX_MUX:[u8; 3]= [0, 1, 0];
// **最小门(MIN_MUX)逻辑表min(A,0) A与0比较,较小的输出 **
pub const MIN_MUX:[u8; 3]= [0, 0, 2];// **或门(TOR)逻辑表MAX(A,B) 有1出1、双T出T、其余为0 **
pub const TOR:[[u8; 3];3]= [[0, 1, 0],[1, 1, 1],[0, 1, 2],
];
// **与门(TAND)逻辑表MIN(A,B) 有T出T、双1出1、其余为0 **
pub const TAND:[[u8; 3];3]= [[0, 0, 2],[0, 1, 2],[2, 2, 2],
];
// **或非门(TNOR)逻辑表 有1出T、双T出1、其余为0 **
pub const TNOR:[[u8; 3];3]= [[0, 2, 0],[2, 2, 2],[0, 2, 1],
];
// **与非门(TAND)逻辑表 有T出1、双1出T、其余为0 **
pub const TNAND:[[u8; 3];3]= [[0, 0, 1],[0, 2, 1],[1, 1, 1],
];
// **异或门(TXOR)逻辑表 双T及双1出T、1T及T1出1、其余为0 **
pub const TXOR:[[u8; 3];3]= [[0, 0, 0],[0, 2, 1],[0, 1, 2],
];
// **同或门(TXNOR)逻辑表 双T及双1出1、1T及T1出T、其余为0 **
pub const TXNOR:[[u8; 3];3]= [[0, 0, 0],[0, 1, 2],[0, 2, 1],
];// **加和(TSUM)逻辑表 当为TT、01、10时出1,当为11、0T、T0时出T,其余为0 此门用于半加器的加和位处理 **
pub const TSUM:[[u8; 3];3]= [[0, 1, 2],[1, 2, 0],[2, 0, 1],
];
// **共识(TCONS)逻辑表 双T出T、双1出1、其余为0 此门用于半加器的进位处理 **
pub const TCONS:[[u8; 3];3]= [[0, 0, 0],[0, 1, 0],[0, 0, 2],
];
// **调和(TANY)逻辑表 当为TT、0T、T0时出T,当为11、01、10时出1,其余为0 此门用于全加器进位处理 **
pub const TANY:[[u8; 3];3]= [[0, 1, 2],[1, 1, 0],[2, 0, 2],
];// **全加器和(TFULLSUM) 逻辑表**
pub const TFULLSUM:[[[u8; 3];3];3] = [[[0, 1, 2],[1, 2, 0],[2, 0, 1],],[[1, 2, 0],[2, 0, 1],[0, 1, 2],],[[2, 0, 1],[0, 1, 2],[1, 2, 0],],
];
// **全加器进位(TFULLCONS) 逻辑表**
pub const TFULLCONS:[[[u8; 3];3];3] = [[[0, 0, 0],[0, 1, 0],[0, 0, 2],],[[0, 1, 0],[1, 1, 0],[0, 0, 0],],[[0, 0, 2],[0, 0, 0],[2, 0, 2],],
];
// **三与门(T3AND)逻辑表 有T出T、三1出1、其余为0 **
pub const T3AND:[[[u8; 3];3];3] = [[[0, 0, 2],[0, 0, 2],[2, 2, 2],],[[0, 0, 2],[0, 1, 2],[2, 2, 2],],[[2, 2, 2],[2, 2, 2],[2, 2, 2],],
];
// **三或门(T3AND)逻辑表 有1出1、三T出T、其余为0 **
pub const T3OR:[[[u8; 3];3];3] = [[[0, 1, 0],[1, 1, 1],[0, 1, 0],],[[1, 1, 1],[1, 1, 1],[1, 1, 1],],[[0, 1, 0],[1, 1, 1],[0, 1, 2],],
];
相关文章:
用Rust写平衡三进制加法器
1、三进制加法器的发展 最初的平衡三进制加法是采用了三选一结构(github原文),这位大佬也很厉害,他是硬件都弄了出来的,也写了虚拟机,甚至用这三态多路复用器弄出了可以存状态的硬件,但我没有去看了,因为当…...
【AI时代速通QT】第三节:Linux环境中安装QT并做测试调试
目录 引言 一、Linux QT开发环境的核心要素 1.1 编译器(g)与构建工具(make) 1.2 搞定 OpenGL 依赖 二、核心步骤——安装 Qt Creator 2.1 获取官方在线安装器 2.2 赋予文件执行权限 2.3 运行图形化安装向导 三、Linux上创…...
论文阅读:2025 arxiv Qwen3 Technical Report
https://arxiv.org/pdf/2505.09388 https://www.doubao.com/chat/9918384373236738 文章目录 论文翻译Qwen3技术报告摘要1 引言 论文翻译 Qwen3技术报告 Qwen团队 摘要 在这项工作中,我们介绍了Qwen模型家族的最新版本Qwen3。Qwen3包含一系列大型语言模型&…...
Vue3+el-table-v2虚拟表格大数据量多选功能详细教程
Vue3el-table-v2虚拟表格大数据量多选功能详细教程 本教程基于 Element Plus 组件库的 el-table-v2(假设你使用虚拟滚动表格),实现大数据量场景下的多选功能,并包含了全选、反选、已选行展示、清除选择等完整交互。 一、项目背景与…...
开源跨平台的轻量 C# 编辑器
NetPad一个基于.NET 开源、跨平台的 C# 编辑器,目的是创建一个开源的、支持 Web 的跨平台替代方案,从而为开发者提供便利的编程环境并为非 Windows 环境下的开发者提供一个可替代 LINQPad 的实用工具。它以.NET SDK 作为基础运行时环境,利用E…...
QT多线程
使用多线程的好处 假如当前窗口要进行一段非常复杂的逻辑处理,在单线程的情况下,是无法操控界面UI的,点击界面UI没有响应。此时就要用到多线程。 注意: 1、默认的线程在Qt中称之为窗口线程,也叫主线程,负…...
了解公共部门中的数据网格:支柱、架构和示例
作者:来自 Elastic Elastic Platform Team 想想那些像公共健康记录、城市规划模型等项目背后的所有数据。政府机构一直在产生大量数据。当数据分散在云平台、本地系统或像卫星和应急响应中心这样的专业环境中时,情况变得更加复杂。找到信息变得困难&…...
关于一维数组和字符串的详细讲解(从属于GESP三级)
本章内容 一维数组基础 字符串基础 就像打磨一串符号,每个位置都要精准对待,才能串起完整的风景。坚持下去,小细节终将成就大格局。 一、⼀维数组基础 1 📚 定义 典型写法 说明 易错/拓展 int a[5]; 编译期长度常量&#x…...
【驱动设计的硬件基础】PCI和PCI-E
打开电脑主机,你会看到主板上一排长短不一的插糟:矮胖的 PCI 插糟还插着古老的声卡,旁边细长的 PCI-E 插糟则牢牢卡住显卡、高速网卡等核心设备。这些看似普通的插糟,其实是计算机硬件沟通的 "高速公路",承载…...
【学习记录】Git Base使用-免密连接代码仓库
github(JL765)和gitee(JL765/git-test01)都可以用于管理代码 在windows中,可以通过Git Base软件(Git - Downloading Package)和仓库进行连接 下载略过 github登录 ssh -T gitgithub.com # 成…...
android脱糖
前言 另外一篇相关文章:https://androidblog.blog.csdn.net/article/details/148574130 通过sourceCompatibility 和targetCompatibility可以实现低版本写代码高版本输出(详情可查看我的另一篇文件中的:验证各种Java版本 > 一、纯Java项…...
DVWA Brute Force漏洞深度分析与利用指南
DVWA简介 DVWA(Damn Vulnerable Web Application)是一个基于PHP/MySQL的脆弱性Web应用平台,专为安全专业人员设计,用于测试技能和工具。它包含十大安全模块,其中Brute Force(暴力破解)是最基础…...
Docker 报错“x509: certificate signed by unknown authority”的排查与解决实录
目录 🔧Docker 报错“x509: certificate signed by unknown authority”的排查与解决实录 📌 问题背景 🧪 排查过程 步骤 1:确认加速器地址是否可访问 步骤 2:检查 Docker 是否真的使用了镜像加速器 步骤 3&…...
采用ArcGIS10.8.2 进行插值图绘制
一、最终成果图展示 二、软件下载 链接: 百度网盘 请输入提取码 密码:azay 三、软件安装 1、在安装之前需要关闭电脑的防火墙及杀毒软件 设置-隐私和安全性-Windows安全中心-防火墙和网络保护 2、软件解压 (1)【ArcGIS_Desktop_1082_180......】“以管理员身份运行”…...
国产安路FPGA纯verilog视频图像去雾,基于暗通道先验算法实现,提供5套TD工程源码和技术支持
目录 1、前言工程概述免责声明 2、相关方案推荐我已有的所有工程源码总目录----方便你快速找到自己喜欢的项目国产安路FPGA相关方案推荐本博主已有的图像处理方案 3、设计思路框架工程设计原理框图输入Sensor之-->GC0308摄像头输入Sensor之-->OV7725摄像头输入Sensor之--…...
利用大型语言模型增强边缘云 AI 系统安全性
大家读完觉得有帮助及的关注和点赞!!! 抽象 随着边缘计算和云系统在 AI 驱动应用中的广泛应用,如何在确保数据隐私的同时保持高效性能已成为一个紧迫的安全问题。本文提出了一种基于联邦学习的数据协作方法,以提高边缘…...
微信小程序中 rpx与px的区别
在微信小程序中的rpx比px方便的多 <!--pages/welcome/welcome.wxml--> <!--rpx替换px--> <image style"width:200rpx;height: 200rpx"src"/images/avatar/3.png"></image> <text>你好,冻梨</text> <but…...
解锁阿里云AnalyticDB:数据仓库的革新利器
AnalyticDB:云数据仓库新势力 在数字化浪潮中,数据已成为企业的核心资产,而云数据仓库作为数据管理与分析的关键基础设施,正扮演着愈发重要的角色。阿里云 AnalyticDB 作为云数据仓库领域的佼佼者,以其卓越的性能、创…...
告别水印烦恼,一键解锁高清无痕图片与视频!
在这个数字化飞速发展的时代,无论是设计小白还是创意达人,都可能遇到这样的困扰:心仪的图片或视频因水印而大打折扣,创意灵感因水印而受限。别急,今天就为大家带来几款神器,让你轻松告别水印烦恼࿰…...
前端面试记录
前言:面试题永远是刷不完的,即使刷了一大堆下次面试又忘记了,重要的是组织自己的语言,保持自信,不给自己制造面不过的心理负担,对刷过的题要有个大致印象,好在答题的时候能够多多少少说出点贴近…...
RAG实战基础篇/windows电脑快速部署qwen3:14B
现阶段,在本地部署ollama非常简单,准备好一个有GPU的电脑,十分钟轻松部署qwen3:14b。实现本地的大模型部署。 我这里为了方便起见,直接使用windows电脑下载一个ollama。 访问ollama GIthub地址:ollama开源地址 直接…...
Java SE - 图书管理系统模拟实现
目录 1.设计框架2. 实现用户类3.实现书和书架类4.登录界面的实现5.实现menu方法6.测试菜单选择7.实现一个IFun接口7.1 查找功能的实现7.2 展示功能的实现7.3 增加功能的实现7.4 删除功能的实现7.5 退出功能的实现7.6 借阅功能的实现7.7 归还功能的实现 8.实现IFuntion类型的数组…...
华为HN8145V光猫改华为蓝色公版界面,三网通用,xgpon公版光猫
咸鱼只卖20多元一个,还是xgpon的万兆猫,性价比不错哦 除了没有2.5G网口,其他还行。 改成公版光猫后,运营商是无法纳管光猫,无法后台修改光猫数据及超密。 华为 HN8145V 光猫具有以下特点: 性能方面 高速接…...
【ARM 嵌入式 编译系列 7.5 -- GCC 打印链接脚本各段使用信息】
文章目录 Overview1 在 linker script 中定义符号2 编译并生成 ELF 文件3 使用 nm awk 输出各段地址及大小(含单位)4 实际输出示例5 进阶建议 Overview 在 GCC 编译生成 elf 后 打印出出数据段的开始地址及结束地址,bss 段的开始地址和结束…...
在大数据求职面试中如何回答分布式协调与数据挖掘问题
在大数据求职面试中如何回答分布式协调与数据挖掘问题 场景:小白的大数据求职面试 小白是一名初出茅庐的程序员,今天他来到一家知名互联网公司的面试现场,面试官是经验丰富的老黑。以下是他们之间的对话: 第一轮提问࿱…...
小白成长之路--nginx基础配置(一)
文章目录 一、概述1.1 Nginx 特点1.2 Nginx 作用1.3Nginx工作原理 二、Nginx服务搭建2.1安装2.2 目录结构2.3 配置文件作用2.4 nginx,conf配置文件详解2.5 核心命令2.6 Nginx信号三.Nginx3.1启动 总结 一、概述 Nginx 是开源、高性能、高可靠的 Web服务器 和反向代理服务器&am…...
基于 SpringBoot+JSP 的医疗预约与诊断系统设计与实现
摘要 本研究针对传统医疗预约与诊断流程中存在的效率低下、信息不透明、患者等待时间长等问题,设计并实现了一个基于 SpringBootJSP 的医疗预约与诊断系统。系统采用 B/S 架构,整合了用户管理、科室管理、医生排班、预约挂号、在线问诊、检查检验、诊断…...
C++语言发展历程-2025
C语言发展历程-2025 前言 C是一种高级编程语言,由Bjarne Stroustrup于1979年在贝尔实验室创建,是C语言的扩展和改进版。 C从最初的C with class,经历了C98、C03、C11、C 14、C17、C20、C23多次标准化改造,成为一门多范式、高性…...
Zynq + FreeRTOS + YAFFS2 + SQLite3 集成指南
Zynq FreeRTOS YAFFS2 SQLite3 集成指南 一、系统架构设计 #mermaid-svg-qvuP6slyza89wsiT {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-qvuP6slyza89wsiT .error-icon{fill:#552222;}#mermaid-svg-qvuP6slyz…...
Python基础之函数
代码仓库地址:gitgithub.com:Liucc-123/python_learn.git 函数介绍 函数是组织好的、可重复使用的,用来实现单一、或相关功能的代码段。 函数可以提高应用的模块性和代码的可重复性。python 有许多内置的函数比如 print 打印函数,python 也…...
Python异步爬虫编程技巧:从入门到高级实战指南
Python异步爬虫编程技巧:从入门到高级实战指南 🚀 📚 目录 前言:为什么要学异步爬虫异步编程基础概念异步爬虫核心技术栈入门实战:第一个异步爬虫进阶技巧:并发控制与资源管理高级实战:分布式…...
Redis哨兵模式深度解析与实战部署
Redis哨兵模式深度解析与实战部署 文章目录 Redis哨兵模式深度解析与实战部署一、Redis哨兵模式理论架构详解1.1 哨兵模式的核心架构组成基础架构拓扑图 1.2 哨兵节点的核心功能模块1.2.1 监控模块(Monitoring)1.2.2 决策模块(Decision Makin…...
【软考高级系统架构论文】论边缘计算及其应用
论文真题 边缘计算是在靠近物或数据源头的网络边缘侧,融合网络、计算、存储、应用核心能力的分布式开放平台(架构),就近提供边缘智能服务。边缘计算与云计算各有所长,云计算擅长全局性、非实时、长周期的大数据处理与分析,能够在长周期维护、业务决策支撑等领域发挥优势;…...
触摸屏(典型 I2C + Input 子系统设备)从设备树解析到触摸事件上报
触摸屏(典型 I2C Input 子系统设备)从设备树解析到触摸事件上报 以下是架构图,对触摸屏(典型I2C Input子系统设备)从设备树解析到触摸事件上报的全流程详细拆解,包含文字讲解和配套流程图: 注…...
Java中==与equals()方法的深度解析
作为Java后端开发者,我们经常会遇到需要比较两个对象是否相等的情况。在Java中,运算符和equals()方法都可以用于比较,但它们之间存在着本质的区别。 1. 运算符 是一个比较运算符,它的行为取决于比较的类型: 1.1 比较…...
qt常用控件--02
文章目录 qt常用控件--02toolTip属性focusPolicy属性styleSheet属性补充知识点按钮类控件QPushButton 结语 很高兴和大家见面,给生活加点impetus!!开启今天的编程之路!! 今天我们进一步c11中常见的新增表达 作者&…...
AI-Sphere-Butler之如何将豆包桌面版对接到AI全能管家~新玩法(一)
环境: AI-Sphere-Butler VBCABLE2.1.58 Win10专业版 豆包桌面版1.47.4 ubuntu22.04 英伟达4070ti 12G python3.10 问题描述: AI-Sphere-Butler之如何将豆包桌面版对接到AI全能管家~新玩法(一) 聊天视频: AI真…...
为什么android要使用Binder机制
1.linux中大多数标准 IPC 场景(如管道、消息队列、ioctl 等)的进程间通信机制 ------------------ ------------------ ------------------ | 用户进程 A | | 内核空间 | | 用户进程 B | | (User Spa…...
Apache SeaTunnel Flink引擎执行流程源码分析
目录 1. 任务启动入口 2. 任务执行命令类:FlinkTaskExecuteCommand 3. FlinkExecution的创建与初始化 3.1 核心组件初始化 3.2 关键对象说明 4. 任务执行:FlinkExecution.execute() 5. Source处理流程 5.1 插件初始化 5.2 数据流生成 6. Transform处理流程 6.1 插…...
XML读取和设置例子
在Qt C中,可以使用Qt的 QDomDocument类来读取、更新和保存XML文件。这个类提供了对XML文档的强大操作能力,支持通过DOM(文档对象模型)对XML进行读取、修改、添加和删除节点等操作。 下面是一个详细的例子,演示如何在Qt…...
数据标注师学习内容
目录 文本标注词性标注实体标注 图像标注语音标注 文本标注 词性标注 第一篇 第二篇 实体标注 点击这里 关系标注 事件标注 意图标注 关键词标注 分类标注 问答标注 对话标注 图像标注 拉框标注 关键点标注 2D标注 3D标注 线标注 目标跟踪标注 OCR标注 图像分类标注 语音…...
如何实现财务自由
如果有人告诉你,普通人也可以在5到10年内,而不是40到50年后实现财务自由、彻底退休,你会不会觉得对方在开玩笑?但这并非天方夜谭,《百万富翁快车道》的作者MJ德马科就是成功案例。他曾和多数人一样做底层工作ÿ…...
一些想法。。。
1.for里面的局部变量这种还是在for里面定义比较好 比如 for(int i 0;i<n;i){ int num; cin>>num; } 实不相瞒,有一次直接cin了i怎么都没看出来哪里错了。。。 2.关于long long 如果发现中间结果大约是10^9,就要考虑int 溢出 即用 long …...
基于分布式部分可观测马尔可夫决策过程与联邦强化学习的低空经济智能协同决策框架
基于分布式部分可观测马尔可夫决策过程与联邦强化学习的低空经济智能协同决策框架 摘要: 低空经济作为新兴战略产业,其核心场景(如无人机物流、城市空中交通、低空监测)普遍面临环境动态性强、个体观测受限、数据隐私敏感及多智能体协同复杂等挑战。本文创新性地提出一种深…...
github常用插件
一,文档辅助阅读系列:自动化wiki处理 1,deepwiki https://deepwiki.com/ 将我们看不懂的官方code文档转换为wiki,更加便于理解。 其实能够翻阅的仓库很有限,比如说: 但是有很多仓库并没有indexÿ…...
python3字典
1 字典简介 字典是一种可变容器模型,且可存储任意类型对象。字典每个基本元素都包括两个部分: 键(key)和键对应的值(value) 每个键值 key>value 对用冒号: 分割,每个对之间用逗号(,)分割&am…...
华为云 Flexus+DeepSeek 征文|增值税发票智能提取小工具:基于大模型的自动化信息解析实践
华为云 FlexusDeepSeek 征文|增值税发票智能提取小工具:基于大模型的自动化信息解析实践 前言背景 企业财务处理中,增值税发票信息手动提取存在效率低、易出错等痛点,华为云 Flexus 弹性算力联合 DeepSeek 大模型,通过…...
[特殊字符] OpenCV opencv_world 模块作用及编译实践完整指南
📌 什么是 opencv_world 模块? opencv_world 是 OpenCV 官方提供的一个 大型集成动态库。它将 OpenCV 所有启用的模块(例如 core, imgproc, highgui, videoio, dnn, photo 等)打包到一个单一的动态库文件(如 Linux 的…...
目标检测之YOLOv5到YOLOv11——从架构设计和损失函数的变化分析
YOLO(You Only Look Once)系列作为实时目标检测领域的标杆性框架,自2016年YOLOv1问世以来,已历经十余年迭代。本文将聚焦YOLOv5(2020年发布)到YOLOv11(2024年前后)的核心技术演进&am…...
Java的SpringAI+Deepseek大模型实战【二】
文章目录 背景交互方式1、等待式问答2、流式问答 设置角色环绕增强1)修改controller2)修改配置日志级别 处理跨域 背景 上篇【Java的SpringAIDeepseek大模型实战【一】】搭建起浏览器交互的环境,如何进行流式问答,控制台打印日志…...