Python基于滑动窗口CNN损伤梁桥数据、故宫城墙图像数据分类可视化|数据分享

全文链接:https://tecdat.cn/?p=38442

分析师:Yufei Guo

在现代土木结构工程领域,结构损伤的准确识别与定位对于保障基础设施的安全性和耐久性具有极为关键的意义。传统的人工检查方法,如目视检查以及借助专业设备进行检测,在很长一段时间内占据着主导地位,成为识别和评估砖石历史建筑等土木结构表面损伤的常用手段点击文末“阅读原文”获取完整代码数据)。

然而,这种传统方式存在着诸多局限性。其成本高昂,需要投入大量的人力、物力和时间资源。在面对一些偏远地区的结构或部件时,由于地理条件限制、交通不便等因素,人工检查往往难以有效实施,导致这些区域的结构健康状况无法及时、准确地被掌握。

随着科技的飞速发展,深度学习技术在图像识别、目标检测等领域取得了令人瞩目的成就,为土木结构损伤检测带来了新的契机。卷积神经网络(CNN)作为深度学习中的重要分支,已在众多领域展现出强大的特征提取和模式识别能力。但现有的基于 CNN 的损伤检测方法大多并非专门针对砖石历史建筑的多种损伤识别而设计,难以满足这类特殊结构的检测需求。

针对我国连续梁桥数量众多且分布广泛,以及现场测试信号容易受到各种干扰的现状,本研究提出了一种创新的方法。通过一个或几个加速度传感器监测信号,依据车桥耦合理论,并借助正弦函数型呼吸裂缝模型来模拟连续梁桥的损伤情况。在此基础上,采用 Tsfresh 特征提取方法与 1D - CNN 模型相结合的方式,有效提升模型的特征提取能力,进而提高 CNN 的计算效率,实现对桥梁损伤的精准识别。

同时,在土木结构损伤检测领域的另一个重要研究方向 —— 砖石历史建筑损伤检测方面,本项目利用卷积神经网络(基于 LeNet - 5、AlexNet - 8、ZFNet - 8 和 GoogLeNet (inception v1) - 22)开发了一种专门的损伤识别与定位技术。通过基于区域的卷积神经网络(Faster - RCNN)应用于实时损伤检测,并采用基于滑动窗口的 CNN 方法,能够对完好、裂缝、泛碱和剥落等四类损伤进行准确的识别与定位,准确率高达 94.3%。本研究的数据仅来自中国故宫城墙图像查看文末了解数据免费获取方式的训练和测试,通过对不同数据集和网络架构的深入研究与实验,为基础设施工程中的人工智能应用提供了有价值的见解和实践经验,有望推动整个土木结构损伤检测技术朝着更加高效、精准和智能化的方向发展。

 Tsfresh-CNN损伤梁桥数据分类

针对我国连续梁桥量大面广及现场测试信号易受干扰等问题,根据一个或几个加速度传感器监测信号,基于车桥耦合理论和正弦函数型呼吸裂缝模型模拟连续梁桥的损伤,通过对监测信号的特征提取以达到减少数据维数,降低数据噪声的效果,进而采用卷积神经网络实现桥梁损伤识别。

数据源准备

为准确考虑车辆上桥对桥梁的振动影响,引入车桥耦合振动模型,将车辆简化为1/4车模型与桥梁进行车桥耦,通过正弦函数呼吸裂缝模型模拟桥梁损伤,车辆与桥梁的耦合振动根据车、桥之间位移与作用力的协调关系建立动力学方程求解

特征转换

Tsfresh特征提取方法与1D-CNN模型结合,可以有效提高模型的特征提取能力,提高CNN计算效率

划分训练集和测试集

在对1D-CNN进行搭建之前需要对Tsfresh算法进行合理设置,每种工况得到70000×3个数据点。为保证每段数据的数据量相等,对其进行合理分割,令单个传感器每段的数据量_λ_=500,即每段数据含有500×3个数据点,则每种工况一共有140段数据。

建模

考虑到节省计算资源,本文搭建的卷积神经网络加入较少卷积层,经过多次实验比对,在网络中加入4层卷积层,下采样适当地加入用来优化网络架构对于其余超参数的设置,本文将Ts-CNN的网络参数首先根据经验进行初始化,再利用网格搜索法对超参数进行优化。

模型优化

d105447201f8c976e01039ccaca76da4.png

