2022年第十一届数学建模国际赛小美赛D题野生动物贸易是否应长期禁止解题全过程文档及程序

2022年第十一届数学建模国际赛小美赛

D题 野生动物贸易是否应长期禁止

原题再现:

  野生动物市场被怀疑是此次疫情和2002年SARS疫情的源头,食用野生肉类被认为是非洲埃博拉病毒的一个来源。在冠状病毒爆发后,中国最高立法机构永久性地加强了野生动物交易规则。冠状病毒被认为起源于武汉的一个野生动物市场。一些科学家推测,一旦疫情结束,应急措施将被取消。
  野生动物产品贸易应如何长期监管?一些研究人员希望无一例外地全面禁止野生动物贸易,而另一些研究人员则表示,一些动物的可持续贸易是可能的,而且对依赖野生动物为生的人们有利。据北京非营利的企业家与生态协会估计,禁止食用野肉可能会使中国经济损失500亿元人民币(71亿美元),并使100万人失业。
  由中国武汉病毒研究所的李时政和崔洁领导的一个团队,追踪致命SARS病毒的起源,终于在2017年找到了他们的确凿证据。在云南省的一个偏僻洞穴里,病毒学家发现了一个马蹄蝠种群,该种群携带病毒株,与2002年跳到人类身上的病毒株具有相同的基因结构,导致全世界近800人死亡。研究人员于2017年11月30日在《公共科学图书馆·病原体》杂志上发表报告称,这种致命毒株很容易从这种蝙蝠种群中产生。另一个悬而未决的问题是,一种来自云南蝙蝠的病毒如何传播到1000公里以外的广东动物和人类身上,而不会在云南本身造成任何疑似病例。野生动物贸易就是答案。虽然野生动物食用时会高温烹调,但有些病毒很难存活,人类可能会接触到野生动物市场上的动物分泌物。他们警告说,这些成分已经到位,类似的疾病将再次出现。野生动物贸易有许多负面影响,其中最重要的是:
在这里插入图片描述
  图1:2002年SARS疫情与中国市场销售的果子狸有关

  •人口减少和灭绝
  •引入入侵物种
  •新疾病向人类传播

  我们使用CITES贸易数据库作为我的数据源。该数据库包含2 000多万份贸易记录,可以公开访问。附件为1990-2021年哺乳动物贸易数据,也可通过以下链接获取完整数据库:https://caiyun.139.com/m/i?0f5ckacoddpej
  要求您的团队建立合理的数学模型,分析数据,并解决以下问题:

  1、哪些野生动物群体和物种的交易量最大(以野生动物为例)?
  2、这些动物的主要贸易目的是什么?
  3、过去二十年(2003-2022年)贸易发生了怎样的变化?
  4、野生动物贸易是否与重大传染病疫情有关?
  5、你同意长期禁止野生动物贸易吗?它是否会对经济和社会产生重大影响,为什么?
  6、致函美国政府有关部门,阐述您的观点和政策建议。

整体求解过程概述(摘要)

  基于1990~2021年32年的野生动物贸易数据,建立了若干数学模型,得出了野生动物贸易的特点、变化趋势及其与主要传染病的关系,并提出了野生动物贸易的建议。
  首先统一了野生动物进出口贸易的数量和单位,然后利用SPSS对1990-2021年的贸易数据进行分析。据统计,食蟹猴种类最多,达151810种。种群数量最多的是猕猴,共计157875只。商业性贸易数量最多,为4453倍。
  其次,建立了基于LSTM神经网络的2022年贸易数据预测模型。以1990-2021年的贸易数据为输入变量对模型进行训练,并采用三次样条插值对模型进行改进,与以前的模型相比,RMSE分别下降了71.63%和90.43%。最后,我们发现,在过去20年中,进出口贸易总额呈现下降趋势,具体结论见3.4.2。
  第三,运用Pearson相关分析和灰色关联分析构建相关分析模型,分析野生动物贸易与主要传染病的关系。平均Pearson系数为0.3429。平均灰色关联度为0.8543,高度相关,因此认为野生动物贸易与主要传染病之间存在一定的相关性。
  第四,建立分析模型,从经济和社会的角度分析野生动物贸易是否应该长期禁止。采用层次分析法建立模型,得出野生动物贸易给国家带来巨大的经济利益,但如果发生疫情,则经济损失将是收益的十倍以上。综合社会的诸多利弊,我们认为野生动物贸易不应长期禁止,而应严格规范和限制。在此基础上,对美国鱼类和野生动物局提出了一些建议。
  最后总结了该模型的优缺点,并提出了今后的改进方向。

