当前位置: 首页 > news >正文

2022高教社杯全国大学生数学建模竞赛C题 问题一(1) Python代码

目录

  • 问题 1
    • 1.1 对这些玻璃文物的表面风化与其玻璃类型、纹饰和颜色的关系进行分析
      • 数据探索 -- 单个分类变量的绘图
        • 树形图
        • 条形图
        • 扇形图
        • 雷达图
      • Cramer’s V 相关分析
      • 统计检验
        • 列联表分析
        • 卡方检验
        • Fisher检验
      • 绘图
        • 堆积条形图
        • 分组条形图
      • 分类模型
        • Logistic回归
        • 随机森林

import matplotlib.pyplot as plt
# Linux show Chinese characters *** important
plt.rcParams['font.family'] = 'WenQuanYi Micro Hei' import warnings
warnings.filterwarnings("ignore")
import pandas as pd# read by default 1st sheet of an excel file
path = '/home/shiyu/Desktop/path_acdemic/ant/数模/历年题目/2022/附件.xlsx'
d1 = pd.read_excel(path, sheet_name='表单1')
d2 = pd.read_excel(path, sheet_name='表单2')
d3 = pd.read_excel(path, sheet_name='表单3')print(d1.shape)
print(d2.shape)
print(d3.shape)
(58, 5)
(69, 15)
(8, 16)

问题 1

1.1 对这些玻璃文物的表面风化与其玻璃类型、纹饰和颜色的关系进行分析

数据探索 – 单个分类变量的绘图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

树形图

https://www.geeksforgeeks.org/treemaps-in-python-using-squarify/

import seaborn as sb 
import matplotlib.pyplot as plt
import squarifydata = list(d1['颜色'].value_counts())
labels = list(d1['颜色'].value_counts().index)plt.rcParams['figure.dpi'] = 300
plt.rcParams['savefig.dpi'] = 300plt.figure(figsize=(15,8))
squarify.plot(sizes=data, label=labels, text_kwargs={'fontsize': 20},color=sb.color_palette("Spectral",len(data))) plt.axis("off") 
(0.0, 100.0, 0.0, 100.0)

在这里插入图片描述

条形图
df = pd.DataFrame(d1['颜色'].value_counts())
df['颜色'] = df.index
df
count颜色
颜色
浅蓝20浅蓝
蓝绿15蓝绿
深绿7深绿
4
浅绿3浅绿
深蓝2深蓝
2
绿1绿
import matplotlib.pyplot as plt
import plotly.express as px
import numpy as np# Linux show Chinese characters *** important
plt.rcParams['font.family'] = 'WenQuanYi Micro Hei' fig = px.bar(df, x="颜色", y="count", title="颜色类别计数")
# center title
fig.update_layout(title_x=0.5)
# remove background color
fig.update_layout({
'plot_bgcolor': 'rgba(0, 0, 0, 0)',
'paper_bgcolor': 'rgba(0, 0, 0, 0)',
})fig.show()

在这里插入图片描述

扇形图
print(d1['纹饰'].value_counts())
纹饰
C    30
A    22
B     6
Name: count, dtype: int64
import plotly.express as px
fig = px.pie(d1, names='纹饰', title="玻璃纹饰类别的比例分布")
# center title
fig.update_layout(title_x=0.5)
fig.show()

在这里插入图片描述

print(d1['类型'].value_counts())
fig = px.pie(d1, names='类型', title="玻璃类型的比例分布")
# center title
fig.update_layout(title_x=0.5)
fig.show()
类型
铅钡    40
高钾    18
Name: count, dtype: int64

在这里插入图片描述

print(d1['颜色'].value_counts())
fig = px.pie(d1, names='颜色', title="玻璃颜色的比例分布")
# center title
fig.update_layout(title_x=0.5)
fig.show()
颜色
浅蓝    20
蓝绿    15
深绿     7
紫      4
浅绿     3
深蓝     2
黑      2
绿      1
Name: count, dtype: int64

在这里插入图片描述

print(d1['表面风化'].value_counts())
fig = px.pie(d1, names='表面风化', title="表面风化和未风化的比例分布")
# center title
fig.update_layout(title_x=0.5)
fig.show()
表面风化
风化     34
无风化    24
Name: count, dtype: int64

在这里插入图片描述