af42ff9f5ee8399ec20e21f38bc0548e.png

6bfe43580d5d1e54045bda2e6a04910e.png


点击标题查阅往期内容

14056c54d586df3f104b7a390d813722.jpeg

MATLAB贝叶斯优化混合Bayes-CNN-RNN分析股票市场数据与浅层网络超参数优化

outside_default.png

左右滑动查看更多

outside_default.png

01

075d78074d1feff12bd48ebe3d147e92.png

02

4daa09696fd530034495ff1f7f52e142.png

03

e651aa7b596472e6b56395cb8e7eeef7.png

04

264522c1192a361ba97687a86be1efdb.png

基于深度学习的结构损伤检测|附数据代码

本项目利用卷积神经网络(基于 LeNet - 5、AlexNet - 8、ZFNet - 8 和 GoogLeNet(inception v1) - 22)开发了一种用于土木结构的损伤识别与定位技术。同时将基于区域的卷积神经网络(Faster - RCNN)应用于实时损伤检测。
注意:本项目主要是对砖石历史建筑应用微调后的深度学习算法。若您对 CNN 架构或实现更感兴趣,可能此处细节不足。本项目旨在为基础设施工程中的人工智能提供见解。

摘要

目前,人工检查(即目视检查和/或使用专业设备)是识别和评估砖石历史建筑表面损伤的主要方法。然而,该方法成本高昂,有时难以应用于偏远结构或部件。现有的基于卷积神经网络(CNN)的损伤检测方法并非专门针对砖石历史建筑的多种损伤识别而设计。为克服这些局限,本文提出了一种用于砖石历史建筑的 CNN 损伤分类技术的深度架构,采用基于滑动窗口的 CNN 方法来识别和定位四类损伤(完好、裂缝、泛碱和剥落),准确率达 94.3%。这是首次尝试基于 CNN 技术识别历史砖石建筑的多种损伤并取得优异分类结果。数据仅来自中国故宫城墙图像的训练和测试,顺砖图像和丁砖图像的像素分辨率分别为 480×105 和 210×105。两个 CNN(AlexNet 和 GoogLeNet)均在小数据集(2000 张图像用于训练,400 张图像用于验证和测试)和大数据集(20000 张图像用于训练,4000 张图像用于验证和测试)上进行训练。在五张 1860×1260 像素分辨率的新图像上检验训练模型的性能(准确率 94.3%)。

实现

数据集:

您可以使用我们的中国故宫城墙图像数据,也可以创建自己的数据集!只需尽可能多地拍摄您感兴趣研究的对象的照片。您可能还想使用众包技术让其他人帮您收集数据!

训练:

训练环境取决于您的数据集和 CNN。例如,如果您的数据集很大(GB/TB/PB 级),您可能考虑使用分布式工作站而非个人电脑,这同样适用于更深层次的 CNN(ResNet、Inception v - 4 等)。由于 GPU 计算比仅使用 CPU 快得多,您可能还需要 GPU 进行计算。
对于训练数据集的工具,我建议使用 TensorFlow 或 PyTorch。但如果您仅关注应用,Caffe 也可以。如果您选择 Caffe,您只需更改文件中的超参数。

uid = caffe.NCCL.new_uid()caffe.init_log()caffe.log('Using devices %s' % str(gpus))procs = \[\]for rank in range(len(gpus)):p = Process(target=solve,args=(solver, snapshot, gpus, timing, uid, rank))p.daemon = Truep.start()procs.append(p)for p in procs:p.join()

应用与可视化:

如果您要将深度学习应用于实际工程问题,仅以计算机视觉方式对目标进行分类是不够的。您应该弄清楚如何呈现或处理输出。此外,适用性和可重复性也非常重要。例如,您可能会问自己:成本是多少?效率如何?或者它在实际问题中是否有效?

图示与部分结果

在图 1 中,我们可以清晰地看到砖单元图像分类示意图。它展示了对砖单元图像进行分类的整体框架和流程,为后续基于 CNN 的损伤识别奠定了基础。从图中可以初步了解到图像分类所涉及的各个环节以及它们之间的相互关系,这有助于理解整个损伤检测系统如何对输入的砖单元图像进行预处理和初步分类判断。

5cfaf72cc1df1b80fa63da3518babe15.png

