【理想解法学习笔记】
目录
- 理想解法
- 原理简介
- 算法步骤
- 属性值规范化方法
- 代码示例
理想解法
原理简介
TOPSIS(Technique for Order Preference by Simi larity to IdealSolution)法是一种逼近理想解的排序方法。其基本的处理思路是:首先建立初始化决策矩阵,而后基于规范化后的初始矩阵,找出有限方案中的最优方案和最劣方案(也就是正、负理想解),然后分别计算各个评价对象与最优方案和最劣方案的距离,获得各评价方案与最优方案的相对接近程度,最后进行排序,并以此作为评价方案优劣的依据。
设多属性决策方案集为 D = { d 1 , d 2 , . . . , d m } D=\left \{ d_1,d_2,...,d_m \right \} D={d1,d2,...,dm},衡量方案优劣的属性变量为 x 1 , x 2 , . . . , x n x_1,x_2,...,x_n x1,x2,...,xn。,这时方案集 D D D中的每个方案 d i ( i = 1 , 2 , ⋯ , m ) d_i(i=1,2,⋯,m) di(i=1,2,⋯,m)的 n n n个属性值构成的向量是 [ a i 1 , a i 2 , . . . , a i n ] \left [ a_{i1},a_{i2},...,a_{in} \right ] [ai1,ai2,...,ain],它作为 n n n维空间中的一个点,能唯一地表征方案 d i d_i di。正理想解 C ∗ C^* C∗是一个方案集 D D D中并不存在的虚拟的最佳方案,它的每个属性值都是决策矩阵中该属性的最优值;而负理想解 C 0 C^0 C0则是虚拟的最差方案,它的每个属性值都是决策矩阵中该属性的最差值。在 n n n维空间中,将方案集 D D D中的各备选方案 d i d_i di.与正理想解 C ∗ C^* C∗和负理想解 C 0 C^0 C0的距离进行比较,既靠近正理想解又远离负理想解的方案就是方案集D中的最优方案,并可以据此排定方案集D中各备选方案的优先序。对比备选方案和理想解需要定义适合的距离测度,TOPSIS所用的是欧几里得距离。
算法步骤
假设初始的决策矩阵 A A A为:
A = [ a 11 … a 1 j … a 1 n ⋮ ⋮ ⋮ ⋮ ⋮ a i 1 … a i j … a i n ⋮ ⋮ ⋮ ⋮ ⋮ a m 1 … a m j … a m n ] A=\begin{bmatrix} a_{11}& \dots& a_{1j}& \dots &a_{1n} \\ \vdots& \vdots& \vdots& \vdots&\vdots\\ a_{i1}& \dots& a_{ij}& \dots &a_{in}\\ \vdots& \vdots& \vdots& \vdots&\vdots\\ a_{m1}& \dots& a_{mj}& \dots &a_{mn}\\ \end{bmatrix} A=⎣⎢⎢⎢⎢⎢⎢⎡a11⋮ai1⋮am1…⋮…⋮…a1j⋮aij⋮amj…⋮…⋮…a1n⋮ain⋮amn⎦⎥⎥⎥⎥⎥⎥⎤
(1)对初始决策矩阵 A A A的所有备选方案的每一个属性进行规范化处理,即对 A A A的每一个列向量 [ a 1 j , a 2 j , . . . , a m j ] T , j ∈ 1 , . . . , n \left [ a_{1j},a_{2j},...,a_{mj} \right ]^T,j\in 1,...,n [a1j,a2j,...,amj]T,j∈1,...,n规范化处理得到规范化的决策矩阵 B = ( b i j ) m × n B=\left ( b_{ij} \right )_{m\times n} B=(bij)m×n.
b i j = a i j ∑ i = 1 m a i j 2 , i = 1 , . . . , m , j = 1 , . . . , n b_{ij}=\frac{a_{ij}}{\sqrt{\sum_{i=1}^{m}a_{ij}^2}},i=1,...,m,j=1,...,n bij=∑i=1maij2aij,i=1,...,m,j=1,...,n
(2)构造加权规范阵,假设 n n n个属性的权重构成的权重向量为 ω = [ ω 1 , ω 2 , . . . , ω n ] ⊤ \omega=\left [ \omega_1,\omega_2,...,\omega_n \right ]^\top ω=[ω1,ω2,...,ωn]⊤,将规范化的决策矩阵 B = ( b i j ) m × n B=\left ( b_{ij} \right )_{m\times n} B=(bij)m×n的每一行与权重向量对应相乘即得到加权规范阵 C = ( c i j ) m × n C=\left ( c_{ij} \right )_{m\times n} C=(cij)m×n。
c i j = b i j ∗ ω j , j = 1 , . . . , n , i = 1 , . . . , m c_{ij}=b_{ij}\ast \omega_j,j=1,...,n,i=1,...,m cij=bij∗ωj,j=1,...,n,i=1,...,m
(3)确定正理想解 C ∗ C^* C∗和负理想解 C 0 C^0 C0,对于成本型属性,选择最小值,对于效益型属性,选择最大值。遍历 C C C的每一列 C j ( j = 1 , . . . , n ) C_j(j=1,...,n) Cj(j=1,...,n),根据指标类型选择每一列的最大值或最小值。
c j ∗ = { max { C j } , j 为 效 益 型 指 标 min { C j } , j 为 成 本 型 指 标 c_{j}^*=\begin{cases} \max\left \{ C_{j} \right \},j为效益型指标 \\ \min\left \{ C_{j} \right \},j为成本型指标 \end{cases} cj∗={max{Cj},j为效益型指标min{Cj},j为成本型指标
c j 0 = { min { C j } , j 为 效 益 型 指 标 max { C j } , j 为 成 本 型 指 标 c_{j}^0=\begin{cases} \min\left \{ C_{j} \right \},j为效益型指标 \\ \max\left \{ C_{j} \right \},j为成本型指标 \end{cases} cj0={min{Cj},j为效益型指标max{Cj},j为成本型指标
其中 c j ∗ , c j 0 c_j^*,c_j^0 cj∗,cj0分别表示正、负理想解的第 j j j个元素取值。
(4)计算各方案到两个理想解的距离,即计算加权规范阵 C C C的每一行 C i ( i = 1 , . . . , m ) C_i(i=1,...,m) Ci(i=1,...,m)与理想解 C ∗ , C 0 C^*,C^0 C∗,C0的距离。
-
距离正理想解的距离 s i ∗ s_i^* si∗
s i ∗ = ∑ j = 1 n ( c i j − c j ∗ ) 2 s_i^*=\sqrt{\sum_{j=1}^{n}\left ( c_{ij}-c_j^* \right )^2 } si∗=j=1∑n(cij−cj∗)2 -
距离负理想解的距离 s i 0 s_i^0 si0
s i 0 = ∑ j = 1 n ( c i j − c j 0 ) 2 s_i^0=\sqrt{\sum_{j=1}^{n}\left ( c_{ij}-c_j^0 \right )^2 } si0=j=1∑n(cij−cj0)2
(5)计算各方案的排序指标值,按照指标值大小确定方案排序
f i ∗ = s i 0 s i 0 + s i ∗ , i = 1 , . . . , m f_i^*=\frac{s_i^0}{s_i^0+s_i^*},i=1,...,m fi∗=si0+si∗si0,i=1,...,m
属性值规范化方法
数据的预处理又称属性值的规范化。
作用:
- 在综合评价之前将属性的类型作一致化处理使得表中任-属性下性能越优的方案变换后的属性值越大;
- 在用各种多属性决策方法进行分析评价时需要排除量纲的选用对决策或评估结果的影响;
- 为了便于采用各种多属性决策与评估方法进行评价’需要把属性值表中的数值归一化,即把表中数值均变换到 [ 0 , 1 ] \left [ 0,1 \right ] [0,1]区间上。
常见方法:
设原始的决策矩阵为 A = ( a i j ) m × n A=\left ( a_{ij} \right )_{m\times n} A=(aij)m×n,变化后的决策矩阵为 B = ( b i j ) m × n B=\left ( b_{ij} \right )_{m\times n} B=(bij)m×n。
-
标准化处理
在实际问题中,不同变量的测量单位往往不同,为了消除量纲效应,使每个变量都具有同等的表现力,数据分析中常对数据进行标准化处理,即
b i j = a i j − μ j s j , i = 1 , . . . , m , j = 1 , . . . , n b_{ij}=\frac{a_{ij}-\mu_{j}}{s_j},i=1,...,m,j=1,...,n bij=sjaij−μj,i=1,...,m,j=1,...,n
其中 μ j = 1 m ∑ i = 1 m a i j \mu_{j}=\frac{1}{m}\sum_{i=1}^{m}a_{ij} μj=m1∑i=1maij表示第 j j j列均值, s j = 1 m − 1 ∑ i = 1 m ( a i j − u j ) 2 s_j=\sqrt{\frac{1}{m-1}\sum_{i=1}^{m}\left ( a_{ij}-u_j \right )^2} sj=m−11∑i=1m(aij−uj)2表示第 j j j列方差, j = 1 , . . . , n j=1,...,n j=1,...,n。 -
线性变换
-
效益型属性
b i j = a i j a j m a x , j = 1 , . . . , n b_{ij}=\frac{a_{ij}}{a_j^{max}},j=1,...,n bij=ajmaxaij,j=1,...,n
其中 a j m a x a_j^{max} ajmax表示决策矩阵 A A A第 j j j列的最大值。 -
成本型属性
b i j = 1 − a i j a j m a x , j = 1 , . . . , n b_{ij}=1-\frac{a_{ij}}{a_j^{max}},j=1,...,n bij=1−ajmaxaij,j=1,...,n
-
-
标准0-1变换
-
效益型属性
b i j = a i j − a j m i n a j m a x − a j m i n , j = 1 , . . . , n b_{ij}=\frac{a_{ij}-a_j^{min}}{a_j^{max}-a_j^{min}},j=1,...,n bij=ajmax−ajminaij−ajmin,j=1,...,n
其中 a j m a x , a j m i n a_j^{max},a_j^{min} ajmax,ajmin分别表示初始的决策矩阵 A A A第 j j j列的最大值、最小值。 -
成本型属性
b i j = a j m a x − a i j a j m a x − a j m i n , j = 1 , . . . , n b_{ij}=\frac{a_j^{max}-a_{ij}}{a_j^{max}-a_j^{min}},j=1,...,n bij=ajmax−ajminajmax−aij,j=1,...,n
-
-
区间属性变换
对于区间属性,设第 j j j个属性最优属性区间为 [ a j 0 , a j ∗ ] \left [ a_j^0,a_j^* \right ] [aj0,aj∗],无法容忍下限为 a j l b a_j^{lb} ajlb,无法容忍上限为 a j u b a_j^{ub} ajub,则
b i j = { 1 − ( a j 0 − a i j ) ( a j 0 − a j l b ) , a j l b ≤ a i j < a j 0 1 , a j 0 ≤ a i j ≤ a j ∗ 1 − ( a i j − a j ∗ ) ( a j u b − a j ∗ ) , a j ∗ < a i j ≤ a j u b 0 , o t h e r b_{ij}=\begin{cases} 1-\frac{\left ( a_j^0-a_{ij} \right ) }{\left ( a_j^0-a_j^{lb} \right )} & \text{ , } a_j^{lb}\le a_{ij}< a_j^0 \\ 1& \text{ , } a_j^{0}\le a_{ij}\le a_j^* \\ 1-\frac{\left ( a_{ij}-a_{j}^* \right ) }{\left ( a_j^{ub}-a_j^{*} \right )}& \text{ , } a_j^*< a_{ij}\le a_j^{ub} \\ 0& \text{ , } other \end{cases} bij=⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧1−(aj0−ajlb)(aj0−aij)11−(ajub−aj∗)(aij−aj∗)0 , ajlb≤aij<aj0 , aj0≤aij≤aj∗ , aj∗<aij≤ajub , other -
向量规范化
b i j = a i j ∑ i = 1 m a i j 2 , j = 1 , . . . , n b_{ij}=\frac{a_{ij}}{\sqrt{\sum_{i=1}^{m}a_{ij}^2} },j=1,...,n bij=∑i=1maij2aij,j=1,...,n
规范化后,各方案同一属性值的平方和为1。
代码示例
假设现有5个高校的数据,需要根据这些数据对高校进行评估。
人均专著/(本/人) | 生师比 | 科研经费/(万元每年) | 逾期毕业率/% | |
---|---|---|---|---|
1 | 0.1 | 5 | 5000 | 4.7 |
2 | 0.2 | 6 | 6000 | 5.6 |
3 | 0.4 | 7 | 7000 | 6.7 |
4 | 0.9 | 10 | 10000 | 2.3 |
5 | 1.2 | 2 | 400 | 1.8 |
对上面的4个指标进行分析,人均专著、科研经费属于效益型指标,逾期毕业率属于成本型指标,而生师比属于区间型指标,假设生师比最优区间为 [ 5 , 6 ] \left [ 5,6 \right ] [5,6],无法容忍下限为2,无法容忍上限为12,需要对其中一些指标进行转换。给出python代码如下:
import numpy as npA = np.array([[0.1, 5, 5000, 4.7],[0.2, 6, 6000, 5.6],[0.4, 7, 7000, 6.7],[0.9, 10, 10000, 2.3],[1.2, 2, 400, 1.8]])# 师生比的最优区间
opt_range = [5, 6]
# 师生比的容忍上下限
to_lb = 2
to_ub = 12# 属性的权向量
omega = np.array([0.2, 0.3, 0.4, 0.1])# 对师生比进行区间属性进行规范化处理
def range_trans(param, opt_range, lb, ub):""":param param: 待转换的元素值:param opt_range: 最优区间:param lb: 无法容忍下限:param ub: 无法容忍上限:return:"""if lb <= param < opt_range[0]:return 1 - (opt_range[0] - param)/(opt_range[0] - lb)elif param <= opt_range[1]:return 1elif param <= ub:return 1 - (param - opt_range[1])/(ub - opt_range[1])else:return 0# Press the green button in the gutter to run the script.
if __name__ == '__main__':# 方案数m,属性数nm, n = np.shape(A)# 对师生比作区间变换for i in range(m):A[i, 1] = range_trans(A[i, 1], opt_range, to_lb, to_ub)# 对逾期毕业率做标准0-1变换a4_max = max(A[:, 3])a4_min = min(A[:, 3])for i in range(m):A[i, 3] = (a4_max - A[i, 3])/(a4_max - a4_min)# 属性进行向量规范化B = np.zeros([m, n])for i in range(m):for j in range(n):B[i, j] = A[i, j] / np.linalg.norm(A[:, j])# 构建加权规范阵omega_mat = np.tile(omega, (m, 1))C = B * omega_mat# 求正、负理想解。前两个属性以及第三个max_vec = np.amax(C, axis=0)min_vec = np.amin(C, axis=0)# 计算各方案与正、负理想解之间的距离res_array = np.zeros([m])for i in range(m):d0 = np.linalg.norm(max_vec - C[i, :])d1 = np.linalg.norm(min_vec - C[i, :])res_array[i] = d1/(d0 + d1)print(res_array.tolist())
运行结果如下:
[0.5240156414355697, 0.5725615802335773, 0.61086314578445, 0.7027067250301631, 0.32916727350419983]
从运行结果上来看,数值越大说明对该高校的评估结果越好,具体的排名为 [ 4 , 3 , 2 , 1 , 5 ] \left [ 4,3,2,1,5 \right ] [4,3,2,1,5],因此第4所高校总体来说评价最好。
相关文章:
【理想解法学习笔记】
目录 理想解法原理简介算法步骤属性值规范化方法代码示例 理想解法 原理简介 TOPSIS(Technique for Order Preference by Simi larity to IdealSolution)法是一种逼近理想解的排序方法。其基本的处理思路是:首先建立初始化决策矩阵,而后基于规范化后的初…...

CI/CD—Jenkins配置一次完整的jar自动化发布流程
背景: 实现设想: 要创建自动化发布,需要准备一台测试服务器提前安装好java运行所需的环境,JDK版本最好和Windows开发机器上的版本一致,在Jenkins上配置将构建好的jar上传到测试服务器上,测试服务器自动启动…...

Magento2根据图片文件包导入产品图片
图片包给的图片文件是子产品的图片,如下图:A104255是主产品的sku <?php/*** 根据图片包导入产品图片,包含子产品和主产品* 子产品是作为主图,主产品是作为附加图片*/use Magento\Framework\App\Bootstrap;include(../app/boot…...

从零开始的python学习(五)P71+P72+P73+P74
本文章记录观看B站python教程学习笔记和实践感悟,视频链接:【花了2万多买的Python教程全套,现在分享给大家,入门到精通(Python全栈开发教程)】 https://www.bilibili.com/video/BV1wD4y1o7AS/?p6&share_sourcecopy_web&v…...

OpenHarmony5.0分布式系统源码实现分析—软总线
一、引言 OpenHarmony 作为一款面向万物互联的操作系统,其分布式软总线(Distributed SoftBus)是实现设备间高效通信和协同的核心技术之一。分布式软总线通过构建一个虚拟的总线网络,使得不同设备能够无缝连接、通信和协同工作。本…...

基于SpringBoot实现旅游酒店平台功能六
一、前言介绍: 1.1 项目摘要 随着社会的快速发展和人民生活水平的不断提高,旅游已经成为人们休闲娱乐的重要方式之一。人们越来越注重生活的品质和精神文化的追求,旅游需求呈现出爆发式增长。这种增长不仅体现在旅游人数的增加上࿰…...
代码随想录算法训练营第六十一天 | 108. 冗余连接 109. 冗余连接II
108. 冗余连接 题目链接:KamaCoder 文档讲解:代码随想录 状态:AC Java代码: import java.util.*;class Main {public static int[] father;public static void main(String[] args) {Scanner scan new Scanner(System.in);int n…...

RoboVQA:机器人多模态长范围推理
23 年 11 月来自 Google Deepmind 的论文“RoboVQA: Multimodal Long-Horizon Reasoning for Robotics”。 本文提出一种可扩展、自下而上且本质多样化的数据收集方案,该方案可用于长期和中期的高级推理,与传统的狭窄自上而下的逐步收集相比,…...
TCP/IP原理详细解析
前言 TCP/IP是一种面向连接,可靠的传输,传输数据大小无限制的。通常情况下,系统与系统之间的http连接需要三次握手和四次挥手,这个执行过程会产生等待时间。这方面在日常开发时需要注意一下。 TCP/IP 是互联网的核心协议族&…...

Microsof Visual Studio Code 安装教程(中文设置)
VS Code 是一个免费的代码编辑器,可在 macOS、Linux 和 Windows作系统上运行。启动和运行 VS Code 既快速又简单。VS Code(全称 Visual Studio Code)是一款由Microsoft 推出的免费、开源、跨平台的代码编辑器,拥有强大的功能和灵活…...
python爬虫:Android自动化工具Auto.js的详细使用
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 1. Auto.js 简介2. 安装与配置2.1 安装 Auto.js2.2 安装 Python 环境2.3 安装 ADB 工具3. Python 与 Auto.js 结合3.1 通过 ADB 执行 Auto.js 脚本3.2 通过 Python 控制 Auto.js3.3 通过 Python 与 Auto.js 交互4. 常用…...

Unity DOTS从入门到精通之 自定义Authoring类
文章目录 前言安装 DOTS 包什么是Authoring1. 实体组件2. Authoring类 前言 DOTS(面向数据的技术堆栈)是一套由 Unity 提供支持的技术,用于提供高性能游戏开发解决方案,特别适合需要处理大量数据的游戏,例如大型开放世…...
linux 软件安装(上)
一、基础环境准备 1.1、安装VM 1.2、在VM上导入linux iso镜像,装好linux系统 华为centos镜像下载地址 https://mirrors.huaweicloud.com/centos/ https://mirrors.huaweicloud.com/centos/7.9.2009/isos/x86_64/ 网易centos镜像下载地址 htt…...

php虚拟站点提示No input file specified时的问题及权限处理方法
访问站点,提示如下 No input file specified. 可能是文件权限有问题,也可能是“.user.ini”文件路径没有配置对,最简单的办法就是直接将它删除掉,还有就是将它设置正确 #配置成自己服务器上正确的路径 open_basedir/mnt/qiy/te…...

【江协科技STM32】ADC数模转换器-学习笔记
ADC简介 ADC(Analog-Digital Converter)模拟-数字转换器ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁,ADC是一种将连续的模拟信号转换为离散的数字信号的设备或模块12位逐次逼近型…...

QT系列教程(20) Qt 项目视图便捷类
视频连接 https://www.bilibili.com/video/BV1XY41127t3/?vd_source8be9e83424c2ed2c9b2a3ed1d01385e9 Qt项目视图便捷类 Qt项目视图提供了一些便捷类,包括QListWidget, QTableWidget, QTreeWidget等。我们分别介绍这几个便捷类。 我们先创建一个Qt …...
git worktree的使用
git worktree 是 Git 提供的一个强大功能,允许你在同一个仓库中同时创建多个工作目录,每个目录对应一个分支,从而实现并行开发。以下是 git worktree 的常用命令和使用方法: 1. 创建新的工作目录(Worktree)…...

Spring Boot+RabbitMQ+Canal 解决数据一致性
目录大纲 一、环境配置1.1 docker-compose.yml 配置1.2 docker-compose 常用命令1.3 镜像服务启动状态 二、MySQL binlog 配置2.1 docker-compose command 配置 binlog2.2 创建canal用户,以及查看是否开启binlog 三、canal 相关配置文件3.1 canal.properties 完整文…...

Java高频面试之集合-08
hello啊,各位观众姥爷们!!!本baby今天来报道了!哈哈哈哈哈嗝🐶 面试官:详细说说CopyOnWriteArrayList CopyOnWriteArrayList 详解 CopyOnWriteArrayList 是 Java 并发包(java.util…...
C#实现高性能异步文件下载器(支持进度显示/断点续传)
一、应用场景分析 异步文件下载器用处很大,当我们需要实现以下功能时可以用的上: 大文件下载(如4K视频/安装包) 避免UI线程阻塞,保证界面流畅响应多任务并行下载 支持同时下载多个文件,提升带宽利用率后台…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...
【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15
缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

边缘计算医疗风险自查APP开发方案
核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...
Cesium1.95中高性能加载1500个点
一、基本方式: 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...