雷达图

https://plotly.com/python/radar-chart/

df = pd.DataFrame(d1['颜色'].value_counts())
df['颜色'] = df.index
df
count颜色
颜色
浅蓝20浅蓝
蓝绿15蓝绿
深绿7深绿
4
浅绿3浅绿
深蓝2深蓝
2
绿1绿
import plotly.express as px
import pandas as pd
plt.rcParams['figure.dpi'] = 300
plt.rcParams['savefig.dpi'] = 300fig = px.line_polar(df, r='count', theta='颜色', line_close=False,title="颜色各类别计数")
fig.update_traces(fill='toself')
# center title
fig.update_layout(title_x=0.5)
fig.show()

在这里插入图片描述

表面风化 vs 纹饰
在这里插入图片描述

Cramer’s V 相关分析

Cramer’s V: 用于计算名义分类变量之间的相关性。

理论:
https://www.ibm.com/docs/en/cognos-analytics/11.1.0?topic=terms-cramrs-v

代码:
https://www.geeksforgeeks.org/how-to-calculate-cramers-v-in-python/

crosstab = pd.crosstab(d1['表面风化'],d1['纹饰'])# dataframe to numpy
d = crosstab.to_numpy()
d
array([[11,  0, 13],[11,  6, 17]])
import scipy.stats as stats 
import numpy as np X2 = stats.chi2_contingency(d, correction=False)[0] 
N = np.sum(d) 
minimum_dimension = min(d.shape)-1# Calculate Cramer's V 
result = np.sqrt((X2/N) / minimum_dimension) 'Cramer’s V 相关系数 表面风化 vs 纹饰 = ' + str(result)
'Cramer’s V 相关系数 表面风化 vs 纹饰 = 0.29233117579189066'
crosstab = pd.crosstab(d1['表面风化'],d1['类型'])
d = crosstab.to_numpy()X2 = stats.chi2_contingency(d, correction=False)[0] 
N = np.sum(d) 
minimum_dimension = min(d.shape)-1# Calculate Cramer's V 
result = np.sqrt((X2/N) / minimum_dimension) 'Cramer’s V 相关系数 表面风化 vs 类型 = ' + str(result)
'Cramer’s V 相关系数 表面风化 vs 类型 = 0.3444233600968322'
crosstab = pd.crosstab(d1['表面风化'],d1['颜色'])
d = crosstab.to_numpy()X2 = stats.chi2_contingency(d, correction=False)[0] 
N = np.sum(d) 
minimum_dimension = min(d.shape)-1# Calculate Cramer's V 
result = np.sqrt((X2/N) / minimum_dimension) 'Cramer’s V 相关系数 表面风化 vs 颜色 = ' + str(result)
'Cramer’s V 相关系数 表面风化 vs 颜色 = 0.34121631178560535'

统计检验

列联表分析
crosstab = pd.crosstab(d1['表面风化'],d1['纹饰'])
crosstab
纹饰ABC
表面风化
无风化11013
风化11617
卡方检验

https://www.geeksforgeeks.org/python-pearsons-chi-square-test/

import scipy.stats
from scipy.stats import chi2_contingency
# 表面风化 vs 纹饰
crosstab = pd.crosstab(d1['表面风化'],d1['纹饰'])
stat, p, dof, expected = chi2_contingency(crosstab)
# interpret p-value
alpha = 0.05
print("p value is " + str(p))
if p <= alpha:print('Dependent (reject H0)')
else:print('Independent (H0 holds true)')
p value is 0.08388839673210007
Independent (H0 holds true)
# 表面风化 vs 类型
crosstab = pd.crosstab(d1['表面风化'],d1['类型'])
stat, p, dof, expected = chi2_contingency(crosstab)
# interpret p-value
alpha = 0.05
print("p value is " + str(p))
if p <= alpha:print('Dependent (reject H0)')
else:print('Independent (H0 holds true)')
p value is 0.019548014331003307
Dependent (reject H0)
# 表面风化 vs 颜色
crosstab = pd.crosstab(d1['表面风化'],d1['颜色'])
stat, p, dof, expected = chi2_contingency(crosstab)
# interpret p-value
alpha = 0.05
print("p value is " + str(p))
if p <= alpha:print('Dependent (reject H0)')
else:print('Independent (H0 holds true)')
p value is 0.5066496855976865
Independent (H0 holds true)
Fisher检验
pd.crosstab(d1['表面风化'],d1['颜色'])
颜色浅绿浅蓝深绿深蓝绿蓝绿
表面风化
无风化28322160
风化112402092
import FisherExact as fsprint('表面风化 vs 颜色')
print(fs.fisher_exact(pd.crosstab(d1['表面风化'],d1['颜色'])))
表面风化 vs 颜色
0.0

