【2024年-11月-9日-开源社区openEuler实践记录】OpenAMDC:开启智能边缘计算与系统管控的新征程
一、开篇:邂逅 OpenAMDC
大家好,我是 fzr123,在开源项目的浩瀚天地里持续探索,今天要带大家深入了解一项极具前瞻性与创新性的开源成果——OpenAMDC。在边缘计算蓬勃兴起、系统复杂度与日俱增的时代背景下,OpenAMDC 宛如一颗耀眼的新星,正为智能边缘设备管控、系统优化以及数据高效处理勾勒全新蓝图,有望重塑众多行业的数字化运营模式。
二、技术亮点
(一)微内核架构设计
OpenAMDC 采用了微内核架构,这一设计理念为整个系统带来了高度的灵活性与可扩展性。相较于传统的宏内核,微内核仅保留最核心、最基础的操作系统功能,诸如进程调度、内存管理等,而将如文件系统、设备驱动等外围服务剥离出来,以模块化、插件化的形式存在。这意味着,开发人员可以针对特定边缘应用场景,轻松定制、替换或升级对应的模块,无需改动整个内核。例如,在一个专注于工业物联网数据采集的边缘节点上,只需更换数据采集相关的模块,就能适配不同传感器协议,极大缩短了开发周期,降低了系统适配难度。
(二)智能边缘计算赋能
边缘计算是 OpenAMDC 的核心发力点。它内置了先进的智能算法,能够让边缘设备在本地就完成海量数据的预处理、分析,而非将所有数据一股脑地传输回云端。以智能安防摄像头为例,以往摄像头需持续上传视频流至云端服务器进行分析,不仅占用大量带宽,还存在数据传输延迟。OpenAMDC 加持下,摄像头利用本地算力,实时检测画面中的异常行为,如非法入侵、火灾烟雾等,仅在发现异常时才向云端发送关键帧与警报信息,大幅减轻网络负担,同时实现近乎实时的响应速度,保障安防监控的及时性与高效性。
(三)异构硬件适配
面对边缘计算场景中五花八门的异构硬件,OpenAMDC 展现出卓越的适配能力。无论是 ARM 架构的低功耗微处理器,常用于智能家居设备;还是 x86 架构的高性能工控机;亦或是具备强大图形处理能力的 GPU 加速卡,OpenAMDC 都能精准识别并高效利用其硬件特性。通过抽象硬件接口层,系统屏蔽了不同硬件之间的差异,开发者编写代码时无需针对特定硬件反复调试,统一的代码框架就能在多种硬件平台上平稳运行,为边缘设备的硬件选型提供了广阔的自由度。
(四)安全强化机制
在边缘设备常常面临的复杂且严峻的安全环境中,OpenAMDC 筑起了多道坚实防线。从启动时的固件安全校验,确保设备初始运行环境的纯净性,到运行过程中的实时入侵检测,利用机器学习算法分析网络流量、系统调用等行为模式,识别潜在恶意活动。一旦发现异常,不仅能及时阻断攻击,还会自动触发修复机制,恢复受损的系统配置与数据。此外,数据传输环节采用加密技术,防止敏感信息在边缘与云端之间泄露,全方位守护边缘计算系统的安全稳定。
三、应用场景
(一)工业 4.0 智能制造
在工业 4.0 浪潮下,工厂车间里各类智能设备星罗棋布,从自动化机器人、智能传感器到高精度数控机床。OpenAMDC 融入其中,为每一台设备赋予本地智能决策能力。工业机器人能依据实时采集的生产环境数据,如温度、湿度、物料位置等,瞬间调整操作参数,优化生产流程,减少次品率。智能传感器借助边缘计算快速处理数据,提前预测设备故障,通知运维人员及时维护,避免生产线大规模停工,真正实现智能化、自适应的制造模式,提升工业生产效率与质量。
(二)智慧城市基础设施管理
智慧城市涵盖众多基础设施,路灯、交通信号灯、环境监测站等都可成为智能边缘设备。OpenAMDC 助力路灯系统根据天色、车流量自动调节亮度,节能减排;交通信号灯依据实时路况动态调整时长,缓解拥堵;环境监测站在本地分析空气质量、噪声等数据,快速甄别污染源头,为城市管理部门提供精准决策依据,让城市运转更加绿色、高效、有序。
(三)智能农业精准作业
农业领域正迈向精准化、智能化,OpenAMDC 大有用武之地。在农田里,配备传感器的物联网设备借助它实时监测土壤湿度、肥力、酸碱度,无需等待云端反馈,当场就能决策灌溉与施肥策略,精准调控每一寸土地的养分供给。无人机搭载边缘计算设备,利用 OpenAMDC 快速处理航拍图像,精准识别病虫害区域,引导喷洒农药,大大提高农业生产的科学性与产出率,保障粮食安全。
(四)远程医疗健康监测
随着远程医疗的兴起,可穿戴医疗设备如智能手环、智能贴片等成为人们健康监测的好帮手。OpenAMDC 嵌入这些设备,使其能够实时分析生理数据,如心率、血压、睡眠质量等,在本地初步判断健康状况,仅当检测到异常时,才将关键数据传输给专业医生。这不仅保护了患者隐私,还减少了不必要的数据传输,让远程医疗服务更加高效、贴心。
四、部署实操
(一)环境准备
- 硬件选型:根据应用场景确定合适的硬件平台。若是构建轻量级智能家居网关,ARM 架构的开发板如 Raspberry Pi 系列是不错的选择,因其功耗低、成本小;要是面向工业控制场景,需要更高性能与稳定性,x86 架构的工控机更为适配,配备多核处理器、大容量内存与丰富接口。确保所选硬件满足 OpenAMDC 的最低系统要求,包括 CPU 主频、内存容量、存储大小等。
- 操作系统安装:OpenAMDC 多基于 Linux 衍生系统进行部署。先为硬件安装基础的 Linux 发行版,如 Ubuntu Core 或 Yocto Project 定制的 Linux 系统。安装过程需仔细配置网络参数,设定静态 IP 地址,方便后续设备联网通信,以及设置用户名、密码等系统登录信息,保障系统安全访问。
- 依赖软件安装:登录系统后,依据项目官方文档,安装必要的编译工具、库文件。对于基于 C/C++ 开发的 OpenAMDC,要安装 GCC 编译器、Make 工具;若是涉及 Python 模块,还需安装 Python 3 及相应的 pip 工具,通过 pip 安装如 NumPy、Pandas 等常用数学与数据处理库,为后续编译与运行项目打基础。
(二)编译与安装
- 项目克隆:从 Gitee 仓库使用 git 命令克隆 OpenAMDC 项目,如
git clone https://gitee.com/openeuler/openAMDC.git
,克隆完成后进入项目目录。查看项目内的 README 文件与编译指南,了解详细编译流程与注意事项。 - 编译过程:执行编译命令,通常是
make
,但可能因项目复杂结构,会有多层 Makefile 嵌套,需按顺序依次执行对应目录下的编译指令。编译期间,系统会处理内核模块编译、用户态程序构建,若出现编译错误,仔细查看终端报错信息,常见原因有依赖缺失、头文件未找到、语法错误等,逐一排查解决。 - 安装步骤:编译成功生成安装文件后,根据系统类型执行相应安装命令。若是 deb 包适合 Ubuntu 系系统,运行
sudo dpkg -i openAMDC.deb
;若是 rpm 包对应 CentOS 系系统,执行sudo rpm -ivh openAMDC.rpm
。安装完毕后,可能需要重启系统,使 OpenAMDC 相关服务正式启动运行。
(三)配置与优化
- 基础配置:重启后,进入 OpenAMDC 的配置界面,首先设置系统参数,如调整内核调度策略,依据应用场景选择偏向实时性的调度算法,保障关键任务及时响应;或是配置内存分配策略,为数据密集型边缘计算任务预留充足的内存空间。设置设备联网模式,确定是有线网络、Wi-Fi 还是蜂窝网络连接,输入相应网络认证信息。
- 应用定制配置:针对具体应用场景,进一步精细化配置。在工业物联网场景,配置传感器数据采集频率,按照生产工艺要求设定每秒采集数次;在智慧城市交通应用中,校准交通信号灯初始时长参数,结合当地路况历史数据优化调整;在农业灌溉系统,输入土壤类型、作物品种等信息,让 OpenAMDC 精准生成灌溉决策模型,实现个性化、精准化的系统运行。
- 性能优化:定期监测系统性能指标,利用 OpenAMDC 自带的性能监测工具,或集成第三方工具如 Prometheus、Grafana。查看 CPU 使用率、内存占用、磁盘 I/O 等数据,若发现性能瓶颈,针对性优化。例如,若 CPU 长时间高负载,检查是否有冗余进程,精简不必要的后台服务;若是磁盘读写缓慢,优化磁盘分区布局,采用高性能存储设备替换老旧设备,维持系统高效运转。
五、代码示例
(一)简单边缘计算任务示例
下面是一段简化的 C 语言代码,用于在 OpenAMDC 环境下实现一个简单的温度传感器数据处理任务:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>// 模拟从传感器读取温度数据
float read_temperature() {// 这里可替换为实际的传感器驱动代码return 25.0 + (rand() % 10);
}int main() {while (1) {float temperature = read_temperature();if (temperature > 30) {printf("温度过高,当前温度: %.2f°C\n", temperature);// 这里可添加向云端或本地其他设备发送警报的代码}sleep(5);}return 0;
}
这段代码模拟从温度传感器读取数据,每 5 秒检查一次温度,若高于 30°C 则发出警报,展示了在边缘设备上初步处理传感器数据的基本逻辑。
(二)硬件适配代码片段
假设要在 ARM 架构设备上适配一个 GPIO 控制代码,示例如下:
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <linux/gpio.h>// ARM 架构下 GPIO 设备文件路径示例
#define GPIO_DEV "/dev/gpiochip0"int main() {int gpio_fd = open(GPIO_DEV, O_WRONLY);if (gpio_fd < 0) {perror("无法打开 GPIO 设备");return 1;}struct gpiohandle_request req;req.lineoffsets[0] = 13; // 假设控制 GPIO 13req.lines = 1;req.flags = GPIOHANDLE_REQUEST_OUTPUT;if (ioctl(gpio_fd, GPIO_GET_LINEHANDLE_IOCTL, &req)) {perror("GPIO 控制请求失败");close(gpio_fd);return 1;}// 设置 GPIO 电平为高req.values[0] = 1;if (ioctl(req.fd, GPIOHANDLE_SET_LINE_VALUES_IOCTL, req.values)) {perror("设置 GPIO 电平失败");close(req.fd);close(gpio_fd);return 1;}close(req.fd);close(gpio_fd);return 0;
}
这段代码演示了在 ARM 架构设备上打开 GPIO 设备,获取控制句柄并设置 GPIO 电平的过程,体现 OpenAMDC 对异构硬件操作的代码实现方式。
六、开源社区生态
OpenAMDC 的开源社区活力四溢,在 Gitee 项目页面,汇聚了来自各行各业的精英。硬件工程师分享异构硬件适配心得,从 ARM 新架构特性利用到冷门工控芯片调试技巧;软件开发者交流算法优化、代码重构经验,让边缘计算程序跑得更快更稳。当新手在编译安装时遭遇难题,或是在应用配置上摸不着头脑,只需在社区发个求助帖,立刻就会收到详尽解答,各路高手还会给出针对性建议。而且,众多开发者踊跃贡献代码,或是拓展硬件驱动支持范围,或是融入更新颖的边缘计算算法,携手把 OpenAMDC 推向更高的智能化、通用化水准,不断拓宽其应用边界。
七、结语
OpenAMDC 携微内核架构、智能边缘计算、异构硬件适配与安全强化等一系列卓越特性,正站在智能边缘计算与系统管控的前沿阵地。无论你是深耕工业制造的工程师、谋划智慧城市的管理者,还是钻研精准农业的科研人员,深入探索 OpenAMDC,都有望解锁贴合自身需求的边缘计算解决方案,为数字化转型注入澎湃动力,引领行业迈向更智能、更高效、更安全的未来。它不仅是一个开源项目,更是开启新时代大门的钥匙,等待大家去挖掘其中无尽的潜力,书写属于自己行业的数字化传奇。
相关文章:
【2024年-11月-9日-开源社区openEuler实践记录】OpenAMDC:开启智能边缘计算与系统管控的新征程
一、开篇:邂逅 OpenAMDC 大家好,我是 fzr123,在开源项目的浩瀚天地里持续探索,今天要带大家深入了解一项极具前瞻性与创新性的开源成果——OpenAMDC。在边缘计算蓬勃兴起、系统复杂度与日俱增的时代背景下,OpenAMDC 宛…...
ELK日志平台搭建 (最新版)
一、安装 JDK 1. 下载 JDK 21 RPM 包 wget https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.rpm2. 安装 JDK 21,使用 rpm 命令安装下载的 RPM 包: sudo rpm -ivh jdk-21_linux-x64_bin.rpm3. 配置环境变量 编辑 /etc/profile 文件以配置 JAVA_HO…...
蓝桥杯备赛:C++基础,顺序表和vector(STL)
目录 一.C基础 1.第一个C程序: 2.头文件: 3.cin和cout初识: 4.命名空间: 二.顺序表和vector(STL) 1.顺序表的基本操作: 2.封装静态顺序表: 3.动态顺序表--vector:…...
MySQL数据库——常见慢查询优化方式
本文详细介绍MySQL的慢查询相关概念,分析步骤及其优化方案等。 文章目录 什么是慢查询日志?慢查询日志的相关参数如何启用慢查询日志?方式一:修改配置文件方式二:通过命令动态启用 分析慢查询日志方式一:直…...
【NX入门篇】
NX入门篇 一、UG NX 由来二、软件如何启动(UG NX 12.0)三、使用步骤四、常用命令 一、UG NX 由来 UG NX由来: 1969 年:UG 的开发始于美国麦道航空公司,基于 C 语言开发实现;1976 年:UG问世&am…...
卡码网 ACM答题编程模板
背景: input() 在 ACM 编程中的底层调用原理 1. input() 的核心原理 在 Python 中,input() 的底层实现依赖于标准输入流 sys.stdin。每次调用 input() 时,Python 会从 sys.stdin 中读取一行字符串,直到遇到换行符 \n 或文件结束…...
vue代理问题
vue代理问题 场景:前后端分离项目问题,在前端中请求接口,返回数据这个过程,但是在这个过程中,前端会有两个环境,一个是开发环境,一个是生产环境. 在开发环境中请求接口可能会遇到跨域问题,比如请求的端口是3000,当前端口是8080,这时候就会遇到跨域问题,或者ip不同,也会存在跨…...
软考 高级 架构师 第十 章软件工程3
1.系统测试 系统测试是为了发现错误而执行程序的过程,成功的测试是发现了至今尚未被发现的错误的测试。 测试原则: 1)应尽早并不断的进行测试 2)测试工作应避免由原开发软件的人或小组承担 3)在 设计测试方案时&#…...
GoF23种设计模式 简介
文章目录 面向对象(OO)设计原则(7)单一职责原则开闭原则里氏代换原则依赖倒转原则接口隔离原则合成复用原则迪米特法则 创建型模式 (5)工厂方法模式 (类模式,其余都是对象模式)抽象工厂模式建造…...
【FlutterDart】页面切换 PageView PageController(9 /100)
上效果: 有些不能理解官方例子里的动画为什么没有效果,有可能是我写法不对 后续如果有动画效果修复了,再更新这篇,没有动画效果,总觉得感受的丝滑效果差了很多 上代码: import package:flutter/material.…...
旧服务改造及微服务架构演进
旧服务改造及微服务架构演进 微服务架构演进1.微服务架构2.微服务架构的特点3.单体架构与微服务架构之间的对比4.微服务架构演进历程 旧服务改造1. 微服务拆分的一些通用原则2.微服务拆分策略(1)功能维度拆分策略(2)非功能维度拆分…...
数据结构复习 (顺序查找,对半查找,斐波那契查找,插值查找,分块查找)
查找(检索): 定义:从给定的数据中找到对应的K 1,顺序查找: O(n)的从前向后的遍历 2,对半查找,要求有序 从中间开始查找,每次检查中间的是否正确,不正确就…...
根据docker file 编译镜像
比如给到一个Dockerfile 第一步编译镜像 cd /path/to/Dockerfiledocker build -t <DOCKER_IMAGE_NAME> . build 命令编译镜像 -t 镜像名字 . 指dockerfile 所在目录 如果遇到报错 [] Building 0.3s (3/3) FINISHED …...
C语言:调试的概念和调试器的选择
所谓调试(Dubug),就是跟踪程序的运行过程,从而发现程序的逻辑错误(思路错误),或者隐藏的缺陷(Bug)。 在调试的过程中,我们可以监控程序的每一个细节ÿ…...
Vulnhub靶场(Earth)
项目地址 https://download.vulnhub.com/theplanets/Earth.ova.torrent 搭建靶机 官网下载.ova文件双击vm打开导入 获取靶机IP kail终端输入 arp-scan -l 获取靶机 IP 192.168.131.184 信息收集 端口扫描 sudo nmap -sC -sV -p- 192.168.131.184 可以看到开启22端口&…...
rsync命令常用同步方案
rsync是一个高效的文件同步工具,广泛应用于本地和远程备份、镜像及同步任务。它通过增量同步、压缩传输以及远程协议(如SSH)等技术,显著提高了文件传输的效率。本文将介绍rsync命令的常用参数、工作原理、常见同步方案,…...
【Ubuntu】 Ubuntu22.04搭建NFS服务
安装NFS服务端 sudo apt install nfs-kernel-server 安装NFS客户端 sudo apt install nfs-common 配置/etc/exports sudo vim /etc/exports 第一个字段:/home/lm/code/nfswork共享的目录 第二个字段:指定哪些用户可以访问 * 表示所有用户都可以访…...
Python自学 - 递归函数
1 Python自学 - 递归函数 递归函数是一种在函数体内调用自己的函数,就像“左脚踩着右脚,再右脚踩着左脚… 嗯,你就可以上天了!”。递归函数虽然不能上天,但在处理某些场景时非常好用, 一种典型的场景就是遍…...
后端开发入门超完整速成路线(算法篇)
引言 后端开发是软件开发中不可或缺的一部分,它涉及到服务器、数据库、API等核心组件的构建和维护。对于初学者来说,掌握算法和数据结构是进入后端开发领域的基础。本文将为你提供一个超完整的算法学习路线,帮助你快速入门,并在文…...
51单片机——共阴数码管实验
数码管中有8位数字,从右往左分别为LED1、LED2、...、LED8,如下图所示 如何实现点亮单个数字,用下图中的ABC来实现 P2.2管脚控制A,P2.3管脚控制B,P2.4管脚控制C //定义数码管位选管脚 sbit LSAP2^2; sbit LSBP2^3; s…...
使用Clion在ubuntu上进行交叉编译,并在Linux上远程编译五子棋
目录 1.工具以及概念介绍 (1)Clion软件简介 (2)交叉编译 (3)远程编译 2.操作原理 3.详细操作步骤 (1)配置Clion与虚拟机ubuntu的ssh连接 CLion远程开发Ubuntu,并显…...
高并发写利器-组提交,我的Spring组件实战
高并发写优化理论 对于高并发的读QPS优化手段较多,最经济简单的方式是上缓存。但是对于高并发写TPS该如何提升?业界常用的有分库分表、异步写入等技术手段。但是分库分表对于业务的改造十分巨大,涉及迁移数据的麻烦工作,不会作为…...
Stable Diffusion的简单介绍
Stable Diffusion 是一款免费、开源的 AI 图像生成器,由 Stability AI 公司于 2022 年 8 月推出1。以下是关于它的详细介绍: 目录 工作原理 特点 应用场景 主要版本 工作原理 Stable Diffusion 属于潜在扩散模型,主要由三部分组成&…...
R语言的数据结构
R语言的数据结构 R语言是专门为统计计算和数据分析而设计的一种编程语言,因其强大的数据处理能力而受到广泛欢迎。在R中,数据结构是理解和有效使用R语言的基础。本文将详细介绍R语言中的主要数据结构,包括向量、矩阵、数据框、列表、因子等&…...
go项目zero框架中用gentool解决指定MYSQL表生成结构体被覆盖的解决方案
在使用 GoZero 框架进行项目开发时,gentool 是一个非常方便的工具,它可以根据数据库表结构自动生成 Go 语言结构体和其他相关文件。然而,在使用 gentool 生成结构体时,可能会遇到一个问题:如果多次运行 gentool&#x…...
限时特惠,香港服务器,低至53元/年
家人们谁懂啊!香港服务器这价格简直逆天了,居然比内地的还便宜!就拿阿里云来说,人家最低配置的服务器,价格都很难做到这么亲民。 最低配的就不说了,2 核 4G 的配置,应对日常业务稳稳当当&#x…...
【GUI-pyqt5】QObject类
1. QObject模块详解 1.1 描述 所有Qt对象的父类 1.2 功能和作用 1.2.1 对象名称和属性 1.2.1.1 API API功能备注 setObjectName("唯一名称") 给一个Qt对象设置一个名称 一般这个名称是唯一的,当做对象ID来使用 objectName() 获取一个对象名称 - set…...
第2章:SQL基础
第2章:SQL基础 2.1 SQL语言介绍 2.1.1 SQL发展历史 SQL的起源SQL标准的演变不同数据库的SQL实现 2.1.2 SQL语言分类 数据定义语言 (DDL):用于定义和修改数据库的结构,包括数据库、表、索引、视图等对象的创建、修改和删除。数据操作语言 (DML):用于…...
Azkaban其一,介绍、体系架构和安装
目录 一、简介 二、Azkaban的体系结构 三、Azkaban的安装步骤 1、上传,解压 2、生成mysql的元数据 3、配置web-server 4、配置exec-server 5、修改所有的.sh 的执行权限 一、简介 遇到了什么问题才会使用Azkaban ?比如: 想启动hadoop集群先启动…...
Seata 使用教程:全面解锁分布式事务管理
Seata 使用教程:全面解锁分布式事务管理 在当今分布式系统蓬勃发展的时代,微服务架构被广泛应用,随之而来的是分布式事务管理的难题。Seata 作为一款开源的分布式事务解决方案,为保障分布式系统的数据一致性提供了强有力的支持。本文将详细讲解 Seata 的使用方法,深入剖析…...
《learn_the_architecture_-_aarch64_exception_model》学习笔记
1.当发生异常时,异常级别可以增加或保持不变,永远无法通过异常来转移到较低的权限级别。从异常返回时,异常级别可能会降低或保持不变,永远无法通过从异常返回来移动到更高的权限级别。EL0级不进行异常处理,异常必须在比…...
密码学原理技术-第十一章-Hash Functions
文章目录 总结Why we need hash functionsDigital Signature with a Hash FunctionBasic Protocol for Digital Signatures with a Hash FunctionPrincipal input–output behavior of hash functions Security propertiesThe three security requirements of hash functionsWh…...
Golang 入门基础知识
快速入门 go 语言笔记,参考了各种大佬的 blog 。 一、下载安装 国内站点 :https://golang.google.cn IDE : Goland (2020.12月以后破解有些困难 见 zhile.io, 无法试用的话可以搜一个注册码,失效的也可以&…...
SQL把字符串按逗号分割成记录
在 SQL 中,可以通过以下方法将字符串按逗号分割,并将每个分割的值作为单独的记录插入到结果集中。以下是针对不同数据库系统的实现方法: 1. 使用 STRING_SPLIT(SQL Server 2016) STRING_SPLIT 是 SQL Server 提供的内置…...
HTML——26.像素单位
<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>像素</title></head><body><!--像素:1.指设备屏幕上的一个点,单位px,如led屏上的小灯朱2.当屏幕分辨率固定时&…...
TIM的输出比较(PWM)
OC(Output Compare)输出比较 输出比较可以通过比较CNT与CCR寄存器值的关系,来对输出电平进行置1、置0或翻转的操作,用于输出一定频率和占空比的PWM波形 每个高级定时器和通用定时器都拥有4个输出比较通道 初始化 1.开启RCC RCC_…...
李宏毅机器学习笔记-Transformer
目录 1. Seq2seq 2. encoder Transformer 中的 Block 结构 3. Decoder 4.Encoder和Decoder间的信息传递 5.Training 6.Tips 1. Seq2seq Transformer 是一个seq2seq的model。Seq2seq指的是input是一个序列,输出也是一个序列,输出的长度是由机器自己…...
【机器学习:三、常见的代价函数】
代价函数的选择与任务类型(回归、分类等)以及模型的具体目标密切相关。 回归任务中的代价函数 均方误差(Mean Squared Error, MSE) 公式: J ( θ ) 1 m ∑ i 1 m ( y i − y ^ i ) 2 J(\theta)\frac{1}{m}\sum_{i1}^m(y_i-\…...
React 数据是怎样传递的
写在前面 在 React 应用程序中,数据传递是非常重要的。它允许我们在组件之间共享信息和状态,从而构建出复杂的用户界面。本文将深入探讨 React 中的数据传递机制,包括 props、state 和 context API。我们还将通过实际例子来演示如何在项目中…...
Python入门教程 —— 高阶函数和装饰器
1.递归函数 什么是递归函数 如果一个函数在内部不调用其它的函数,而是自己本身的话,这个函数就是递归函数。 递归函数的作用 举个例子,我们来计算阶乘 n! = 1 * 2 * 3 * ... * n 解决办法1:使用循环来完成 def cal(num):result,i = 1,1while i <= num:result *= ii…...
RSA密码的安全性分析(简化版本)
RSA的安全性是基于分解大整数的困难性假定,之所以认为是假定是因为至今还未能证明大整数就是NP问题,也许有尚未发现的多项式时间分解算法。随着人类计算能力的不断提高,原来被认为是不可能分解的大数已经被成功分解。对于大整数的威胁除了人类…...
解决Vue中设置el-select的高度不生效问题
el-select是Element UI框架中的一个选择器组件,它允许用户从多个选项中选择一个或多个项目。但这里确存在一个小坑,我们可以看到直接修改el-select的高度是无法生效的 <template><div id"login"><el-select v-model"role…...
解决openpyxl操纵带公式的excel或者csv之后,pandas无法读取数值的问题
1 功能特点 openpyxl: 这是一个专门用于操作Excel文件(.xlsx/.xlsm)的库。它提供了丰富的功能来读取、写入和修改Excel文件的各个元素,如单元格、行、列、工作表等。例如,可以通过openpyxl轻松地创建一个新的Excel工作…...
高等数学学习笔记 ☞ 无穷小比较与等价无穷小替换
1. 无穷小比较 1. 本质:就是函数的极限趋于0时的速度,谁快谁慢的问题。 2. 定义:若是在同一自变量的变化过程中的无穷小,且,则: ①:若,则称是比的高阶无穷小,记作&…...
计算队列中的‘捣乱分子’对数:一种量化无序程度的方法
计算队列中的‘捣乱分子’对数:一种量化无序程度的方法 前言解题思路关键点实现代码时间复杂度分析前言 在日常生活中,我们经常会遇到需要排队的场景,比如买票、候车、就餐等。在理想的排队情况下,人们会按照某种顺序(如先到先服务)整齐地排成一列。然而,总有一些人不遵…...
如何在不丢失数据的情况下从 IOS 14 回滚到 IOS 13
您是否后悔在 iPhone、iPad 或 iPod touch 上安装 iOS 14?如果你这样做,你并不孤单。许多升级到 iOS 14 beta 的 iPhone、iPad 和 iPod touch 用户不再适应它。 如果您在正式发布日期之前升级到 iOS 14 以享受其功能,但您不再适应 iOS 14&am…...
提升汽车金融租赁系统的效率与风险管理策略探讨
内容概要 在汽车金融租赁系统这个复杂的生态中,提升整体效率是每个企业都渴望达成的目标。首先,优化业务流程是实现高效运行的基础。通过分析目前的流程,找出冗余环节并进行简化,能够帮助企业缩短审批时间,提高客户满…...
Git 入门(一)
git 工作流如下: 命令如下: clone(克隆): 从远程仓库中克隆代码到本地仓库checkout (检出):从本地仓库中检出一个仓库分支然后进行修订add(添加): 在提交前先将代码提交到暂存区com…...
pyinstaller冻结打包多进程程序的bug:无限创建进程直至系统崩溃
前面写过两篇相关的文章: PyQt应用程序打包Python自动按键 这两篇文章都没有提到下面的这个重要问题: 采用Pyinstaller冻结打包多进程程序时,必须非常小心。这个技术线在Windows上会有一个非常严重的Bug。直接运行打包后的程序会造成无限创…...
OSI模型的网络层中产生拥塞的主要原因?
( 1 )缓冲区容量有限;( 1.5 分) ( 2 )传输线路的带宽有限;( 1.5 分) ( 3 )网络结点的处理能力有限;( 1 分…...