模型假设:

  为了便于以下讨论,我们首先假设:

  ⚫该数据集具有不可否认的真实性和准确性。
  ⚫没有考虑气候变化等外部因素。

问题重述:

  我们需要分析1990年至2021年的哺乳动物贸易数据,并建立模型来解决以下问题:

  •确定野生动物贸易中野生动物数量最多的野生动物群体和物种
  •根据提供的数据,找出野生动物贸易的主要目的
  •列出2003年至2022年间的贸易变化
  •建立相关分析模型,分析野生动物贸易与重大传染病暴发之间的关系。
  •分析长期禁止野生动物贸易的经济和社会影响,并根据分析结果就是否应实施长期禁止野生动物贸易发表意见。
  •针对上述问题,写信向美国政府相关部门介绍您的观点和政策建议。

模型的建立与求解整体论文缩略图

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

全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

部分程序代码:(代码和文档not free)

1 %LSTM Initial Code
2 clc;clear
3 %% Enter data for 1990-2021
4 data = [0.287259615 0.213347921 0.186021505 0.205663189 0.335515548
0.395131086 0.413533835 0.346978558 0.338954469 0.340277778 0.271653543
0.25748503 0.31122449 0.309278351 0.352941176 0.414772727 0.405844156
0.35125448 0.42019544 0.37804878 0.337595908 0.330218069 0.3081571
0.438709677 0.420849421 0.404761905 0.418867925 0.303501946 0.55
0.520710059 0.472826087 0.428571429];
5 %% Load the dataset
6 Train_data = data(1:27); %Training set
7 Text_data = data(28:32); %Texting set
8 %% Data preprocessing
9 me = mean(Train_data); %Mean
10 sd = std(Train_data); %Standard Deviation
11 TrainDataStandard = (Train_data - me) / sd;
12 XTrain = TrainDataStandard(1:end-1);
13 YTrain = TrainDataStandard(2:end);
14 %% Build the LSTM neural network
15 FeaturesNum = 1;
16 OutputNum = 1;
17 HiddenNum = 200; %The number of hidden layer units
18 layers = [ ...
19 sequenceInputLayer(FeaturesNum)
20 lstmLayer(HiddenNum)
21 fullyConnectedLayer(OutputNum)
22 regressionLayer];
23 options = trainingOptions('adam', ...
24 'MaxEpochs',1000, ...
25 'GradientThreshold',1, ...
26 'InitialLearnRate',0.01, ...
27 'LearnRateSchedule','piecewise', ...
28 'LearnRateDropPeriod',400, ...
29 'LearnRateDropFactor',0.15, ...
30 'Verbose',0, ...
31 'Plots','training-progress');
32 net = trainNetwork(XTrain,YTrain,layers,options);
33 %% Initialize Network
34 net = predictAndUpdateState(net,XTrain);
35 [net,predict_y] = predictAndUpdateState(net,YTrain(end));
36 %% Forecast
37 for i = 2:6
38 [net,predict_y(:,i)] =
predictAndUpdateState(net,predict_y(:,i-1),'ExecutionEnvironment','cpu');
39 end
40 %% Calculate RMSE
41 predict_y = sd * predict_y + me;
42 RMSE = sqrt(mean((predict_y(1:5)-Text_data).^2)) ;
43 %% Draw a curve
44 subplot(2,1,1)
45 plot(Train_data(1:end))
46 hold on
47 x = 28:(27+5);
48 plot(x,predict_y(1:5),'.-')
49 hold off
50 xlabel("Time")
51 ylabel("Case")
52 title("Forecast")
53 legend(["Observed" "Forecast"])
54 subplot(2,1,2)
55 plot(data)
56 xlabel("Time")
57 ylabel("Case")
58 title("Dataset")
59 %% Comparison between predicted value and actual value
60 figure(2)
61 x =1990:2021;
62 yy = [Train_data ,predict_y(1:5)];
63 plot(x,yy,'r') %Including predicted partial curve
64 hold on
65 plot(x,data,'b') %Actual curve
66 hold off
67 xlabel("Time")
68 ylabel("Case")
69 legend(["Predict" "Data"])
70
71 %LSTM Improved Code
72 clc;clear
73 %% Enter data for 1990-2021
74 data0 = [0.287259615 0.213347921 0.186021505 0.205663189 0.335515548
0.395131086 0.413533835 0.346978558 0.338954469 0.340277778 0.271653543
0.25748503 0.31122449 0.309278351 0.352941176 0.414772727 0.405844156
0.35125448 0.42019544 0.37804878 0.337595908 0.330218069 0.3081571
0.438709677 0.420849421 0.404761905 0.418867925 0.303501946 0.55
0.520710059 0.472826087 0.428571429];
75 %% Complementary data of cubic spline interpolation
76 year =
[1990,1991,1992,1993,1994,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021];
77 new_x = 1990:0.01:2021
78 data = spline(year,data0,new_x)
79 %% Load the dataset
80 Train_data = data(1:3000); %Training set
81 Text_data = data(3001:3101); %Texting set
82 %% Data preprocessing
83 me = mean(Train_data); %Mean
84 sd = std(Train_data); %Standard Deviation
85 TrainDataStandard = (Train_data - me) / sd;
86 XTrain = TrainDataStandard(1:end-1);
87 YTrain = TrainDataStandard(2:end);
88 %% Build the LSTM neural network
89 FeaturesNum = 1;
90 OutputNum = 1;
91 HiddenNum = 200; %The number of hidden layer units
92 layers = [ ...
93 sequenceInputLayer(FeaturesNum)
94 lstmLayer(HiddenNum)
95 fullyConnectedLayer(OutputNum)
96 regressionLayer];
97 options = trainingOptions('adam', ...
98 'MaxEpochs',100, ...
99 'GradientThreshold',1, ...
100 'InitialLearnRate',0.01, ...
101 'LearnRateSchedule','piecewise', ...
102 'LearnRateDropPeriod',400, ...
103 'LearnRateDropFactor',0.15, ...
104 'Verbose',0, ...
105 'Plots','training-progress');
106 net = trainNetwork(XTrain,YTrain,layers,options);
107 %% Initialize Network
108 net = predictAndUpdateState(net,XTrain);
109 [net,predict_y] = predictAndUpdateState(net,YTrain(end));
110 %% Forecast
111 for i = 2:201
112 [net,predict_y(:,i)] =
predictAndUpdateState(net,predict_y(:,i-1),'ExecutionEnvironment','cpu');
113 end
114 %% Calculate RMSE
115 predict_y = sd * predict_y + me;
116 RMSE = sqrt(mean((predict_y(1:101)-Text_data).^2)) ;
117 %% Draw a curve
118 subplot(2,1,1)
119 plot(Train_data(1:end))
120 hold on
121 x = 3001:(3000+101);
122 plot(x,predict_y(1:101),'.-')
123 hold off
124 xlabel("Time")
125 ylabel("Case")
126 title("Forecast")
127 legend(["Observed" "Forecast"])
128 subplot(2,1,2)
129 plot(data)
130 xlabel("Time")
131 ylabel("Case")
132 title("Dataset")
133 %% Comparison between predicted value and actual value
134 figure(2)
135 x =1990:0.01:2021;
136 yy = [Train_data ,predict_y(1:101)];
137 plot(x,yy,'r') %Including predicted partial curve
138 hold on
139 plot(x,data,'b') %Actual curve
140 hold off
141 xlabel("Time")
142 ylabel("Case")
143 legend(["Predict" "Data"])
1 import pandas as pd
2 import numpy as np
3 import matplotlib.pyplot as plt
4 plt.rcParams['font.family'] = ['sans-serif']
5 plt.rcParams['font.sans-serif'] = ['SimHei']
6 plt.rcParams['axes.unicode_minus']=False
7 #data = pd.read_excel('trade_mammals_wild_live_1990_2021.xlsx')
8 #data = pd.read_excel('cn_sars_98-03.xlsx')
9 #data = pd.read_excel('us_covid19_16-21.xlsx')
10 #data = pd.read_excel('cd_ebola_95-19.xlsx')
11 #data = pd.read_excel('ga_ebola_90-13.xlsx')
12 #data = pd.read_excel('ug_ebola_91-11.xlsx')
13 #data = pd.read_excel('us_flu_06-21.xlsx')
14 data = pd.read_excel('us_covid19_16-21_grey.xlsx')
15 data.head()
16 data.info()
17 dsc = data.describe()
18 dsc
19 pd.plotting.scatter_matrix(data, figsize=(20,10), alpha=0.75)
20 plt.show()
21 cor = data.corr() # method='pearson'
22 cor
23 sns.heatmap(cor, cmap='YlGnBu', xticklabels=True, yticklabels=True,
24 annot=True, square=True)
25 from scipy import stats
26 np.set_printoptions(suppress=True) # Scientific notation is not used
27 pd.set_option('display.float_format',lambda x : '%.4f' % x) # Keep 4
significant digits after the decimal point
28 # T-distribution test
29 tp = stats.t.isf(1-0.975, 9)
30 x = np.linspace(-5,5,100)
31 y = stats.t.pdf(x, 9)
32 plt.plot(x,y)
33 plt.vlines(-tp, 0, stats.t.pdf(-tp, 9), colors='orange')
34 plt.vlines(tp, 0, stats.t.pdf(tp, 9), colors='orange')
35 plt.fill_between(x, 0, y, where=abs(x)>tp, interpolate=True, color='r')
36 # P-value test
37 def my_pvalue_pearson(x):
38 col = x.shape[1]
39 col_name = x.columns.values
40 p_val = []
41 for i in range(col):
42 for j in range(col):
43 p_val.append(stats.pearsonr(x[col_name[i]], x[col_name[j]])[1])
44 p_val = pd.DataFrame(np.array(p_val).reshape(col, col),
columns=col_name, index=col_name)
45 return p_val
46 my_pvalue_pearson(data)
47
48 # Analytic Hierarchy Process
49 import numpy as np
50 def ConsisTest(X):
51 # Arithmetic averaging
52 X = np.array(X)
53 sum_X = X.sum(axis=0)
54 (n,n) = X.shape
55 sum_X = np.tile(sum_X,(n,1))
56 stand_X = X/sum_X # Standardized X
57 ## Normalization
58 sum_row = stand_X.sum(axis=1)
59 print("The result of the arithmetic averaging method to find the weights
is:")
60 print(sum_row/n)
61
62 # Eigenvalue method
63 V,E = np.linalg.eig(X)
64 max_value = np.max(V) # Maximum eigenvalue
65 #print("Maximum eigenvalue:",max_value)
66 max_v_index = np.argmax(V)
67 max_eiv = E[:,max_v_index]
68 stand_eiv = max_eiv/max_eiv.sum()
69 print("The result of the weighting of the eigenvalue method is:")
70 print(stand_eiv)
71 print("———————————————————————————————")
72 # Consistency check
73 ## Calculate the consistency metric CI
74 CI = (max_value-n)/(n-1)
75 ## Find the corresponding mean random consistency metric RI
76 RI =
np.array([15,0,0,0.52,0.89,1.12,1.26,1.36,1.41,1.46,1.49,1.52,1.54,1.56,1.58,1.59])
77 ## Calculate the consistency scale CR
78 CR = CI/RI[n]
79 if CR < 0.1:
80 print("CR=",CR,",Less than 0.1, pass the consistency test ")
81 else:
82 print("CR=",CR,",greater than or equal to 0.1, the consistency test
is not passed, please modify the judgment matrix ")
83 return None
84 # ConsisTest(b)
85 b = np.array([[1, 7,3,5],[1/7, 1,1/5,1/3] ,[1/3, 5,1,3],[1/5,3,1/3, 1]])
86 ConsisTest(b)
87
88
89 # Grey Relational Analysis
90 import pandas as pd
91 import numpy as np
92 #xlsx_file = "ug_ebola_91-11_grey_preprocess.xlsx"
93 #xlsx_file = "cn_sars_98-03_grey.xlsx"
94 #xlsx_file = "us_covid19_16-21_grey.xlsx"
95 xlsx_file = "cd_ebola_95-19_grey.xlsx"
96 xlsx_data = pd.read_excel(xlsx_file) # Prevent warnings from popping upx=
pd.DataFrame(xlsx_data)
97 x=x.iloc[:,1:].T
98 # 1、Data averaging processing
99 x_mean=x.mean(axis=1)
100 for i in range(x.index.size):
101 x.iloc[i,:] = x.iloc[i,:]/x_mean[i]
102 # 2、Extract reference and compare queues
103 ck=x.iloc[0,:]
104 cp=x.iloc[1:,:]
105 # The comparison queue is subtracted from the reference queue
106 t=pd.DataFrame()
107 for j in range(cp.index.size):
108 temp=pd.Series(cp.iloc[j,:]-ck)
109 t=t.append(temp,ignore_index=True)
110
111 # Find the maximum difference and minimum difference
112 mmax=t.abs().max().max()
113 mmin=t.abs().min().min()
114 rho=0.5
115
116 #3、Find the correlation coefficient
117 ksi=((mmin+rho*mmax)/(abs(t)+rho*mmax))
118
119 #4、Find the degree of correlation
120 r=ksi.sum(axis=1)/ksi.columns.size
121
122 #5、Relevance sorting
123 result=r.sort_values(ascending=False)
124 print(result)
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

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

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

相关文章

【git教程】

目录 git与SVN的区别&#xff1a;集中式与分布式的区别Windows上安装Git创建版本库/仓库&#xff08;repository&#xff09;将文件添加到repository报错处理 查看仓库的状态版本回退工作区和暂存区管理和修改撤销修改删除文件远程仓库添加远程仓库警告解除本地和远程的绑定关系…

一文3000字从0到1用Python进行gRPC接口测试!

gRPC 是一个高性能、通用的开源RPC框架&#xff0c;其由 Google 主要面向移动应用开发并基于HTTP/2 协议标准而设计&#xff0c;基于 ProtoBuf(Protocol Buffers) 序列化协议开发&#xff0c;且支持众多开发语言。 自gRPC推出以来&#xff0c;已经广泛应用于各种服务之中。在测…

AI助力智慧农业,基于SSD模型开发构建田间作物场景下庄稼作物、杂草检测识别系统

智慧农业随着数字化信息化浪潮的演变有了新的定义&#xff0c;在前面的系列博文中&#xff0c;我们从一些现实世界里面的所见所想所感进行了很多对应的实践&#xff0c;感兴趣的话可以自行移步阅读即可&#xff1a;《自建数据集&#xff0c;基于YOLOv7开发构建农田场景下杂草检…

【C语言快速学习基础篇】之二控制语句、循环语句、隐式转换

文章目录 一、控制语句1.1、for循环1.2、while循环1.3、注意&#xff1a;for循环和while循环使用上面等同1.4、do while循环1.4.1while条件成立时1.4.2、while条件不成立时 C语言介绍 C语言是一门面向过程的计算机编程语言&#xff0c;与C、C#、Java等面向对象编程语言有所不同…

“分割“安卓用户,对标iOS,鸿蒙崛起~

近期关于**“华为于明年推出不兼容安卓的鸿蒙版本”**的消息传出&#xff0c;引起了业界的热议关注。自从2019年8月&#xff0c;美国制裁下&#xff0c;华为不再能够获得谷歌安卓操作系统相关付费服务&#xff0c;如此情况下&#xff0c;华为“备胎”鸿蒙操作系统一夜转正。 华…

有效解决wordpress的502 Bad Gateway错误提示

摘要&#xff1a;最近有客户反映使用阿里云虚拟云主机&#xff0c;wordpress常提示502 Bad Gateway错误&#xff0c;网关错误是网站上遇到的常... wordpress的502 Bad Gateway错误如何修复&#xff1f; 第1步&#xff1a;偶发错误可尝试重新加载网站 偶尔出现流量突发爆增或是服…

Sql Server关于表的建立、修改、删除

表的创建&#xff1a; &#xff08;1&#xff09;在“对象资源管理器”面板中展开“数据库”节点&#xff0c;可以看到自己创建的数据库&#xff0c;比如Product。展开Product节点&#xff0c;右击“表”节点&#xff0c;在弹出的快捷菜单中选择“新建表”项&#xff0c;进入“…

打工人副业变现秘籍,某多/某手变现底层引擎-Stable Diffusion简介

Stable Diffusion是2022年发布的深度学习文本到图像生成模型,它主要用于根据文本的描述产生详细图像,尽管它也可以应用于其他任务,如

K-means算法通俗原理及Python与R语言的分别实现

K均值聚类方法是一种划分聚类方法&#xff0c;它是将数据分成互不相交的K类。K均值法先指定聚类数&#xff0c;目标是使每个数据到数据点所属聚类中心的总距离变异平方和最小&#xff0c;规定聚类中心时则是以该类数据点的平均值作为聚类中心。 01K均值法原理与步骤 对于有N个…

[HITCON 2017]SSRFme perl语言的 GET open file 造成rce

这里记录学习一下 perl的open缺陷 这里首先本地测试一下 发现这里使用open打开 的时候 如果通过管道符 就会实现命令执行 然后这里注意的是 perl 中的get 调用了 open的参数 所以其实我们可以通过管道符实现命令执行 然后这里如果file可控那么就继续可以实现命令执行 这里就…

JavaSE基础50题:12. 编写代码模拟三次密码输入的场景。

概述 编写代码模拟三次输入的场景&#xff0c;最多能输入三次密码&#xff0c;密码正确&#xff0c;提示 “登录成功” &#xff0c;密码错误&#xff0c;可重新输入&#xff0c;最多输入三次&#xff0c;三次均错&#xff0c;则提示退出程序。 代码 import java.util.Scann…

Redission分布式锁原理初探

什么是分布式锁&#xff0c;为什么需要分布式锁 在多线程并发请求当中&#xff0c;为了保证我们的资源同一时刻只有一个线程进行操作&#xff08;如商品超卖问题、购票系统等&#xff09;&#xff0c;我们通常要添加锁机制&#xff0c;如ReentrantLock&#xff0c;也就是可重入…

C# 使用FluentScheduler触发定时任务

写在前面 FluentScheduler是.Net平台下的一个自动任务调度组件&#xff0c;以前经常用的是Quarz.Net&#xff0c;相对而言FluentScheduler的定时配置更为直观&#xff0c;可直接用接口进行参数化设置&#xff0c;对Cron表达式有恐惧症的人来说简直就是福音&#xff0c;使用起来…

Linux——进程状态

我们都知道进程信息被放到了PCB&#xff08;task_struct&#xff09;中&#xff0c;可以理解为进程属性的集合。 PCB中包含了进程的ID&#xff0c;时间片&#xff0c;pc指针&#xff0c;所有的寄存器&#xff0c;进程状态、优先级、I/O状态信息等等...有兴趣的可以去看看源码&…

【计算机网络笔记】物理层——频带传输基础

系列文章目录 什么是计算机网络&#xff1f; 什么是网络协议&#xff1f; 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能&#xff08;1&#xff09;——速率、带宽、延迟 计算机网络性能&#xff08;2&#xff09;…

LAMP和分离式LNMP部署

目录 一.什么是LAMP&#xff1f; 二.安装LAMP 先安装apache&#xff0c;httpd网页服务&#xff1a; 接着安装mysql&#xff1a; 安装php&#xff1a; 创建论坛&#xff1a; 三.安装分布式LNMP&#xff1a; 先安装nginx&#xff1a; 到另一台主机安装php&#xff1a; …

整数二分的建模

当题目能够使用整数二分法建模时&#xff0c;主要有整数二分法思想进行判定&#xff0c;它的基本形式如下&#xff1a; while(left < right) {int ans;//记录答案 int mid left (right - left) / 2;//二分if(check(mid)){//检查条件&#xff0c;如果成立 ans mid;//记录…

Python实现的二叉树的先序、中序、后序遍历示例

一、先序、中序、后序遍历的次序&#xff1a; 创建好一棵二叉树后&#xff0c;可以按照一定的顺序对树中所有的元素进行遍历。按照先左后右&#xff0c;树 的遍历方法有三种&#xff1a;先序遍历、中序遍历和后序遍历。 其中&#xff0c;先序遍历的次序是&#xff1a;如果二叉…

用23种设计模式打造一个cocos creator的游戏框架----(一)生成器模式

1、模式标准 模式名称&#xff1a;生成器模式 模式分类&#xff1a;创建型 模式意图&#xff1a;将一个复杂对象的构建与它的表示分离&#xff0c;使得同样的构建过程可以创建不同的表示。 结构图&#xff1a; 适用于&#xff1a; 当创建复杂对象的算法应该独立于该对象的…

[MySQL--基础]事务的基础知识

前言 ⭐Hello!这里是欧_aita的博客。 ⭐今日语录&#xff1a;生活中最重要的决定就是要做出决定。 ⭐个人主页&#xff1a;欧_aita ψ(._. )>⭐个人专栏&#xff1a; 数据结构与算法 MySQL数据库 事务的目录&#x1f4d5; 前言事务简介&#x1f680;事务操作&#x1f680;准…