绘图

堆积条形图

表面风化 vs 纹饰

crosstab = pd.crosstab(d1['表面风化'],d1['纹饰'])
crosstab
纹饰ABC
表面风化
无风化11013
风化11617
dp = [['无风化', '纹饰A', 11], ['无风化', '纹饰B', 0],['无风化', '纹饰C', 13],['风化', '纹饰A', 11],['风化', '纹饰B', 6],['风化', '纹饰C', 17]]# Create the pandas DataFrame
df = pd.DataFrame(dp, columns=['表面风化', '纹饰', '计数'])
df
表面风化纹饰计数
0无风化纹饰A11
1无风化纹饰B0
2无风化纹饰C13
3风化纹饰A11
4风化纹饰B6
5风化纹饰C17
import matplotlib.pyplot as plt
import plotly.express as px
import numpy as np# Linux show Chinese characters *** important
plt.rcParams['font.family'] = 'WenQuanYi Micro Hei' fig = px.bar(df, x="表面风化", y="计数", color="纹饰", title="表面风化与纹饰的关系")
# center title
fig.update_layout(title_x=0.5)
# remove background color
fig.update_layout({
'plot_bgcolor': 'rgba(0, 0, 0, 0)',
'paper_bgcolor': 'rgba(0, 0, 0, 0)',
})fig.show()

在这里插入图片描述

表面风化 vs 玻璃类型

crosstab = pd.crosstab(d1['表面风化'],d1['类型'])
crosstab
类型铅钡高钾
表面风化
无风化1212
风化286
dp = [['无风化', '铅钡', 12], ['无风化', '高钾', 12],['风化', '铅钡', 28],['风化', '高钾', 6]]# Create the pandas DataFrame
df = pd.DataFrame(dp, columns=['表面风化', '玻璃类型', '计数'])
df
表面风化玻璃类型计数
0无风化铅钡12
1无风化高钾12
2风化铅钡28
3风化高钾6
fig = px.bar(df, x="表面风化", y="计数", color="玻璃类型", title="表面风化与玻璃类型的关系")
# center title
fig.update_layout(title_x=0.5)
# remove background color
fig.update_layout({
'plot_bgcolor': 'rgba(0, 0, 0, 0)',
'paper_bgcolor': 'rgba(0, 0, 0, 0)',
})fig.show()

在这里插入图片描述

表面风化 vs 颜色

crosstab = pd.crosstab(d1['表面风化'],d1['颜色'])
crosstab
颜色浅绿浅蓝深绿深蓝绿蓝绿
表面风化
无风化28322160
风化112402092
col1 = pd.DataFrame(['无风化'] * crosstab.shape[1] + ['风化'] * crosstab.shape[1])
col2 = pd.DataFrame(list(crosstab.columns) * 2)
col3 = pd.DataFrame(list(crosstab.iloc[0]) + list(crosstab.iloc[1]))df = pd.concat([col1, col2, col3], axis=1)
df.columns = ['表面风化', '颜色', '计数']
df
表面风化颜色计数
0无风化浅绿2
1无风化浅蓝8
2无风化深绿3
3无风化深蓝2
4无风化2
5无风化绿1
6无风化蓝绿6
7无风化0
8风化浅绿1
9风化浅蓝12
10风化深绿4
11风化深蓝0
12风化2
13风化绿0
14风化蓝绿9
15风化2
fig = px.bar(df, x="表面风化", y="计数", color="颜色", title="表面风化与颜色的关系")
# center title
fig.update_layout(title_x=0.5)
# remove background color
fig.update_layout({
'plot_bgcolor': 'rgba(0, 0, 0, 0)',
'paper_bgcolor': 'rgba(0, 0, 0, 0)',
})fig.show()

在这里插入图片描述