图 1:砖单元图像分类示意图
图 2 呈现的是基于 CNN 的砖单元损伤识别与分类示意图。此图详细说明了 CNN 在砖单元损伤识别与分类过程中的架构和工作原理。通过该图,能够直观地认识到 CNN 如何提取砖单元图像的特征,以及如何依据这些特征对不同类型的损伤进行区分和归类。例如,CNN 的不同层可能会对图像中的纹理、颜色、形状等特征进行逐步抽象和分析,最终确定损伤的类别。

9d962a4fa8804e3098f909f6d28de0d5.png

图 2:基于 CNN 的砖单元损伤识别与分类示意图
图 3 是全连接模式与局部连接模式对比图,包括全连接模式(a)和局部连接模式(b)。

parser = ArgumentParser(description=\_\_doc\_\_,formatter_class=ArgumentDefaultsHelpFormatter)parser.add\_argument('input\_net\_proto\_file',help='Input network prototxt file')parser.add\_argument('output\_image_file',

全连接模式中,每个神经元都与前一层的所有神经元相连,这种连接方式虽然能够充分整合信息,但也会带来大量的参数,容易导致过拟合现象,并且计算复杂度较高。而局部连接模式则只连接局部区域的神经元,它在减少参数数量的同时,能够保留一定的局部特征信息,更适合于图像这类具有局部相关性的数据处理。在本项目的 CNN 架构设计中,对这两种模式的理解和选择对于优化网络性能、提高损伤检测的准确性有着重要意义。

749f2b595ab940046a25b87f48d93c58.png

图 3:全连接模式与局部连接模式对比:(a)全连接模式,(b)局部连接模式
图 4 展示了 4 类训练样本,即完好(a)、剥落(b)、裂缝(c)和泛碱(d)用于 CNN 的情况。这些训练样本是模型学习和识别不同损伤类型的基础。从图中可以观察到不同损伤类型在图像上呈现出的不同特征。例如,完好的砖单元图像表面相对平整,无明显瑕疵;剥落的部分可能会有块状缺失;裂缝则呈现出线状的破损;泛碱区域可能会有颜色和纹理的变化。通过大量这样的训练样本,CNN 能够逐渐学习到不同损伤类型的图像特征模式,从而在实际检测中准确判断损伤类别。

eef781c0bd881e07ca62c5acc65bbe71.png

图 4:4 类训练样本:(a)完好,(b)剥落,©裂缝,(d)泛碱(用于 CNN)
图 5 为 Faster - RCNN 训练样本。Faster - RCNN 是一种用于目标检测的有效算法,其训练样本的特点和质量直接影响到模型对损伤目标的检测效果。从图中可以推测样本的多样性、代表性以及标注信息等方面的情况。例如,样本是否涵盖了不同角度、不同光照条件下的损伤情况,标注是否准确地框定了损伤区域等。这些因素都对 Faster - RCNN 能否准确地在实际场景中检测到损伤并定位有着关键作用。

b6b46d78fb0899a029239b8aa968197c.png

图 5:Faster - RCNN 训练样本
图 6 给出了使用 AlexNet - 8 训练结果,包括训练损失(a)和验证准确率(b)。训练损失曲线反映了模型在训练过程中预测值与真实值之间的差异程度。随着训练的进行,损失值逐渐降低,说明模型在不断学习和优化,逐渐拟合数据。而验证准确率曲线则展示了模型在验证集上的性能表现。在训练初期,验证准确率可能会有波动,随着训练的深入,准确率逐渐上升并趋于稳定。通过对这两条曲线的分析,可以判断 AlexNet - 8 模型的训练效果,如是否存在过拟合或欠拟合现象,从而调整训练策略,如调整学习率、增加训练数据量等。

7efdf760d40445aaf8dbbe25dd3b7643.png

图 6:使用 AlexNet - 8 训练结果:(a)训练损失,(b)验证准确率
图 7 展示了使用 GoogLeNet - 22 训练结果,同样包含训练损失(a)和验证准确率(b)。与 AlexNet - 8 类似,通过对这些曲线的研究,可以深入了解 GoogLeNet - 22 模型的训练动态。比较两者的曲线,可以分析不同网络架构在本项目损伤检测任务中的优劣。例如,可能发现 GoogLeNet - 22 在处理某些复杂损伤特征时具有更好的表现,而 AlexNet - 8 在计算资源消耗或训练速度上有一定优势,这有助于根据实际需求选择更合适的网络架构。

0b973f955d5d6aea05ca5c90ca4f5775.png

图 7:使用 GoogLeNet - 22 训练结果:(a)训练损失,(b)验证准确率
图 8 的滑动窗口策略是本项目中的一个重要技术手段。滑动窗口在图像上逐步移动,对每个窗口内的图像区域进行 CNN 分析,从而实现对整个图像的全面检测。这种策略能够有效地处理不同尺寸和位置的损伤,提高损伤检测的覆盖率和准确性。例如,对于较大尺寸的图像,通过滑动窗口可以避免因一次性处理整个图像而导致的计算资源不足或特征提取不充分的问题。

7400898fd9469348042dc21631923c2e.png

图 8:滑动窗口策略
最后,图 9 呈现了基于 GoogLeNet - 22 与滑动窗口算法的测试结果。从图中可以直观地看到模型在实际测试中的表现,如对不同损伤类型的检测准确性、是否存在误判或漏判情况等。这些结果是对整个基于深度学习的结构损伤检测系统性能的综合评估,通过对测试结果的详细分析,可以进一步优化模型和算法,提高系统在实际工程应用中的可靠性和有效性。

34136f603bc7d3d330cf0b39fb074e73.png

图 9:基于 GoogLeNet - 22 与滑动窗口算法的测试结果

关于分析师

8872afced5a39cf9a70bd45176b7bb41.png

在此对 Yufei Guo 对本文所作的贡献表示诚挚感谢,他在重庆大学完成了结构健康监测专业的硕士学位,专注深度学习领域。擅长 Python、Matlab 仿真、数据清洗、神经网络、数据分析 。

数据获取

在公众号后台回复“城墙数”,可免费获取完整数据。


资料获取

在公众号后台回复“领资料”,可免费获取数据分析、机器学习、深度学习等学习资料。

b35380c53a2c7511d76036e3d85b987b.jpeg

点击文末“阅读原文”

获取全文完整代码数据资料。

本文选自《Python基于滑动窗口CNN损伤梁桥数据、故宫城墙图像数据分类可视化|附数据代码》。

点击标题查阅往期内容

R语言KERAS用RNN、双向RNNS递归神经网络、LSTM分析预测温度时间序列、 IMDB电影评分情感

Python用CNN-LSTM、ARIMA、Prophet股票价格预测的研究与分析|附数据代码

【视频讲解】线性时间序列原理及混合ARIMA-LSTM神经网络模型预测股票收盘价研究实例

RNN循环神经网络 、LSTM长短期记忆网络实现时间序列长期利率预测

结合新冠疫情COVID-19股票价格预测:ARIMA,KNN和神经网络时间序列分析

深度学习:Keras使用神经网络进行简单文本分类分析新闻组数据

用PyTorch机器学习神经网络分类预测银行客户流失模型

PYTHON用LSTM长短期记忆神经网络的参数优化方法预测时间序列洗发水销售数据

Python用Keras神经网络序列模型回归拟合预测、准确度检查和结果可视化

R语言深度学习卷积神经网络 (CNN)对 CIFAR 图像进行分类:训练与结果评估可视化

深度学习:Keras使用神经网络进行简单文本分类分析新闻组数据

Python用LSTM长短期记忆神经网络对不稳定降雨量时间序列进行预测分析

R语言深度学习Keras循环神经网络(RNN)模型预测多输出变量时间序列

R语言KERAS用RNN、双向RNNS递归神经网络、LSTM分析预测温度时间序列、 IMDB电影评分情感

Python用Keras神经网络序列模型回归拟合预测、准确度检查和结果可视化

Python用LSTM长短期记忆神经网络对不稳定降雨量时间序列进行预测分析

R语言中的神经网络预测时间序列:多层感知器(MLP)和极限学习机(ELM)数据分析报告

R语言深度学习:用keras神经网络回归模型预测时间序列数据

Matlab用深度学习长短期记忆(LSTM)神经网络对文本数据进行分类

R语言KERAS深度学习CNN卷积神经网络分类识别手写数字图像数据(MNIST)

MATLAB中用BP神经网络预测人体脂肪百分比数据

Python中用PyTorch机器学习神经网络分类预测银行客户流失模型

R语言实现CNN(卷积神经网络)模型进行回归数据分析

SAS使用鸢尾花(iris)数据集训练人工神经网络(ANN)模型

【视频】R语言实现CNN(卷积神经网络)模型进行回归数据分析

Python使用神经网络进行简单文本分类

R语言用神经网络改进Nelson-Siegel模型拟合收益率曲线分析

R语言基于递归神经网络RNN的温度时间序列预测

R语言神经网络模型预测车辆数量时间序列

R语言中的BP神经网络模型分析学生成绩

matlab使用长短期记忆(LSTM)神经网络对序列数据进行分类

R语言实现拟合神经网络预测和结果可视化

用R语言实现神经网络预测股票实例

使用PYTHON中KERAS的LSTM递归神经网络进行时间序列预测

python用于NLP的seq2seq模型实例:用Keras实现神经网络机器翻译

用于NLP的Python:使用Keras的多标签文本LSTM神经网络分类

f8271033a4e0d48bf0620ef7cb90e27a.jpeg

f5c26fd5841507eb528e3e388222b488.png

17092e1ddc583cc4e66b6dced3ace354.png

60324a75523918bdf4a969e9d237edd1.jpeg

6fc76acbb95431f9233333b702839b52.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/481395.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MyBatis的if标签的基本使用

在MyBatis框架中,if标签用于在构建SQL语句时,根据参数条件判断的结果,动态地选择加入或不加where条件中。 一 常见使用 在使用MyBatis处理查询逻辑的时候,常用的是判断一些参数是否为空,列举常用的几种情况展示 1.1…

RabbitMQ原理架构解析:消息传递的核心机制

文章目录 一、RabbitMQ简介1.1、概述1.2、特性 二、RabbitMQ原理架构三、RabbitMQ应用场景3.1、简单模式3.2、工作模式3.3、发布订阅3.4、路由模式3.5 主题订阅模式 四、同类中间件对比五、RabbitMQ部署5.1、单机部署5.2、集群部署(镜像模式)5.3、K8s部署…

NGO-CNN-BiGRU-Attention北方苍鹰算法优化卷积双向门控循环单元时间序列预测,含优化前后对比

NGO-CNN-BiGRU-Attention北方苍鹰算法优化卷积双向门控循环单元时间序列预测,含优化前后对比 目录 NGO-CNN-BiGRU-Attention北方苍鹰算法优化卷积双向门控循环单元时间序列预测,含优化前后对比预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介…

【0346】Postgres内核 Startup Process 通过 signal 与 postmaster 交互实现 (5)

1. Startup Process 进程 postmaster 初始化过程中, 在进入 ServerLoop() 函数之前,会先通过调用 StartChildProcess() 函数来开启辅助进程,这些进程的目的主要用来完成数据库的 XLOG 相关处理。 如: 核实 pg_wal 和 pg_wal/archive_status 文件是否存在Postgres先前是否发…

说说Elasticsearch拼写纠错是如何实现的?

大家好,我是锋哥。今天分享关于【说说Elasticsearch拼写纠错是如何实现的?】面试题。希望对大家有帮助; 说说Elasticsearch拼写纠错是如何实现的? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在 Elasticsearch 中&…

NAT拓展

NAT ALG(NAT应用级网) 为某些应用层协议,因为其报文内容可能携带IP相关信息,而普通NAT转化无法将这些IP转化,从而导致协议无法正常运行 例如FTP,DHCP,RSTP,ICMP,IPSEC…

Flutter:封装发送验证码组件,注册页使用获取验证码并传递控制器和验证码类型

验证码&#xff1a;view import package:flutter/material.dart; import package:get/get.dart; import index.dart;class SendcodePage extends GetView<SendcodeController> {// 接收注册页面&#xff0c;传进来的手机号控制器&#xff0c;和发送验证码的类型final Tex…

【目标跟踪】Anti-UAV数据集详细介绍

Anti-UAV数据集是在2021年公开的专用于无人机跟踪的数据集&#xff0c;该数据集采用RGB-T图像对的形式来克服单个类型视频的缺点&#xff0c;包含了318个视频对&#xff0c;并提出了相应的评估标准&#xff08;the state accurancy, SA)。 文章链接&#xff1a;https://arxiv.…

Linux的文件系统

这里写目录标题 一.文件系统的基本组成索引节点目录项文件数据的存储扇区三个存储区域 二.虚拟文件系统文件系统分类进程文件表读写过程 三.文件的存储连续空间存放方式缺点 非连续空间存放方式链表方式隐式链表缺点显示链接 索引数据库缺陷索引的方式优点&#xff1a;多级索引…

C++优选算法十七 多源BFS

1.单源最短路问题 一个起点一个终点。 定义&#xff1a;在给定加权图中&#xff0c;选择一个顶点作为源点&#xff0c;计算该源点到图中所有其他顶点的最短路径长度。 2.多源最短路问题 定义&#xff1a;多源最短路问题指的是在图中存在多个起点&#xff0c;需要求出从这些…

DAY141权限提升-Linux系统权限提升篇VulnhubCapability能力LD_Preload加载数据库等

一、演示案例-Linux系统提权-Web&用户-数据库类型 复现环境&#xff1a;Raven: 2 ~ VulnHub 1、信息收集 http://192.168.139.155/vendor/ 2、Web权限获取 searchsploit phpmailer find / -name 40969.py cp /usr/share/exploitdb/exploits/php/webapps/40969.py p.py p…

使用nginx请求转发时前端报跨域问题解决

当其他接口都没有问题&#xff0c;后端也进行了跨域的配置时&#xff0c;此时问题应该就出现在nginx中 我发现当上传文件大小小于1m时并不会发生错误&#xff0c;所以我们应该配置一下nginx允许上传文件的大小 在nginx.conf中添加 在nginx目录下重启nginx即可 &#xff08;Wi…

凭借 SpringBoot 构建新冠密接者跟踪系统:快速开发与部署优势凸显

第3章 系统分析 在进行系统分析之前&#xff0c;需要从网络上或者是图书馆的开发类书籍中收集大量的资料&#xff0c;因为这个环节也是帮助即将开发的程序软件制定一套最优的方案&#xff0c;一旦确定了程序软件需要具备的功能&#xff0c;就意味着接下来的工作和任务都是围绕着…

28.100ASK_T113-PRO Linux+QT 显示一张照片

1.添加资源文件 2. 主要代码 #include "mainwindow.h" #include "ui_mainwindow.h" #include <QImage> #include <QPixmap>MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow) {ui->setupUi(this);QIm…

Android笔试面试题AI答之SQLite(1)

文章目录 1. 阐述什么是SQLite &#xff1f;一、定义与特点二、工作原理三、应用领域四、数据类型与语言绑定 2. Linux 上安装 SQLite方式简述 &#xff1f;一、使用包管理器安装&#xff08;以Debian/Ubuntu为例&#xff09;二、从官方网站下载并编译安装三、注意事项 3. SQLi…

CPU进行float16计算,C++的half.hpp使用方式FP16运算

C不直接支持fp16&#xff0c;如何支持float16的计算&#xff0c;我们使用half包来让C支持fp16计算。half.hpp是C中用于处理半精度浮点数&#xff08;float16&#xff09;的头文件。 一、下载Half包 1.1 下载地址&#xff1a; half&#xff1a;半精度浮点库 2.2 解压缩&…

【C++】LeetCode:LCR 026. 重排链表

题干 LCR 026. 重排链表 给定一个单链表 L 的头节点 head &#xff0c;单链表 L 表示为&#xff1a; L0 → L1 → … → Ln-1 → Ln 请将其重新排列后变为&#xff1a; L0 → Ln → L1 → Ln-1 → L2 → Ln-2 → … 不能只是单纯的改变节点内部的值&#xff0c;而是需要实…

蓝桥杯——递归

1、用递归实现阶乘 5*4*3*2*1120 package day3;public class Demo6 {public static void main(String[] args) {int result f(5);System.out.println(result);}private static int f(int i) {if(i1) {return 1;}return i * f(i-1);}}结果&#xff1a;120 2、爬楼梯 有一个楼…

Y20030012基于php+mysql的药店药品信息管理系统的设计与实现 源码 配置 文档

库存管理系统 1.摘要2. 系统功能3.功能结构图4.界面展示5.源码获取 1.摘要 21世纪是信息的时代&#xff0c;信息技术发展突飞猛进。各种信息化管理系统如雨后春笋一样出现。Internet的迅猛发展使其成为全球信息传递与共享的巨大的资源库。越来越多的网络环境下的Web应用系统被…

基于R语言森林生态系统结构、功能与稳定性分析与可视化

在生态学研究中&#xff0c;森林生态系统的结构、功能与稳定性是核心研究内容之一。这些方面不仅关系到森林动态变化和物种多样性&#xff0c;还直接影响森林提供的生态服务功能及其应对环境变化的能力。森林生态系统的结构主要包括物种组成、树种多样性、树木的空间分布与密度…