矩阵式键盘最小需要多少个IO驱动

STM32CubeMX实现4X5矩阵按键(HAL库实现) 将按键的信息在串口2显示 阅读详情

1. 概述

        矩阵式键盘由于有其占用硬件资源少的优点有着极其广泛的应用,如PC键盘、电话按键、家用电器等等这类产品.矩阵键盘的基本原理如下所示(仅是原理示例,实际实现上还会为每个按键加上防倒流的二极管解决“鬼影”问题),一般的实现上将每一行和每一列都连接到一个独立的IO上,对行和列进行独立扫描就可以知道那个按键被按下了。

        虽然采用矩阵式键盘可以降低硬件IO的数量,但对于要实现相同数量按键的矩阵键盘最少需要多少个IO驱动呢?需要硬件IO最小其实就是需要满足约束条件x*y=n的f_{min}=x+y最小值。

        上述约束条件x*y=n实际上式还存在一些不严谨的地方,这里还有一个隐含条件x、y都需要是整数离散值,若需要实现按键数量n为质数,找到的x,y并不能使x+y值最小(如需要实现按键数量为17,只能找到x=1、y=17使得x+y=18个IO;其实5+4的IO数量就可以实现17个按键),若考虑x、y的整数取值,约束条件应该修改为:

x*y>=n\\ f_{min}=x+y

        当为了简单起见,这里仍然使用约束条件x*y=n,并假定x、y并不一定为整数,再找到x、y后在找到整数的x、y。

2. 何角度

从几何角度看待这个,x*y其实是矩形面积,x+y为矩阵的半周长,如下:

        这时我们就将求x+y的最小值转换成求在面积一定是求周长(半周长)的最小值,直接寻找x+y最小值仍然存在一定的难度,但我们可以反过来考虑,即在周长(a+b)一定情况下,怎么分配a、b长度使得这个矩形面积最大,这个问题就相对比较容易了:当a=b时矩形变成正方形,此时矩形的面积最大周长最短。

3. 微积分角度

        另外也可以从微积分的角度进行分析,首先

f(x)=x+y(x*y=n)

        对y进行代换后:

f(x)=x+\frac{n}{x}

        f(x)的函数图像大概如下(下图将n取值100进行函数图像绘制):

        通过函数图像,大概知道f(x)存在一个最小值,这个f(x)的最小值也是这个f(x)的极值点,对f(x)求导等于0的点为极值点:

f(x)^{-1}=1-\frac{n}{x^2}=0\\ \\ x=\sqrt{n}

        当\sqrt{n}的结果为整数时x+y的最小值为2*\sqrt{n},当\sqrt{n}的结果不为整数时,x,y需要选择接近\sqrt{n}的整数且需要保证x*y>=n。

4. 算术-几何平均不等式

        上述无论是面积还是微积分角度都要求x,y为连续值,若为离散的整数,这时x、y需要满足以下等式:

x*y>=n\\ f_{min}=x+y

        这里要要计算x+y的最小值就需要借助数学里面的一个重要的不等式 - 算术-几何平均不等式,对两个正实数存在以下不等式:

\frac{x+y}{2}>=\sqrt{x*y}

        将x于y的约束条件带入上式:

\frac{x+y}{2}>=\sqrt{x*y}>=\sqrt{n}\\ x+y>=2\sqrt{n}

        通过算数-几何不等式可求的x+y的最小值为2\sqrt{n},由于x和y为整数需要对其结果做向上取整。

电视遥控器背后的秘密:拆解ADC按键电路设计与常见故障维修 本文深入解析了电视遥控器及面板按键失灵的常见原因,重点剖析了采用ADC(模数转换器)检测方案的按键电路设计原理。通过对比传统方案,揭示了ADC电路在节省IO口与成本方面的优势,并详细阐述了其核心的分压检测机制。文章结合典型故障现象,如按键失灵、功能串键等,提供了基于万用表测量的实战维修流程与诊断方法,并给出了从电阻选型到软件容错的设计优化建议。 阅读详情

