【python】python当当数据分析可视化聚类支持向量机预测(源码+数据集+论文)【独一无二】

请添加图片描述


👉博__主👈:米码收割机
👉技__能👈:C++/Python语言
👉公众号👈:测试开发自动化【获取源码+商业合作】
👉荣__誉👈:阿里云博客专家博主、51CTO技术博主
👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。


系列文章目录


目录

  • 系列文章目录
  • 一、设计要求
  • 二、设计思路
  • 三、可视化分析
  • 四、模型选择与结果分析
    • 聚类结果
    • 3.2 指标评估
      • 3.2.1模型训练和评估
    • 模型对比分析


一、设计要求

本研究旨在通过对当当网图书数据的爬取、分析和预测,探索和揭示电子商务平台中图书市场的销售规律和消费者行为,以期为出版社、书店以及相关研究机构提供科学的决策支持和有价值的市场洞察。具体的研究目的主要包括以下几个方面:

  1. 高效获取和整理数据: 利用网络爬虫技术从当当网获取大量的图书数据,包括书名、作者、单价、出版日期、出版社和简介等关键信息。通过高效的数据采集和清洗,确保所获取的数据具有广泛的覆盖面和较高的质量,为后续的数据分析和建模提供坚实的基础。

  2. 分析市场结构和销售趋势: 通过对爬取的数据进行详细的分析,揭示图书市场的结构和销售趋势。分析不同类别、不同价格区间的图书在市场中的分布情况,识别销售热点和冷门,帮助出版商和书店更好地理解市场需求和动态。通过时间序列分析,预测未来的销售趋势,指导库存管理和市场推广策略的制定。

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 书籍聚类 ” 获取。👈👈👈

  1. 研究消费者行为和购买偏好: 利用数据挖掘和机器学习技术,分析消费者的购买行为和偏好。例如,通过聚类分析,将消费者按照购买行为划分为不同的群体,探索各群体的特征和需求。通过用户行为分析,了解消费者在购买决策中的关键因素,如价格敏感度、品牌偏好等,为个性化营销和精准推荐提供依据。

  2. 优化推荐系统: 通过对图书销售数据的深入分析,为推荐系统提供数据支持和优化方向。研究如何通过数据分析提升推荐系统的准确性和相关性,提高用户满意度和平台的转化率。例如,利用协同过滤、矩阵分解和深度学习等方法,构建更智能的推荐模型,提升用户体验。

  3. 提供科学的定价策略: 通过对图书单价的预测模型,帮助出版商和书店制定科学合理的定价策略。利用支持向量机回归(SVR)等机器学习算法,对不同类别、不同出版社的图书单价进行预测,提供动态定价的依据,优化利润和市场竞争力。

  4. 支持供应链和库存管理: 通过销售数据的预测和分析,优化供应链和库存管理策略。研究图书的需求波动和季节性趋势,合理规划库存,避免缺货或积压,提高供应链的响应速度和效率。通过数据驱动的库存管理,提高物流和仓储的整体运营效率。

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 书籍聚类 ” 获取。👈👈👈


二、设计思路

2.2数据获取与介绍
利用Python编写网络爬虫,通过requests库发送HTTP请求,获取当当网指定页面的HTML内容。使用lxml库解析HTML结构,提取书名、作者、单价、出版日期、出版社和简介等信息。将爬取到的数据存储到一个列表中。

为了保证数据的完整性和准确性,我们对获取的数据进行了清洗和预处理。使用Pandas和NumPy对缺失值进行处理,将字符型数据转换为数值型数据,并对单价数据进行了标准化处理,以消除不同尺度对分析结果的影响。最终,整理后的数据被存储在Excel文件中,作为后续分析和建模的基础数据来源。通过这种系统化的数据采集方法,我们确保了研究所需数据的高质量和广泛性,为深入分析图书市场提供了坚实的基础。

在这里插入图片描述

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 书籍聚类 ” 获取。👈👈👈

2.3.1 缺失值分析与处理:

读取数据后,首先要检查数据中是否存在缺失值。缺失值可能会影响后续的数据分析和模型训练,因此需要进行处理。

# 将“无”替换为缺失值NaN
df.replace('无', np.nan, inplace=True)

# 检查缺失值情况
missing_values = df.isnull().sum()
print("缺失值情况:")
print(missing_values)
  1. 数据类型转换:

在确保数据完整性后,需要对数据类型进行转换。特别是‘单价’列需要转换为浮点数类型,以确保后续处理和分析的准确性。

# 将单价列转换为浮点数类型
data['单价'] = data['单价'].astype(float)

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 书籍聚类 ” 获取。👈👈👈

  1. 特征编码:

对于分类变量‘书名’,需要将其转换为数值类型,以便机器学习模型能够处理。使用类别编码将每个书名映射为一个唯一的整数值。

# 将书名转换为类别编码
data['书名'] = data['书名'].astype('category').cat.codes
  1. 数据增强:

为了增加数据的鲁棒性,向单价数据中添加随机噪声。这样可以模拟现实数据中的波动,使模型在面对真实数据时表现更好。

import numpy as np

# 添加噪声到单价数据
np.random.seed(42)
noise = np.random.normal(0, 0.1, size=data['单价'].shape)
data['单价'] += noise

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 书籍聚类 ” 获取。👈👈👈

  1. 数据标准化:

为了消除不同特征量纲的影响,对单价数据进行标准化处理。标准化将数据转换为均值为0、标准差为1的标准正态分布,有助于提高模型的训练效果。

from sklearn.preprocessing import StandardScaler

# 标准化单价数据
scaler = StandardScaler()
data['单价'] = scaler.fit_transform(data[['单价']])

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 书籍聚类 ” 获取。👈👈👈


三、可视化分析

3.3.1 书籍单价分析
柱状图展示了前10本图书的单价分布情况。通过这一可视化图表,可以直观地比较不同书籍的价格差异。柱状图的横轴表示书名,纵轴表示单价。通过观察柱状图的高度,可以看出哪些书籍价格较高,哪些价格较低,从而揭示不同书籍在价格上的显著差异。图表的标题和旋转的书名标签(45度)使得图表更加清晰易读。总体而言,这段代码帮助我们理解当当网前10本图书的价格分布,为进一步的市场分析和定价策略提供了参考。

在这里插入图片描述

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 书籍聚类 ” 获取。👈👈👈

3.3.2出版社书籍分布情况
饼状图前8个出版社的书籍分布情况。通过这一可视化图表,可以直观地了解不同出版社在图书市场中的占有比例。饼状图的各个扇区表示不同的出版社,扇区的面积大小反映了各出版社书籍数量的比例。通过观察图表,可以看出哪些出版社出版的书籍较多,市场占有率较高。图表中的百分比标签(autopct=‘%1.1f%%’)使得各出版社的市场占有率更加清晰易读。总体而言,这段代码帮助我们理解当当网图书市场中主要出版社的分布情况,为进一步的市场分析和出版策略提供了参考。

在这里插入图片描述

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 书籍聚类 ” 获取。👈👈👈

3.3.3书籍信息分析
雷达图的数据预处理做了准备。它首先提取了数据框中第3到第7列的列标签,这些标签代表了雷达图中的不同维度。然后,它计算了这些维度在雷达图中的角度分布,并将这些角度形成一个闭合的多边形。通过这种方式,可以在雷达图中直观地比较多个变量的分布情况。总体而言,这段代码为后续的雷达图绘制奠定了基础,使得我们能够直观地在一个图中展示和比较多维度数据。
在这里插入图片描述

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 书籍聚类 ” 获取。👈👈👈

3.3.4单价箱线图分析
箱线图展示了前10本图书的单价分布情况。通过箱线图可以直观地看出这10本图书的价格范围、中位数、四分位数以及潜在的异常值。箱线图中的箱体表示数据的中间50%(即从第25百分位到第75百分位),中间的线表示数据的中位数。图中的须线(即箱体外的线)延伸至数据的最小值和最大值,任何箱体外的数据点则被视为异常值。通过这种方式,可以深入了解图书价格的分布特征和离散情况,有助于进一步分析图书定价策略的合理性和市场价格的波动情况。