分组条形图
fig = px.bar(df, x="表面风化", y="计数", color="颜色", title="表面风化与颜色的关系", barmode='group')
# center title
fig.update_layout(title_x=0.5)
# remove background color
fig.update_layout({
'plot_bgcolor': 'rgba(0, 0, 0, 0)',
'paper_bgcolor': 'rgba(0, 0, 0, 0)',
})fig.show()

在这里插入图片描述

分类模型

Logistic回归

https://www.w3schools.com/python/python_ml_logistic_regression.asp

import sklearn
import warnings 
from sklearn.preprocessing import LabelEncoder
from sklearn.model_selection import train_test_split
from sklearn import linear_modeld1['颜色'].fillna('浅蓝', inplace=True)
df = d1.iloc[:,1:5]
# data encode
label_encoder = LabelEncoder()
df_encode = df.select_dtypes(include=['object']).apply(label_encoder.fit_transform)
df_encode.head()
纹饰类型颜色表面风化
02160
10011
20160
30160
40160
X = df_encode.drop('表面风化', axis=1)
y = df_encode['表面风化']logr = linear_model.LogisticRegression()
logr.fit(X,y)print('截距项 = ' + str(logr.intercept_))log_odds = logr.coef_
odds = numpy.exp(log_odds)
print('回归系数= ' + str(odds))
截距项 = [0.20030893]
回归系数= [[1.12409879 0.24081195 1.1795666 ]]
随机森林
from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
import pandas as pd
#import shap
from sklearn.metrics import accuracy_score
import numpy as np
clf = RandomForestClassifier(n_estimators=100, random_state=42)
clf.fit(X, y)importances = clf.feature_importances_
feature_imp_df = pd.DataFrame({'变量名': X.columns, '重要性程度': importances}).sort_values('重要性程度', ascending=True) 
feature_imp_df
变量名重要性程度
0纹饰0.270358
1类型0.297645
2颜色0.431998
import matplotlib.pyplot as plt
import plotly.express as px
import numpy as np# Linux show Chinese characters *** important
plt.rcParams['font.family'] = 'WenQuanYi Micro Hei' fig = px.bar(feature_imp_df, y="变量名", x="重要性程度",title="表面风化与其玻璃类型、纹饰和颜色的关系强度", orientation='h')
# center title
fig.update_layout(title_x=0.5)
# remove background color
fig.update_layout({
'plot_bgcolor': 'rgba(0, 0, 0, 0)',
'paper_bgcolor': 'rgba(0, 0, 0, 0)',
})fig.show()

在这里插入图片描述
相关阅读:

  • 2022高教社杯全国大学生数学建模竞赛C题 问题一(2) Python代码
  • 2022高教社杯全国大学生数学建模竞赛C题 问题一(3) Python代码
  • 2023高教社杯全国大学生数学建模竞赛C题 Python代码

相关文章:

2022高教社杯全国大学生数学建模竞赛C题 问题一(1) Python代码

目录 问题 11.1 对这些玻璃文物的表面风化与其玻璃类型、纹饰和颜色的关系进行分析数据探索 -- 单个分类变量的绘图树形图条形图扇形图雷达图 Cramer’s V 相关分析统计检验列联表分析卡方检验Fisher检验 绘图堆积条形图分组条形图 分类模型Logistic回归随机森林 import matplo…...

【3D打印】3D打印机运动控制“Gcode”

一、Gcode是什么&#xff1f; Gcode是一种用于控制数控机床&#xff08;包括3D打印机&#xff09;的语言。它由一系列指令组成&#xff0c;每个指令控制机器的一个特定动作。 二、基础术语 G指令&#xff1a;用于控制机器的运动。M指令&#xff1a;用于控制机器的其他功能&a…...

针对Chsrc换源工具的简单脚本

此脚本目前只是针对 X86和aarch64系统&#xff0c;可根据自身需求进行修改&#xff0c;点赞自取 关于工具的详细介绍请看上一篇文章&#xff1a;全平台通用的换源工具Chsrc #!/bin/bashtag1"https://gitee.com/RubyMetric/chsrc/releases/download/pre/chsrc-x64-linux&…...

vscode中如何配置c/c++环境