相关推荐

使用74HC165扩展IO读取8个按键状态

hc165_init()函数用于初始化74HC165芯片,将相应引脚设置为输出,并将时钟引脚和使能引脚初始化为低电平。将74HC165芯片与微控制器连接时,需要将CLK引脚连接到微控制器的一个输出引脚,将SER引脚连接到另一个输出引脚,将OE引脚连接到微控制器的一个输出引脚,将Q0-Q7引脚连接到按键。在嵌入式系统中,有时候需要读取多个按键的状态,但是通常微控制器的IO引脚数量是有限的。通过连接合适的引脚,并使用适当的代码,可以轻松地扩展IO引脚数量,以满足嵌入式系统中的按键读取需求。

ZrElixir的博客 1360

矩阵键盘的介绍

矩阵键盘的介绍

FaithAndVirtue的博客 7861

89c51 数码管显示4X5键盘矩阵按键

单片机AT89c51 用矩阵键盘来实现对20个字符的在数码管上的显示!

51单片机学习笔记 ——(二)矩阵键盘

而矩阵键盘是输入元件,所以我们矩阵键盘采用的扫描是输入扫描,以非常快的速度不断循环读取IO口的值,达到与正常按键相同的效果。但是与数码管的扫描略有不同,数码管是输出元件,所以数码管的扫描是输出扫描,我们不断循环输出不同的值,利用人眼的视觉暂留实现我们需要的操作。与之前的独立按键进行比较,如果我们单独看矩阵键盘的一行或者一列,就会发现它们有着相同的结构,在此用列来进行比较(用行同理)。但是如果采用矩阵的连接方式,我们需要的IO口数目就会变成行+列个,矩阵的行列数越多,减小的程度就越明显。

zeandon的博客 679

51 矩阵键盘精华版

51单片机矩阵键盘精华版,,H:\矩阵键盘程序.txt

单片机矩阵键盘详解以6×5键盘矩阵解读为例进行描述。

运用位操作处理进行键盘矩阵的解读,可适用于所有基于MCU的智能化仪器仪表中键盘矩阵的解读。

51单片机矩阵键盘扫描及使用方法

本文详细介绍了矩阵键盘的使用方法,都是干货窝

小指南的博客 3万+

工控板4X5行列式键盘PCB图和STC单片机12864液晶按键显示

4X5行列式键盘,12个IO输入,16个IO输出 的STC单片机工控板按键输入显示C测试程序,按键按下液晶显示屏显示所对应的按键号码。

单片机按键连接方法总结(五种按键扩展方案详细介绍)

http://blog.sina.com.cn/s/blog_634771fd0100hd1h.html 单片机在各种领域运用相当广泛,而作为人机交流的按键设计也有很多种。不同的设计方法,有着不同的优缺点。而又由于单片机I/O资源有限,如何用最少的I/O口扩展更多的按键是我所研究的问题。接下来我给大家展示几种自己觉得比较好的按键扩展方案,大家可以在以后的单片机电路设计中灵活运

zhouchibaooo的专栏 1万+

单片机课程设计 矩阵键盘

最小单元、键盘及显示模块:设计任务与要求: 1. CPU模块 2. 4*4键盘 3. 6位LED显示

青藏高原冻土数据实战:如何用QGIS分析1961-2020年冻土退化趋势(附完整操作步骤)

本文详细介绍了如何使用QGIS分析1961-2020年青藏高原冻土退化趋势,包括数据准备、预处理、时空分析和模型验证等全流程操作。通过TTOP模型和Stefan方程,揭示了冻土退化的空间差异和海拔依赖性,为环境研究提供科学依据。

weixin_29276847的博客 127

基于单片机的贪吃蛇设计