在这里插入图片描述
3.3.5单价玫瑰图分析
玫瑰图展示了图书单价的极坐标条形图分布情况。玫瑰图中的每个条形的角度(theta)均匀分布在0到2π之间,表示不同的图书,而条形的长度(radii)表示图书的单价。通过这一可视化图表,可以直观地观察到不同图书单价的离散性和分布特征。玫瑰图清晰地展示了价格分布的整体形态,帮助识别出价格较高和较低的图书。在图表中,较长的条形代表价格较高的图书,而较短的条形代表价格较低的图书。这种展示方式有助于深入理解图书市场中价格的多样性和差异性,为价格策略和市场分析提供参考依据。
在这里插入图片描述

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 书籍聚类 ” 获取。👈👈👈

3.3.6 单价区间数量折线图分析
折线图展示了图书单价分布在不同价格区间的数量情况。通过将图书单价分成10个区间并统计每个区间的图书数量,这段代码绘制出不同价格区间的图书数量变化趋势。折线图中的横轴表示单价区间,纵轴表示每个区间内的图书数量。观察折线图可以发现,某些价格区间内的图书数量较多,反映出这些区间是图书定价的集中区域,而在其他区间内图书数量相对较少,显示出定价的稀疏区域。这种分析有助于理解图书市场中不同价格区间的分布情况,为图书定价策略和市场营销提供数据支持。

在这里插入图片描述

3.3.7作者与单价条形图分析
这段代码生成了一张条形图,展示了前15位作者的书籍单价分布情况。通过这张图表,可以直观地比较不同作者的书籍价格差异。条形图的横轴表示作者,纵轴表示书籍的单价。观察图表,可以发现某些作者的书籍定价较高,显示出这些作者可能具有较高的市场影响力或其作品具有较高的市场价值。而其他作者的书籍定价相对较低,反映出市场对其作品的定价策略不同。这种分析有助于理解作者与书籍定价之间的关系,为出版商和书店在制定定价和营销策略时提供参考。

在这里插入图片描述

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 书籍聚类 ” 获取。👈👈👈

3.3.8书名词云图分析
这段代码生成了一张词云图,展示了图书标题的词频分布情况。通过将所有书名连接成一个字符串,并使用WordCloud库生成词云图,直观地显示出书名中出现频率较高的关键词。词云图中的单词大小表示其在书名中出现的频率,频率越高,单词越大。观察词云图,可以发现某些关键词在书名中反复出现,反映出这些词汇可能是当前图书市场的热门主题或关键词。这种分析有助于了解图书市场的主题趋势和热点,为图书选题、营销宣传提供数据支持和灵感来源。
在这里插入图片描述


四、模型选择与结果分析

在本研究中,数据集划分的目的是为了训练和评估机器学习模型的性能。具体划分思路如下:

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 书籍聚类 ” 获取。👈👈👈

  1. 数据加载和预处理:
    首先,从Excel文件中读取数据,确保数据的完整性和一致性。
    将数据中的“无”替换为缺失值(NaN),以便进行数据清洗和处理。
    将“出版日期”列转换为日期时间格式,处理任何格式错误的数据。
    仅选择包含“简介”的行,确保用于模型训练和预测的数据完整。

  2. 文本特征提取:
    使用CountVectorizer对“简介”列中的文本数据进行特征提取。CountVectorizer将文本数据转换为词频矩阵,使其适合机器学习模型的输入。

在这里插入图片描述

聚类结果

本研究通过对当当网图书数据进行聚类分析,以探索书籍单价的分布情况和潜在的市场规律。以下是对聚类结果的详细分析。

  1. 数据预处理:
    首先,从Excel文件中读取数据,并将“无”替换为缺失值(NaN),以确保数据的完整性和准确性。提取数据中的“书名”和“单价”列,这两列是后续分析和建模的重要特征。为了便于机器学习算法处理,将“书名”转换为数值类别编码,即将每个书名分配一个唯一的数值。接下来,为了消除不同尺度对分析结果的影响,对“单价”数据进行了标准化处理。标准化处理可以将不同范围的数值转换到同一尺度上,使得数据在分析过程中具有可比性,并有助于提高聚类算法的性能。
    在这里插入图片描述

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 书籍聚类 ” 获取。👈👈👈

  1. 聚类结果解释:
    聚类结果表明,书籍单价被分为三个主要类别。通过绘制聚类结果图,可以直观地观察到不同类别书籍的价格分布。图中,每个点表示一本书,颜色表示其所属的聚类类别。观察图表可以发现以下几点:

第一类(Cluster 0):这一类书籍的单价较低,表明市场上存在一部分低价书籍。这些书籍可能是一些入门级、普及类书籍,或者是销量较高的畅销书。这类书籍的定价策略通常是为了吸引更多的读者群体,扩大市场份额。
第二类(Cluster 1):这一类书籍的单价处于中等水平,可能包括一些经典图书、专业书籍或高质量的普通读物。这类书籍在市场上具有较好的认可度和较稳定的销售表现,定价较为合理,适合大众消费者。
第三类(Cluster 2):这一类书籍的单价较高,可能是一些高端书籍、珍藏版或者特定领域的专业书籍。这类书籍通常面向特定的消费群体,如收藏家、专业人士或学术研究者,具有较高的附加值和市场定位。
在这里插入图片描述

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 书籍聚类 ” 获取。👈👈👈

3.2 指标评估

3.2.1模型训练和评估

  1. 预测结果:
    使用训练好的随机森林回归模型,在测试集(X_test)上进行预测。通过调用模型的predict方法,获取模型的预测结果(y_pred)。这些预测结果代表模型对测试集中每本书单价的估计值。
    在这里插入图片描述
    通过这种系统的评估方法,不仅可以量化模型的预测性能,还可以通过可视化手段更直观地了解模型的表现,从而为进一步优化模型提供依据。

在训练集上训练随机森林回归模型,通过fit方法学习训练数据中的模式。
在测试集上进行预测,通过predict方法获取预测结果。
计算和打印均方误差(MSE)作为模型评估指标,评估模型在测试集上的预测性能。

  1. 可视化实际值与预测值:
    使用Matplotlib绘制散点图,直观显示测试集的实际值与预测值之间的关系。
    添加参考线(y=x)以帮助判断预测结果的准确性和偏离程度。

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 书籍聚类 ” 获取。👈👈👈

通过上述划分和处理步骤,确保数据集的合理分割,为模型的训练和评估提供了坚实基础,从而有效评估模型的性能和实际应用价值。

在这里插入图片描述

通过热力图,可以识别市场中的某些规律。例如,某些书名类别可能在高价聚类中占据较大比例,表明这些类别的书籍通常定位为高端市场。而另一些书名类别可能集中在低价聚类中,表明这些书籍面向大众市场,价格较为亲民。
在这里插入图片描述

模型对比分析

  1. 数据读取与预处理:
    首先,代码通过pandas库读取Excel文件中的数据。为了确保数据的完整性和正确性,代码将缺失值(即’无’)替换为NaN。接下来,代码提取了需要的列(‘书名’和’单价’),并确保’单价’列为浮点数类型。这些步骤是数据分析和建模的基础,确保后续处理的数据格式和内容正确。

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 书籍聚类 ” 获取。👈👈👈

file_path = 'data.xlsx'
df = pd.read_excel(file_path, engine='openpyxl')
df.replace('无', np.nan, inplace=True)
data = df[['书名', '单价']].dropna()
data['单价'] = data['单价'].astype(float)
  1. 特征工程:
    在特征工程阶段,代码将’书名’列转换为类别编码,即将每个书名映射到一个唯一的整数值。这是因为机器学习模型通常只能处理数值型数据,因此需要将文本数据转换为数值表示。
    data[‘书名’] = data[‘书名’].astype(‘category’).cat.codes
    为了增强模型的鲁棒性和避免过拟合,代码在单价数据中添加了噪声。噪声的添加有助于模拟现实数据中的波动,使模型更具泛化能力。
np.random.seed(42)
noise = np.random.normal(0, 0.1, size=data['单价'].shape)
data['单价'] += noise

随后,代码对单价数据进行标准化处理,即将数据转换为均值为0、标准差为1的标准正态分布。标准化处理有助于提高模型的训练效果,尤其是在特征具有不同量纲的情况下。

scaler = StandardScaler()
data['单价'] = scaler.fit_transform(data[['单价']])
  1. 模型训练与预测:
    在模型训练阶段,代码创建并训练了一个随机森林回归模型。随机森林是一种集成学习方法,通过构建多个决策树并结合它们的预测结果来提高模型的精度和稳定性。
rf = RandomForestRegressor(n_estimators=100, random_state=42)
rf.fit(X_train, y_train)
  1. 模型评估:
    模型评估是机器学习过程中不可或缺的一环。代码计算了均方误差(MSE)、均方根误差(RMSE)和R²分数,以评估模型的预测性能。MSE衡量预测值与实际值之间的平均平方误差,RMSE是MSE的平方根,表示预测误差的标准差。R²分数表示模型的拟合优度,值越接近1,说明模型的解释力越强。
