【硬件系统架构】冯·诺依曼架构
一、引言
在计算机科学的广袤领域中,冯·诺依曼架构犹如一颗璀璨的恒星,照亮了现代计算机发展的道路。从我们日常使用的个人电脑到强大的数据中心服务器,几乎都基于这一架构构建。它的出现是计算机发展史上的一个重要里程碑,深刻地影响了我们生活的方方面面,从科学研究到娱乐产业,从金融交易到社交网络。
二、冯·诺依曼架构定义
冯·诺依曼架构由运算器、控制器、存储器、输入设备和输出设备五大部分组成。
运算器
负责执行算术和逻辑运算,例如加法、减法、乘法、除法以及逻辑判断(如与、或、非等)。它是计算机进行数据处理的核心部件之一。
控制器
如同计算机的大脑中枢,它协调和控制计算机各部件的工作。控制器从存储器中取出指令,分析指令的内容,并根据指令要求向其他部件发出控制信号,以确保整个计算机系统有条不紊地运行。
存储器
用于存储数据和程序。它可以分为主存储器(如随机存取存储器RAM)和辅助存储器(如硬盘、固态硬盘等)。主存储器用于暂时存储正在运行的程序和数据,辅助存储器则用于长期存储大量的数据和程序。
输入设备
是计算机接收外部信息的通道,常见的输入设备包括键盘、鼠标、扫描仪等。这些设备将用户输入的信息(如文字、图像、指令等)转换为计算机能够识别的数字信号。
输出设备
负责将计算机处理后的结果以人们能够理解的形式输出,例如显示器显示图像和文字、打印机打印文档、扬声器播放声音等。
这种架构采用存储程序和程序控制的方式进行工作。存储程序意味着将程序和数据都以二进制的形式存储在存储器中,计算机按照程序中指令的顺序依次执行操作,程序控制则是指控制器根据程序中的指令来控制计算机各部件的协同工作。
三、冯·诺依曼架构发展历史
起源
20世纪40年代,冯·诺依曼在参与美国第一台电子计算机ENIAC(Electronic Numerical Integrator And Computer)的研制过程中,发现了ENIAC存在的一些局限性,例如程序需要通过外接线路进行设置,不便于修改和存储等问题。
提出
基于这些思考,冯·诺依曼提出了全新的计算机架构概念,即冯·诺依曼架构。1945年,他发表了一篇具有深远影响的报告《关于EDVAC的报告草案》,详细阐述了这种新架构的设计思想,包括将程序和数据存储在同一个存储器中的理念。
发展
随着电子技术的不断进步,冯·诺依曼架构得到了不断的完善和发展。从早期的真空管计算机到晶体管计算机,再到集成电路计算机和大规模集成电路计算机,虽然计算机的性能和规模发生了巨大的变化,但冯·诺依曼架构的基本原理一直保持不变。
四、冯·诺依曼架构特点
程序和数据存储的同一性
这是冯·诺依曼架构的一个重要特征。程序和数据都以二进制代码的形式存储在存储器中,计算机在运行过程中,根据指令的要求对数据进行操作,这种方式使得程序可以像数据一样被灵活地存储、读取和修改。
顺序执行
计算机按照程序中指令的顺序依次执行操作。这种顺序执行的方式虽然简单直观,但也存在一定的局限性,例如在处理一些并行性要求较高的任务时效率可能较低。
以运算器为中心
在早期的冯·诺依曼架构中,运算器是计算机的核心部件,其他部件都围绕着运算器进行数据的传输和交互。随着计算机技术的发展,这种情况逐渐发生了改变,例如现代计算机中,处理器的概念更加广泛,包括了运算器和控制器等多个部件的集成。
五、冯·诺依曼架构细分类型
单指令流单数据流(SISD)
这是最基本的冯·诺依曼架构类型。在这种架构中,计算机每次处理一条指令,并且每次对一个数据进行操作。早期的单处理器计算机大多属于这种类型。
单指令流多数据流(SIMD)
在这种架构中,计算机仍然每次处理一条指令,但这条指令可以同时对多个数据进行相同的操作。例如,在一些多媒体处理应用中,一条指令可以同时对多个像素点进行相同的颜色调整操作,这种架构可以提高数据并行处理的效率。
六、冯·诺依曼架构与软件对应关系
操作系统
操作系统是基于冯·诺依曼架构设计的软件的典型代表。它管理计算机的硬件资源,包括对运算器、控制器、存储器、输入设备和输出设备的管理。例如,操作系统负责分配内存(存储器管理),调度处理器的执行(运算器和控制器相关的进程调度),处理输入输出设备的请求(如接收键盘输入、将数据输出到显示器等)。在冯·诺依曼架构下,操作系统通过一系列的系统调用和驱动程序来实现对硬件的抽象和管理,使得用户可以方便地使用计算机。
应用程序
各种应用程序也是依赖冯·诺依曼架构运行。以文字处理软件为例,程序代码和用户输入的文字内容(数据)都存储在计算机的存储器中。当用户执行某个操作(如保存文件)时,控制器从存储器中取出相应的指令,运算器执行相关的操作(如将内存中的数据写入硬盘),最后通过输出设备(如显示器)显示操作结果(如保存成功的提示)。对于图形处理软件、数据库管理软件等不同类型的应用程序,虽然功能各异,但都是在冯·诺依曼架构的基础上,利用其运算器、控制器、存储器、输入设备和输出设备的协同工作来实现各自的功能。
编程语言
编程语言的设计和实现也与冯·诺依曼架构密切相关。大多数编程语言都是基于冯·诺依曼架构的存储程序和顺序执行的特点来设计的。例如,C语言中的变量存储、函数调用等机制都是在冯·诺依曼架构的基础上实现的。变量存储对应着存储器的功能,函数调用则涉及到运算器执行函数中的代码以及控制器对程序流程的控制。高级编程语言通过编译器或解释器将程序员编写的代码转换为冯·诺依曼架构计算机能够理解和执行的机器指令。
七、冯·诺依曼架构的优缺点
优点
通用性强:由于程序和数据存储的同一性,使得冯·诺依曼架构的计算机可以运行各种各样的程序,适用于不同的应用场景,从科学计算到办公自动化等。
易于实现:这种架构的原理相对简单,便于计算机硬件和软件的设计与实现。随着电子技术的发展,基于冯·诺依曼架构的计算机可以通过不断提高硬件的集成度和性能来满足不同用户的需求。
体系结构成熟:经过了几十年的发展,冯·诺依曼架构已经非常成熟,拥有丰富的软件资源和开发工具,这为计算机系统的开发、维护和应用提供了极大的便利。
缺点
冯·诺依曼瓶颈:由于程序和数据都存储在同一个存储器中,并且计算机按照顺序执行指令,当计算机需要同时处理大量的数据和指令时,存储器与运算器之间的数据传输带宽就会成为限制计算机性能提高的瓶颈,这种现象被称为冯·诺依曼瓶颈。
并行处理能力有限:顺序执行的特点使得冯·诺依曼架构在处理并行性要求很高的任务时效率较低,例如在处理大规模的并行计算任务时,需要采用特殊的技术和算法来提高并行处理能力。
分类 | 条目 | 描述 | 影响/补充说明 |
---|---|---|---|
优点 | 通用性强 | 程序和数据存储的同一性,支持多种应用场景 | 适用于科学计算、办公自动化、游戏开发等不同领域 |
易于实现 | 架构原理简单,便于硬件/软件设计 | 从真空管到集成电路均能实现,技术迭代成本低 | |
体系结构成熟 | 经过数十年发展,软硬件生态完善 | 拥有成熟的编程语言(如C/C++)、操作系统(如Windows/Linux)和开发工具链 | |
缺点 | 冯·诺依曼瓶颈 | 存储器和运算器之间的数据传输带宽限制性能 | 在高性能计算(如AI训练)中,90%以上的时间消耗在数据搬运而非计算 |
并行处理能力有限 | 顺序执行机制导致并行效率低下 | 需通过多核CPU、GPU加速或分布式计算等技术弥补 |
八、冯·诺依曼架构的案例
个人计算机(PC)
我们日常使用的台式机和笔记本电脑都是基于冯·诺依曼架构构建的。以一台典型的笔记本电脑为例,处理器(包含运算器和控制器)通过主板与内存(存储器)、硬盘(辅助存储器)、键盘和鼠标(输入设备)以及显示器和扬声器(输出设备)相连接。当用户打开一个文字处理软件时,软件程序和用户输入的文字内容都存储在内存和硬盘中,处理器按照程序中的指令对文字数据进行处理,处理结果通过显示器显示给用户。
服务器
在数据中心中,服务器也是基于冯·诺依曼架构。服务器负责处理大量的网络请求,存储和管理海量的数据。例如,一个Web服务器,它接收来自客户端的HTTP请求(输入设备可以看作是网络接口接收请求),通过处理器对请求进行处理,从存储器中读取相关的网页数据或程序,经过运算处理后,将结果以HTTP响应的形式发送回客户端(输出设备同样是网络接口发送响应)。
九、冯·诺依曼架构整体框架代码举例(以简单的C语言程序为例)
#include <stdio.h>// 运算器相关函数示例:加法函数
int add(int a, int b) {return a + b;
}// 控制器相关函数示例:简单的流程控制
void control_flow() {int num = 5;if (num > 3) {printf("The number is greater than 3.\n");} else {printf("The number is less than or equal to 3.\n");}
}// 存储器相关操作示例:定义变量存储数据
int main() {int data = 10; // 数据存储在内存中int result;// 调用运算器函数result = add(data, 5);// 控制器进行流程控制并输出结果control_flow();printf("The result of addition is: %d\n", result);return 0;
}
在这个简单的C语言程序中,我们可以看到一些冯·诺依曼架构的元素。变量的定义和存储体现了存储器的功能,函数的调用和运算体现了运算器的功能,而if - else
语句体现了控制器的流程控制功能。虽然这只是一个非常简化的示例,但可以大致说明冯·诺依曼架构在程序中的体现。
十、未来发展趋势
突破冯·诺依曼瓶颈
随着计算机技术的不断发展,人们一直在探索如何突破冯·诺依曼瓶颈。例如,采用新型的存储器技术,如非易失性存储器(如相变存储器、忆阻器等),提高存储器与运算器之间的数据传输速度。同时,研究新的计算机架构,如神经形态计算机架构,将计算和存储更加紧密地结合在一起,减少数据传输的延迟。
增强并行处理能力
面对越来越多的并行性要求很高的应用,如人工智能、大数据分析等,冯·诺依曼架构将不断进化以增强其并行处理能力。一方面,通过硬件技术的改进,如增加处理器的核心数量、采用更高效的并行处理单元等;另一方面,通过软件算法的优化,如开发更加高效的并行计算算法和编程语言支持。
与新兴技术融合
冯·诺依曼架构将与新兴技术如量子计算、生物计算等进行融合。例如,在量子计算机中,虽然其计算原理与冯·诺依曼架构有很大的不同,但在量子计算机的控制系统和数据处理接口等方面,仍然可以借鉴冯·诺依曼架构的一些设计思想。在生物计算方面,如何将生物分子的信息处理机制与冯·诺依曼架构相结合,也是一个值得研究的方向。
相关文章:
【硬件系统架构】冯·诺依曼架构
一、引言 在计算机科学的广袤领域中,冯诺依曼架构犹如一颗璀璨的恒星,照亮了现代计算机发展的道路。从我们日常使用的个人电脑到强大的数据中心服务器,几乎都基于这一架构构建。它的出现是计算机发展史上的一个重要里程碑,深刻地影…...
Android 13 关闭屏幕调节音量大小
一、问题描述 在Android 13系统中,通过修改frameworks/base/core/res/res/values/config.xml配置文件,实现灭屏状态下调节音量的功能。 二、修改内容 diff --git a/frameworks/base/core/res/res/values/config.xml b/frameworks/base/core/res/res/values/config.xml inde…...
[编程基础] Java · 学习手册
🔥 《Java 工程师修炼之路:从零构建系统化知识体系》 🔥 🛠️ 专栏简介: 这是一个以工业级开发标准打造的 Java 全栈技术专栏,涵盖语言核心、并发编程、JVM 原理、框架源码、架构设计等全维度知识体系。专…...
探索元生代:ComfyUI 工作流与计算机视觉的奇妙邂逅
目录 一、引言 二、蓝耘元生代和 ComfyUI 工作流初印象 (一)蓝耘元生代平台简介 (二)ComfyUI 工作流创建是啥玩意儿 三、计算机视觉是个啥 (一)计算机视觉的基本概念 (二)计算…...
C++ 迭代器失效详解:如何避免 vector 操作中的陷阱
目录 1. 什么是迭代器失效? 2. 哪些操作会导致迭代器失效? 2.1 vector 的插入操作(push_back, insert) 示例:push_back 导致迭代器失效 如何避免? 2.2 vector 的删除操作(erase, pop_back&…...
【fisco bcos】基于ABI调用智能合约
参考官方文档:https://fisco-bcos-documentation.readthedocs.io/zh-cn/latest/docs/sdk/java_sdk/assemble_transaction.html 先放一下智能合约: (就是一个很简单的插入和查找嗯) pragma solidity ^0.4.25; pragma experimental…...
【Python学习笔记】Pandas实现Excel质检记录表初审、复核及质检统计
背景: 我有这样一个需要审核的飞书题目表,按日期分成多个sheet,有初审——复核——质检三个环节,这三个环节是不同的同学在作业,并且领到同一个题目的人选是随机的,也就是说,完成一道题的三个人…...
Springboot 自动装配原理是什么?SPI 原理又是什么?
1. Spring Boot 自动装配原理 自动装配是 Spring Boot 简化配置的核心机制,其核心思想是根据类路径中的依赖自动配置 Spring 应用。 关键步骤: 启动注解 SpringBootApplication 该注解组合了 EnableAutoConfiguration,用于激活自动配置。 …...
【英语语法】基本句型
目录 前言一:主谓二:主谓宾三:主系表四:主谓双宾五:主谓宾补 前言 英语基本句型是语法体系的基石,以下是英语五大基本句型。 一:主谓 结构:主语 不及物动词 例句: T…...
扫雷-C语言版
C语言扫雷游戏设计(完整版) 游戏背景 扫雷是一款经典的益智类单人电脑游戏,最早出现在1960年代,并在1990年代随着Windows操作系统而广为人知。游戏目标是在不触发任何地雷的情况下,揭开所有非地雷的格子。玩家需要根…...
【C++初阶】--- list容器功能模拟实现
1.什么是list容器 在 C 标准模板库(STL)中,std::list 是一个非常有用的容器,它是双向链表的实现std::list 是一种序列式容器,它允许在序列内的任意位置进行高效的插入和删除操作。与数组和 std::vector 不同ÿ…...
gRPC 介绍及在嵌入式 Linux 下的成功编译及使用详解
gRPC 是一个高性能、开源和通用的 RPC 框架,由 Google 开发。它支持多种编程语言,并且能够运行在不同的环境中,包括嵌入式系统。本文将详细介绍 gRPC,以及如何在嵌入式 Linux 系统下成功编译 gRPC,并结合 protobuf 和 …...
C语言教程(十):C 语言函数详解
一、引言 在 C 语言中,函数是一组执行特定任务的代码块。通过将复杂的程序逻辑划分为多个函数,不仅能提高代码的可读性、可维护性,还便于代码的复用。无论是简单的数学计算,还是复杂的系统操作,函数都发挥着核心作用。…...
力扣刷题-热题100题-第35题(c++、python)
146. LRU 缓存 - 力扣(LeetCode)https://leetcode.cn/problems/lru-cache/?envTypestudy-plan-v2&envIdtop-100-liked 双向链表哈希表 内置函数 对于c有list可以充当双向链表,unordered_map充当哈希表;python有OrderedDic…...
LeetCode算法题(Go语言实现)_52
题目 给你一个下标从 0 开始的整数数组 costs ,其中 costs[i] 是雇佣第 i 位工人的代价。 同时给你两个整数 k 和 candidates 。我们想根据以下规则恰好雇佣 k 位工人: 总共进行 k 轮雇佣,且每一轮恰好雇佣一位工人。 在每一轮雇佣中…...
基于尚硅谷FreeRTOS视频笔记——13—HAL库和RTOS时钟源问题
RTOS的时钟源就是系统定时器中断,通俗来说就是系统定时器每中断一次,就扫描一次RTOS,查看RTOS中有没有任务的切换。 但是,系统存在一个HAL_Delay()函数,就是使用的系统定时器中断来执行的函数。 当我们在RTOS中&…...
FPGA入门学习Day1——设计一个DDS信号发生器
目录 一、DDS简介 (一)基本原理 (二)主要优势 (三)与传统技术的对比 二、FPGA存储器 (一)ROM波形存储器 (二)RAM随机存取存储器 (三&…...
JavaScript-立即执行函数(Immediately Invoked Function Expression,IIFE)
立即执行函数(Immediately Invoked Function Expression,IIFE)是 JavaScript 里一种很独特的函数,它在定义后会马上执行。下面会详细介绍它的语法、用途、优点以及注意事项。 一、语法 立即执行函数一般有两种常见的语法形式&am…...
【Leetcode 每日一题 - 补卡】2537. 统计好子数组的数目
问题背景 给你一个整数数组 n u m s nums nums 和一个整数 k k k,请你返回 n u m s nums nums 中 好 子数组的数目。 一个子数组 a r r arr arr 如果有 至少 k k k 对下标 ( i , j ) (i, j) (i,j) 满足 i < j i < j i<j 且 a r r [ i ] a r r [ …...
【工具-Krillin AI】视频翻译、配音、语音克隆于一体的一站式视频多语言转换工具~
Krillin AI 是全能型音视频本地化与增强解决工具。这款简约而强大的工具,集音视频翻译、配音、语音克隆于一身,支持横竖屏格式输出,确保在所有主流平台(哔哩哔哩,小红书,抖音,视频号,…...
常用绑定事件方式有哪几种
绑定事件分为3种: 1、内联模式:将函数名直接作为标签属性的属性值(注意:这里是带括号的,不带括号不生效,但是在vue中可以加括号也可以不加括号,如果需要穿参数就加括号,不需要传参数可以不加&am…...
数据结构之BFS广度优先算法(腐烂的苹果)
队列这个数据结构在很多场景下都有使用,比如在实现二叉树的层序遍历,floodfill问题(等等未完成)中,都需要借助队列的先进先出特性,下面给出这几个问题的解法 经典的二叉树的层序遍历 算法图示,以下图所示的二叉树为例…...
linux 学习 1.开始学习
准备学习linux记录一下学习内容,只会包含必要的知识,和部分演示 我采用的系统是Ubuntu24.04 初始掌握 学习首先需要掌握如何查看帮助手册 man man # man 加任何命令可以看具体命令的帮助手册 man mkdir进入手册按 d(down):往下翻半页u(u…...
Flink-01学习 介绍Flink及上手小项目之词频统计
flink简介 官网 概述: 学习Flink具体包括四个关键概念:流数据的持续处理,事件时间,有状态流处理和状态快照。 Apache Flink 是一个开源的流处理框架,旨在处理批处理和实时数据处理,具有高吞吐量和低延迟的…...
【Linux我做主】探秘gcc/g++和动静态库
TOC Linux编译器gcc/g的使用 github地址 有梦想的电信狗 前言 在软件开发的世界中,编译器如同匠人的工具,将人类可读的代码转化为机器执行的指令。 对于Linux开发者而言,gcc和g是构建C/C程序的核心工具链,掌握它们的原理和使…...
工控系统前端设计(pyqt)
题目源自:白月黑羽的项目实战四-[工控系统前端] 代码已上传至gitcode https://gitcode.com/m0_37662818/Industrial_Control_System_Front_End 心得体会:直接用组态软件或者js吧 项目亮点 tablemodel的使用,绑定了表格和数据风机自定义ite…...
一台 Master 多节点玩转 Kubernetes:sealos 一键部署实践
文章目录 一台 Master 多节点玩转 Kubernetes:sealos 一键部署实践🔗 参考链接🌐 部署环境📦 安装包说明🔧 前期准备🚀 使用 sealos 安装 Kubernetes✅ 验证集群状态📌 后续可做的优化和拓展&am…...
写书的三驾马车
2019年8月19日23:52:28 先亮出我们的兵器组合: GitBook Git Markdown,享受行云流水一般的写作 个人秀 GitBook : 一个基于 Node.js 的文档格式转换工具,支持 Markdown 和 AsciiDoc 两种语法格式,可以输出 HTML、PDF等格式的…...
科学护理进行性核上性麻痹,缓解病痛提升生活质量
进行性核上性麻痹是一种罕见的神经系统变性疾病,患者常出现姿势平衡障碍、吞咽困难、眼球运动异常等症状。通过科学的健康护理,能在一定程度上减轻患者痛苦,提升生活质量。 日常护理,保障安全舒适 患者日常活动时,需确…...
第七章:7.2求方程a*x*x+b*x+c=0的根,用3个函数,分别求当:b*b-4*a*c大于0、等于0和小于0时的根并输出结果。从主函数输入a、b、c的值
//求方程a*x*xb*xc0的根,用3个函数,分别求当:b*b-4*a*c大于0、等于0和小于0时的根并输出结果。 //从主函数输入a、b、c的值 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<math.h> void s1(float a, float b, fl…...
优选算法系列(7.BFS 解决最短路问题)
简介: 先走到A,之后弹出A再把A能走到的地方加进去向外扩展把队列里面的元素(B,C)弹出来,再把B,C能到的地方入队列 一直这样那么最短路程就是扩展的层数。 迷宫中离入口最近的出口(me…...
实现定时发送邮件,以及时间同步
定时发送邮件 部署邮件服务 查看有没有安装mailx,安装了 [root192 ~]# rpm -q mailx mailx-12.5-43.fc38.x86_64去网易拿一下授权码,写到配置文件里 vim /etc/mail.rcset fromxxxxxxx163.com set smtpsmtp.163.com set smtp-auth-userxxxxxxx163.com set smtp-auth-passwor…...
Java反射知识点学习笔记
目录 一、定义 二、获取class对象的三种方式 1、Class.forName("全类名") 2、类名.class 3、对象.getClass() 三、案例 1、获取 class 反射对象三种方式 2、利用反射获取构造方法 3、利用反射获取成员变量 4、利用反射获取成员方法 Java反射是一种强大的编…...
Unity ShaderLab引用HLSL文件找不到其中函数
在写Unity Shader的过程中,常常需要将方法封装到HLSL文件中,今天遇到一个这样的报错, 明明hlsl文件路径引用没问题,却引用不到方法 并且将分散文件中的函数复制过来一切正常,最终定位到HLSL的预编译指令中 这指令的…...
【文献笔记】LLM-based control code generation using image recognition
LLM-based control code generation using image recognition 原文代码 标题翻译:基于图像识别的LLM控制代码生成 1. 内容介绍 1.1. 简介 论文提出了一种基于LLM的新方法,通过图像识别从管道仪表图(Piping and Instrumentation Diagrams,…...
算法之贪心算法
贪心算法 贪心算法核心思想常见应用场景典型案例案例一:找零问题案例二:活动选择问题案例三:货仓选址问题 贪心算法的应用详解霍夫曼编码最小生成树Dijkstra最短路径算法 总结 贪心算法 核心思想 贪心算法(Greedy Algorithm&…...
从“链主”到“全链”:供应链数字化转型的底层逻辑
1. 制造业与供应链数字化转型的必然性 1.1. 核心概念与战略重要性 制造业的数字化转型,是利用新一代数字技术(如工业互联网、人工智能、大数据、云计算、边缘计算等)对制造业的整体价值链进行根本性重塑的过程。这不仅涉及技术的应用&#…...
【Windows本地部署n8n工作流自动平台结合内网穿透远程在线访问】
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
Python中如何加密/解密敏感信息(如用户密码、token)
敏感信息,如用户密码、API密钥、访问令牌(token)、信用卡号以及其他个人身份信息(PII),构成了现代应用程序和系统中最为关键的部分。这些信息一旦被未经授权的第三方获取,可能引发灾难性的后果,从个人隐私泄露到企业经济损失,甚至是大规模的社会安全问题。保护这些敏感…...
Win10如何一键切换IP地址教程
切换IP地址可能对于许多用户来说是一个相对陌生但又可能经常需要进行的操作。无论是出于网络安全、突破网络限制还是仅仅为了测试目的,一键切换IP地址都能带来极大的便利。以下是在 Windows 10 中通过批处理脚本实现一键切换 IP 地址的详细教程: 方法一&…...
2021-11-09 C++三位数平方含有该数
缘由求解,运算函数,哪位大神教一下-编程语言-CSDN问答 void 三位数平方含有该数() {//缘由https://ask.csdn.net/questions/7560152?spm1005.2025.3001.5141int a 100, aa 1000, f 0;while (a < aa){f a*a;while (f > a)if ((f - a) % aa)f …...
高效检测书签网址,告别无效链接烦恼
软件介绍 你是否有过面对浏览器中满满的书签,却不知道哪些网址还“健在”,哪些已经“跑路”的烦恼?别担心,今天就给大家介绍一款神奇的小工具——“网址小卫士”。 检测轻松搞定 还在一个个手动检查书签网址的有效性吗…...
SpringBoot高校学生评教系统设计实现
概述 基于SpringBoot的高校学生评教系统项目,该系统包含了学生评教、教师管理等功能,适合作为JavaWeb学习项目。 主要内容 1. 学生功能模块 查看评教信息:可以查看学期、院系、任课教师、课程名称等信息评价打分功能:可以对课…...
代码随想录算法训练营第二十天
LeetCode题目: 39. 组合总和40. 组合总和 II131. 分割回文串2176. 统计数组中相等且可以被整除的数对(每日一题) 其他: 今日总结 往期打卡 39. 组合总和 跳转: 39. 组合总和 学习: 代码随想录公开讲解 问题: 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 targ…...
C++入门基础:命名空间,缺省参数,函数重载,输入输出
命名空间: C语言是基于C语言的,融入了面向对象编程思想,有了很多有用的库,所以接下来我们将学习C如何优化C语言的不足的。 在C/C语言实践中,在全局作用域中变量,函数,类会有很多,这…...
GPU怎么绑定到服务器上
确认服务器与 GPU 兼容性1:不同的服务器和 GPU 型号连接方式有所不同,要确保所选的 GPU 卡与服务器兼容。可通过服务器和 GPU 的产品文档,或使用服务器厂商提供的兼容性查询工具进行确认。安装前准备:关闭服务器电源,并…...
opencv函数展示2
一、像素操作与算术运算 1.cv2.split() 2. cv2.merge() 3.cv2.add() 4.cv2.bitwise_and() 5.cv2.bitwise_or() 6.cv2.inRange() 二、仿射变换 1.cv2.getRotationMatrix2D() 2.cv2.warpAffine() 3.cv2.flip() 4.cv2.resize() 三、透视变换 1.cv2.getPerspectiveTransform() 2…...
零基础上手Python数据分析 (16):DataFrame 常用统计分析方法
写在前面 —— 超越简单排序,探索数据内在规律,掌握Pandas统计分析基础 上一篇博客,我们学习了如何使用 Pandas 对 DataFrame 进行排序和排名,这使得我们能够更好地组织数据并快速定位关键信息。 然而,仅仅对数据进行排序和排名,还不足以完全理解数据。 要想更深入地解…...
文件系统 软硬连接
🌻个人主页:路飞雪吖~ 🌠专栏:Linux 目录 一、理解文件系统 🌠磁盘结构 二、软硬连接 🌟软硬链接 🌠软链接: 🌠硬链接: 🌟理解软硬链接的应…...
Linux环境基础开发工具使用
本节目标: 1. 学习yum工具,进行软件安装 2. 掌握vim编辑器使用,学会vim的简单配置 3. 掌握gcc/g编译器的使用,并了解其过程,原理 4. 掌握简单gdb使用于调试 5. 掌握简单的Makefile编写,了解其运行思想…...