在繁忙的工作之余,娱乐成为人们生活不可或缺的一份子,而游戏作为近年来逐渐兴起的一种娱乐方式,已经越来越受到人们的青睐。远大于两个机器周期(2us),故可以实现上电复位功能,另外还设置了一个按键作为复位按键,即按下后直接将单片机RST端接至5V复位单片机,当按键松开后再重复电容充电的过程恢复正常运行。,单片机内部有将其上拉,所以在没按下按键时按键输入为高电平,按键另一端接地,当按下按键时输入则为低电平。根据以上两种方案的描述,再结合我们的系统设计,显而易见,我们需要独立式键盘,所以,这里我们选择方案一。

qq_63964231的博客 3191

LWIP协议栈在STM32H7上的内存优化实战:如何用32KB RAM实现稳定千兆以太网通信

本文深入探讨了在STM32H7微控制器上,如何通过内存优化策略,在仅32KB的D2 SRAM中稳定运行LWIP协议栈以实现千兆以太网通信。文章详细分析了STM32H7的内存架构、LWIP的内存消耗瓶颈,并提供了从描述符表与PBUF池精确分配、链接脚本修改到MPU区域划分的一整套实战优化方案,旨在解决大数据量传输卡死等常见配置问题。

gg901的博客 604

嵌入式矩阵键盘轮询管理类设计与实现

矩阵键盘是嵌入式人机交互的基础输入设备,其核心原理基于行列扫描与时间复用,通过N+M根IO线检测N×M个按键状态。实现可靠识别需解决机械防抖、多键冲突、扫描时序同步及低功耗调度等共性问题。KeyboardManager作为轻量级C++管理类,提供硬件抽象接口(KeyIOInterface)、四状态按键机(IDLE/DEBOUNCING_PRESS/PRESSED/DEBOUNCING_RELEASE)和事件回调机制,支持2KRO、运行时参数配置与RTOS集成,在Cortex-M系列MCU上RAM占用仅约44

weixin_29215509的博客 172

第1章>>1.5:神电测控为什么开发LabVIEW ZYNQ FPGA软件工具包?(ZYNQ芯片的特点与优势)《LabVIEW ZYNQ FPGA宝典》

ZYNQ是赛灵思公司(Xilinx)推出的新一代全可编程片上系统(APSoC,All-Programmable SoC),它将处理器的软件可编程性与FPGA的硬件可编程性进行完美整合,以提供无与伦比的系统性能、灵活性与可扩展性。Zynq-7000系列是Xilinx于2010年4月推出的行业第一个可扩展处理平台,旨在为视频监视、汽车驾驶员辅助、工厂自动化、医疗器械等高端嵌入式应用提供所需的处理能力与计算性能。这款基于ARM处理器的SoC可满足复杂嵌入式系统的高性能、低功耗和多核处理能力等要求。

qq_40694786的博客 1647

r语言svr模型_R语言初探强化学习中的马尔可夫模型

强化学习大家这几年应该不陌生,从AlphaGo到AlphaZero让大家见识到了强化学习的力量。我们今天给大家介绍一个在强化学习中核心思维马尔可夫决策过程(MDP)。马尔科夫决策过程是基于马尔科夫论的随机动态系统的最优决策过程。它是马尔科夫过程与确定性的动态规划相结合的产物,故又称马尔科夫型随机动态规划,属于运筹学中数学规划的一个分支。今天我们给大家介绍下马尔可夫决策过程中用到一些算法以...

weixin_28994357的博客 1111

计算机组成p1测试,计算机等级测验四级计算机组成与接口.docx

文档介绍:计算机等级测验四级计算机组成与接口————————————————————————————————作者:————————————————————————————————日期: 计算机组成与接口冯诺依曼P1标志寄存器P16Pentium微处理器模式P498086复位P36全相联直接相连映像组相联映像技术P598259A中断控制器P1238251A串行通讯P1498255A并行通讯P1598...

weixin_39555320的博客 261

STK之Commu模块之三仿真卫星通信链路参数计算