mse = mean_squared_error(y_test_original_scale, y_pred_original_scale)
rmse = np.sqrt(mse)
r2 = r2_score(y_test_original_scale, y_pred_original_scale)
print(f"均方误差 (MSE): {mse:.2f}")
print(f"均方根误差 (RMSE): {rmse:.2f}")
print(f"R^2 分数: {r2:.2f}")

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 书籍聚类 ” 获取。👈👈👈

在这里插入图片描述
6. 结果展示与可视化:
最后,代码通过可视化手段展示实际值与预测值的对比。散点图直观地展示了模型的预测效果,可以看到预测值与实际值的匹配情况。通过这种可视化方法,可以更好地理解模型的表现,发现可能的改进点。
在这里插入图片描述

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 书籍聚类 ” 获取。👈👈👈

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

windows 服务器安装svn服务端、迁移svn

svn服务器版本 因为要把旧svn迁移到新的svn,为了保证迁移后的稳定性,安装包使用的旧服务器的svn服务器版本 VisualSVN-Server-3.6.1-x64.msi 安装 配置仓库路径等 其他没截图的就默认配置下一步即可。安装完成先不要启动 迁移 旧的svn服务器直接把…

Windows远程桌面实现之十五:投射浏览器摄像头到xdisp_virt以及再次模拟摄像头(一)

by fanxiushu 2024-07-01 转载或引用请注明原始作者。 本文还是围绕xdisp_virt这个软件展开, 再次模拟成摄像头这个比较好理解,早在很久前,其实xdisp_virt项目中就有摄像头功能, 只是当时是分开的,使用起来…

【SpringBoot】IDEA查看spring bean的依赖关系

前因:在研究springcloud config组件时,我发现config-server包下的EnvironmentController不在扫描的包路径下却可以响应客户端的请求,这吸引了我的注意,我的问题是:EnvironmentController是怎么被添加进bean工厂的。本章…

Golang | Leetcode Golang题解之第218题天际线问题