“批判他人总是想的太简单 剖析自己总是想的太困难” 文章目录 前言文章有误敬请斧正 不胜感恩&#xff01;一、准备工作二、安装 VSCode 插件三、配置 VSCode1. 配置编译任务&#xff08;tasks.json&#xff09;2. 配置调试器&#xff08;launch.json&#xff09; 四、运行和调…...

【梯度消失|梯度爆炸】Vanishing Gradient|Exploding Gradient——为什么我的卷积神经网络会不好呢?

【梯度消失|梯度爆炸】Vanishing Gradient|Exploding Gradient——为什么我的卷积神经网络会不好呢&#xff1f; 【梯度消失|梯度爆炸】Vanishing Gradient|Exploding Gradient——为什么我的卷积神经网络会不好呢&#xff1f; 文章目录 【梯度消失|梯度爆炸】Vanishing Gradi…...

MAC 地址简化概念(有线 MAC 地址、无线 MAC 地址、MAC 地址的随机化)

一、MAC 地址 MAC 地址&#xff08;Media Access Control Address&#xff09;&#xff0c;即媒体访问控制地址&#xff0c;也称为物理地址、硬件地址或链路层地址 MAC 地址有时也被称为物理地址&#xff0c;但这并不意味着 MAC 地址属于网络体系结构中的物理层&#xff0c;它…...

SQL_yog安装和使用演示--mysql三层结构

目录 1.什么是SQL_yog 2.下载安装 3.页面介绍 3.1链接主机 3.2创建数据库 3.3建表操作 3.4向表里面填内容 3.5使用指令查看效果 4.连接mysql的指令 4.1前提条件 4.2链接指令 ​编辑 4.3创建时的说明 4.4查看是不是连接成功 5.mysql的三层结构 1.什么是SQL_yog 我…...

蓝桥杯-STM32G431RBT6(解决LCD与LED引脚冲突的问题)

一、LCD与LED为什么会引脚冲突 LCD与LED引脚共用。 网上文章是在LCD_WriteRAM、LCD_WriteRAM_Prepare、LCD_WriteReg中添加&#xff0c;但问题并没有解决。 二、使用步骤 在如下函数中加入uint16_t tempGPIOC->ODR; GPIOC->ODRtemp; LCD_Init(); void LCD_C…...

ESP-01S,ESP8266设置客户端透传模式

ESP-01S,ESP8266设置透传(透明传输)模式 例子 ATCWMODE_DEF1 //station模式 ATRST //重启 ATCWLAP //查看周围热点 ATCWJAP_DEF"ssid","password" //连接热点 ATCIFSR //查看ip ATCIPSTA_DEF"192.168.82.66","192.168.6.1&…...

NFT Insider #147:Sandbox 人物化身九月奖励上线;Catizen 付费用户突破百万

市场数据 加密艺术及收藏品新闻 Doodles 动画特别剧《Dullsville and The Doodleverse》在多伦多国际电影节首映 Doodles 最近在多伦多国际电影节&#xff08;TIFF&#xff09;首映了其动画特别剧《Dullsville and The Doodleverse》&#xff0c;这是该品牌的一个重要里程碑。…...

103.WEB渗透测试-信息收集-FOFA语法(3)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a; 易锦网校会员专享课 上一个内容&#xff1a;102.WEB渗透测试-信息收集-FOFA语法&#xff08;2&#xff09; FOFA使用实例 组件框架 …...

SpringDataJPA基础增删改查

添加&#xff1a;save(对象) 删除&#xff1a;delete&#xff08;主键或者带有主键的对象&#xff09; 修改&#xff1a;save&#xff08;对象&#xff09; 对象中没有id&#xff0c;执行添加操作 对象中有id id不存在&#xff1a;执行添加 id存在&#xff1a; 其余数据…...

好代码网同款wordpress主题,完全开源无加密可二开

这个其实就是好代码网站的早期整站打包代码&#xff0c;当时售价198的&#xff0c;现在里面的部分数据已经过期了&#xff0c;只能展示效果&#xff0c;没法下载。所以就只当做主题分享给大家使用。 资源下载类网站目前还是红利期&#xff0c;搞个特价主机和域名&#xff0c;再…...

如何在@GenericGenerator中显式指定schema

现在的情况是&#xff0c;在MySQL中有db1和db2两个数据库。项目使用Hibernate&#xff0c;可同时访问db1和db2&#xff0c;默认数据库为db1。表table2在db2中。且table2的主键名为ids&#xff0c;是自增长字段&#xff08;Auto Increment&#xff09;。 table2和ids的定义为&a…...