考虑上述衰减的影响,可以得到卫星接收机输入端的载波功 [C] = [PT] +[GT] +[GR] -[L] -[L1] -[L2] (

juanhuokang2681的博客 8267

矩阵键盘的使用

源文件下载可访问底部联系方式也可前往电子校园网官网搜索关键词关键词: SGP30。矩阵键盘本质是使用8个io口来进行16个按键的控制读取,可以减小io口的使用,用4条I/O线作为行线,4条I/O线作为列线组成的键盘。在行线和列线的每个交叉点上,设置一个按键。而这样的按键中按键的个数是4 X 4个。

特纳斯电子官方博客站 756

Python表白代码:“ 星光月夜烟花皆归你,我也归你”(满天烟花盛开、附番外玫瑰)

导语 "慢品人间烟火色 闲观人间岁月长" ———致自己​​​ ​ ???? 遇见我以后,我们的故事就开始了,愿你历经山河,仍觉得人间值得????。 ​ 星光月夜烟花皆归你,我也归你。关于烟花????大家都​知道多少?有多少表白故事情节都发生在烟 花下,想必木木子????不用说大家也知道叭~​​ 今天这则小短文就是关于烟花的故事!你准备好跟我一起进入烟花的世界了嘛? ​正文 “每一句文案,都有一个故事,你仔细听” ​ 1)环境安装???? 准备好:.

顾木子吖的博客 5万+

RK3568平台开发系列讲解:Linux wifi的调试

查询结果中state为ENABLE,表示hostapd程序启用成功。首先查看设备是否存在。

内核笔记 167

按键扫描该怎样实现?怎样利用更少的IO扫描更多的按键?

做项目时IO总是不够用?独立按键太浪费? 本期视频教你用最少的IO,扫出最多的按键! 以 5个IO 为例,你能实现最多多少个按键扫描?

2601_95158076的博客 328

自定义模型训练——打造专属OpenClaw模型(2026AI版)

本文介绍了OpenClaw自定义模型训练的核心流程,包括框架选择(PyTorch、TensorFlow、HuggingFace和原生OpenClaw框架)、训练环境搭建脚本、以及数据收集系统的设计。数据收集器支持从数据库、API、文件和网络等多种来源获取训练数据,并提供灵活的过滤机制确保数据质量。通过这套系统,开发者可以高效准备训练数据,为后续模型训练打下坚实基础。

博客 877

IO口扫键归纳

分享快乐!快乐分享! 每次做案子,都要考虑IO口是否足够,一般都用直接IO按键,或者矩阵按键。 其实,除了这2种以外,还有许许多多的按键矩阵方式。站在巨人肩膀上确实感觉良好,现在就把巨人的肩膀记下,免得忘了。 假如有5个IO口,最简单直接的就是IO直接按键。 方法1: 简单粗暴又准确。直接读端口状态,低电平则对应端口按键按下,高电平则无按下。 然

驳季仔的博客 3941

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

单片机C51 之(9)GPIO按键--矩阵键盘

之前在 单片机C51 之(6)GPIO按键–基础应用 中说到,按键作为单片机最简单的输入设备,简单实用。 一个单独的按键使用需要一个GPIO相连 扫描 电平的变化,从而相应对于的操作。但是如果一个系统中需要用到多个按键的时候怎么办呢?就像数码管一样,该如何解决多个按键输入问题? 这里就引入矩阵键盘的概念:键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键

feiffer·hu的博客 2689

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【51单片机】矩阵键盘_51单片机4×4矩阵键盘,阿里+头条+腾讯大厂Golang笔试真题

在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。采用逐行或逐列的“扫描”,就可以读出任何位置按键的状态。结构:在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。

2401_84254474的博客 1433

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

上一篇: 线性方程组的解-有解为什么只有唯一解和无穷多解
下一篇: Windows双网卡上网原理以及配置方法
老Z先生
博客等级 码龄4年 417粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值