题目: 题解: type pair struct{ right, height int } type hp []pairfunc (h hp) Len() int { return len(h) } func (h hp) Less(i, j int) bool { return h[i].height > h[j].height } func (h hp) Swap(i, j int) { h[i], h[j]…

26_嵌入式系统网络接口

以太网接口基本原理 IEEE802标准 局域网标准协议工作在物理层和数据链路层,其将数据链路层又划分为两层,从下到上分别为介质访问控制子层(不同的MAC子层,与具体接入的传输介质相关),逻辑链路控制子层(统一的LLC子层,为上层提供统…

CosyVoice多语言、音色和情感控制模型,one-shot零样本语音克隆模型本地部署(Win/Mac),通义实验室开源

近日,阿里通义实验室开源了CosyVoice语音模型,它支持自然语音生成,支持多语言、音色和情感控制,在多语言语音生成、零样本语音生成、跨语言声音合成和指令执行能力方面表现卓越。 CosyVoice采用了总共超15万小时的数据训练&#…

GuitarPro2024音乐软件#创作神器#音乐梦想

嘿,亲爱的朋友们!👋👋👋今天我要给你们安利一款超赞的软件——Guitar Pro。这款软件简直是吉他手的福音啊!🎉🎉🎉 Guitar Pro免费绿色永久安装包下载:&#…

如何快速申请免费SSL证书,实现网站HTTPS安全传输

随着互联网技术的飞速发展,网络安全已成为不可忽视的重要议题。HTTPS协议,作为HTTP协议的安全版本,通过SSL协议加密客户端与服务器之间的数据传输,从而保障信息在传输过程中的安全性。对于网站运营者而言,为网站部署SS…

SpringBoot测试类注入Bean失败的原因

针对SpringBoot的测试类&#xff0c;2.2版本之前和之后是不一样的。 2.2版本之后 导包pom.xml 添加test依赖 <!-- starter-test&#xff1a;junit spring-test mockito --> <dependency><groupId>org.springframework.boot</groupId><artifac…

论文解析——FTRANS: Energy-Efficient Acceleration of Transformers using FPGA

作者及发刊详情 Li B , Pandey S , Fang H ,et al.FTRANS: energy-efficient acceleration of transformers using FPGA[J].ACM, 2020.DOI:10.1145/3370748.3406567. 摘要 正文 主要工作贡献 与CPU和GPU在执行Transformer和RoBERTa相比&#xff0c;提出的FTRANS框架获得了…

ansible常见问题配置好了密码还是报错

| FAILED! > { “msg”: “Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this. Please add this host’s fingerprint to your known_hosts file to manage this host.” } 怎么解决&#xf…

[终端安全]-3 移动终端之硬件安全(TEE)

&#xff08;参考资料&#xff1a;TrustZone for V8-A. pdf&#xff0c;来源ARM DEVELOPER官网&#xff09; TEE&#xff08;Trusted Execution Environment&#xff0c;可信执行环境&#xff09;是用于执行敏感代码和处理敏感数据的独立安全区域&#xff1b;以ARM TrustZone为…

分布式技术栈、微服务架构 区分

1.分布式技术栈 这些技术栈都是为了更好的开发分布式架构的项目。 &#xff08;大营销平台的系统框架如下图&#xff0c;扩展的分布式技术栈&#xff09; &#xff08;1&#xff09;Dubbo——分布式技术栈 DubboNacos注册中心是应用可以分布式部署&#xff0c;并且提供RPC接…

HTML5使用<pre>标签:保留原始排版方式

在网页创作中&#xff0c;一般是通过各种标记对文字进行排版的。但是在实际应用中&#xff0c;往往需要一些特殊的排版效果&#xff0c;这样使用标记控制起来会比较麻烦。解决的方法就是保留文本格式的排版效果&#xff0c;如空格、制表符等。 如果要保留原始的文本排版效果&a…

redis并发、穿透、雪崩

Redis如何实现高并发 首先是单线程模型&#xff1a;redis采用单线程可以避免多线程下切换和竞争的开销&#xff0c;提高cpu的利用率&#xff0c;如果是多核cpu&#xff0c;可以部署多个redis实例。基于内存的数据存储&#xff1a;redis将数据存储在内存中&#xff0c;相比于硬…

回溯算法-以景点门票销售管理系统为例

1.回溯算法介绍 1.来源 回溯算法也叫试探法&#xff0c;它是一种系统地搜索问题的解的方法。 用回溯算法解决问题的一般步骤&#xff1a; 1、 针对所给问题&#xff0c;定义问题的解空间&#xff0c;它至少包含问题的一个&#xff08;最优&#xff09;解。 2 、确定易于搜…

唤醒知识循环,共筑绿色阅读梦——探索旧书回收小程序的无限可能

在这个信息爆炸的时代&#xff0c;书籍作为知识与智慧的载体&#xff0c;其重要性不言而喻。然而&#xff0c;随着电子阅读的兴起和书籍更新换代的加速&#xff0c;大量旧书被束之高阁&#xff0c;甚至面临被遗弃的命运。这不仅是对宝贵文化资源的浪费&#xff0c;也是对环境保…

12 电商高并发缓存实战

序章 项目代码缓存的数据一致性 延时双删 淘汰缓存写数据库休眠1s,再次淘汰缓存缺点:如果mysql是主从复制,去从库中拿去数据,此时同步数据还未完成,拿到的数据是旧数据。 先更新 DB,后删除缓存 采用异步延时删除策略. ①利用消息队列进行删除的补偿。②Mysql 数据库更新操…

Android项目中,查看项目依赖树的多种方式

1.使用预设的Task来进行查看 1.1 命令行 查看某个模块的所有依赖树&#xff1a; gradlew [模块名称]:dependencies 例如&#xff1a;gradlew app:dependencies查看某个模块的某功能的依赖树&#xff1a; gradlew [模块名称]:dependencies --configuration [功能名称] 例如&…

华为路由器静态路由配置(eNSP模拟实验)

实验目标 如图下所示&#xff0c;让PC1ping通PC2 具体操作 配置PC设备ip 先配置PC1的ip、掩码、网关。PC2也做这样的配置 配置路由器ip 配置G0/0/0的ip信息 #进入系统 <Huawei>system-view #进入GigabitEthernet0/0/0接口 [Huawei]int G0/0/0 #设置接口的ip和掩码 […