感知器神经网络

1、原理 感知器是一种前馈人工神经网络&#xff0c;是人工神经网络中的一种典型结构。感知器具有分层结构&#xff0c;信息从输入层进入网络&#xff0c;逐层向前传递至输出层。根据感知器神经元变换函数、隐层数以及权值调整规则的不同&#xff0c;可以形成具有各种功能特点的…...

【C++】——继承详解

目录 1、继承的概念与意义 2、继承的使用 2.1继承的定义及语法 2.2基类与派生类间的转换 2.3继承中的作用域 2.4派生类的默认成员函数 <1>构造函数 <2>拷贝构造函数 <3>赋值重载函数 <4析构函数 <5>总结 3、继承与友元 4、继承与静态变…...

RocketMQ 消费方式

在消息传递系统中&#xff0c;“推&#xff08;Push&#xff09;”和“拉&#xff08;Pull&#xff09;”是两种不同的消息消费方式&#xff0c;RocketMQ 也支持这两种模式。下面是对这两种模式的详细解释&#xff1a; 1. 推模式&#xff08;Push Model&#xff09; 模式简介…...

初始爬虫7

针对数据提取的项目实战&#xff1a; 补充初始爬虫6的一个知识点&#xff1a; etree.tostring能够自动补全html缺失的标签&#xff0c;显示原始的HTML结构 # -*- coding: utf-8 -*- from lxml import etreetext <div> <ul> <li class"item-1">…...

深入理解Appium定位策略与元素交互

深入理解Appium定位策略与元素交互 在移动应用测试领域&#xff0c;Appium作为一款流行的跨平台自动化测试工具&#xff0c;其强大而灵活的元素定位能力对于构建稳定、高效的测试脚本至关重要。本文将深入探讨Appium支持的各种定位方法&#xff0c;并分享如何通过高级技巧和最…...

java基础面试题总结

java基础面试题总结 目录 前言 1. JVM vs JDK vs JRE的了解 2. 谈谈你对编程、编译、运行的理解 3. 什么是字节码?采用字节码的好处是什么? 5. java中的注解有几种&#xff0c;分别是什么&#xff1f; 6. 字符型常量和字符串常量 7.标识符和关键字的认识 8. 泛型&#xff…...

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周&#xff0c;有很多同学在写期末Java web作业时&#xff0c;运行tomcat出现乱码问题&#xff0c;经过多次解决与研究&#xff0c;我做了如下整理&#xff1a; 原因&#xff1a; IDEA本身编码与tomcat的编码与Windows编码不同导致&#xff0c;Windows 系统控制台…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

服务器硬防的应用场景都有哪些?

服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式&#xff0c;避免服务器受到各种恶意攻击和网络威胁&#xff0c;那么&#xff0c;服务器硬防通常都会应用在哪些场景当中呢&#xff1f; 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...

在Ubuntu中设置开机自动运行(sudo)指令的指南

在Ubuntu系统中&#xff0c;有时需要在系统启动时自动执行某些命令&#xff0c;特别是需要 sudo权限的指令。为了实现这一功能&#xff0c;可以使用多种方法&#xff0c;包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法&#xff0c;并提供…...

vue3 定时器-定义全局方法 vue+ts

1.创建ts文件 路径&#xff1a;src/utils/timer.ts 完整代码&#xff1a; import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

Module Federation 和 Native Federation 的比较

前言 Module Federation 是 Webpack 5 引入的微前端架构方案&#xff0c;允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

【JavaSE】绘图与事件入门学习笔记

-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角&#xff0c;以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向&#xff0c;距离坐标原点x个像素;第二个是y坐标&#xff0c;表示当前位置为垂直方向&#xff0c;距离坐标原点y个像素。 坐标体系-像素 …...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中&#xff0c;将 long long 类型转换为 QString 可以通过以下两种常用方法实现&#xff1a; 方法 1&#xff1a;使用 QString::number() 直接调用 QString 的静态方法 number()&#xff0c;将数值转换为字符串&#xff1a; long long value 1234567890123456789LL; …...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;使用DevEco Studio作为开发工具&#xff0c;采用Java语言实现&#xff0c;包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...