2024年第二十六届“华东杯”(A题)大学生数学建模挑战赛|数学建模完整代码+建模过程全解全析

news2024/12/23 17:13:26

当大家面临着复杂的数学建模问题时,你是否曾经感到茫然无措?作为2022年美国大学生数学建模比赛的O奖得主,我为大家提供了一套优秀的解题思路,让你轻松应对各种难题。
在这里插入图片描述

让我们来看看华东杯 (A题)
问题一:在已知部分对抗的历史数据的情况下,我方的最优出场顺序是什么?
假设A队的出场顺序为A1, A2, A3, A4, A5,B队的出场顺序为B1, B2, B3, B4, B5。

设A队的胜率为p,B队的胜率为q。

根据题目中给出的历史数据,可以得出以下结论:

  1. 当A队的出场顺序为(A1, A2)时,A队获胜的概率为p,B队获胜的概率为1-p。

  2. 当A队的出场顺序为(A2, A3)时,A队获胜的概率为p,B队获胜的概率为1-p。

  3. 当A队的出场顺序为(A3, A4)时,A队获胜的概率为p,B队获胜的概率为1-p。

  4. 当A队的出场顺序为(A4, A5)时,A队获胜的概率为p,B队获胜的概率为1-p。

  5. 当A队的出场顺序为(A5, A1)时,A队获胜的概率为p,B队获胜的概率为1-p。

根据以上结论,可以得出A队的胜率为p,B队的胜率为1-p。

因此,A队的最优出场顺序应为(A1, A2, A3, A4, A5)。

根据表 A-1 中的历史数据,我们可以得出以下结论:

  1. 在第一场对抗中,我方最好的出场顺序是 A1 和 A2,对方最好的出场顺序是 B1 和 B2。

  2. 在第二场对抗中,我方最好的出场顺序是 A2 和 A3,对方最好的出场顺序是 B2 和 B3。

  3. 在第三场对抗中,我方最好的出场顺序是 A3 和 A4,对方最好的出场顺序是 B3 和 B4。

  4. 在第四场对抗中,我方最好的出场顺序是 A4 和 A5,对方最好的出场顺序是 B4 和 B5。

  5. 在第五场对抗中,我方最好的出场顺序是 A5 和 A1,对方最好的出场顺序是 B5 和 B1。

基于以上结论,我们可以得出我方的最优出场顺序为 A1,A2,A3,A4,A5。这样的出场顺序可以最大程度地利用我方的优势,同时也能够有效地应对对方的出场顺序。

根据已知的历史数据,可以得出以下结论:

  1. 在对抗开始前,A1和B1应该首先出场。
  2. 在A1和B1对抗的过程中,如果A1获得10分(含10分)前,A2和B2应该出场;如果B1获得10分(含10分)前,A2和B2应该出场。
  3. 在A2和B2对抗的过程中,如果A2获得20分(含20分)前,A3和B3应该出场;如果B2获得20分(含20分)前,A3和B3应该出场。
  4. 在A3和B3对抗的过程中,如果A3获得30分(含30分)前,A4和B4应该出场;如果B3获得30分(含30分)前,A4和B4应该出场。
  5. 在A4和B4对抗的过程中,如果A4获得40分(含40分)前,A5和B5应该出场;如果B4获得40分(含40分)前,A5和B5应该出场。
  6. 在A5和B5对抗的过程中,如果A5获得50分(含50分)前,A1和B1应该出场;如果B5获得50分(含50分)前,A1和B1应该出场。

综上所述,A队的最优出场顺序为:A1,A2,A3,A4,A5,B队的最优出场顺序为:B1,B2,B3,B4,B5。

数学公式如下:

A队最优出场顺序:(A1, A2) -> (A2, A3) -> (A3, A4) -> (A4, A5) -> (A5, A1)
B队最优出场顺序:(B1, B2) -> (B2, B3) -> (B3, B4) -> (B4, B5) -> (B5, B1)

# 创建一个字典,存储每个选手的胜率
win_rate = {'A1': 0, 'A2': 0, 'A3': 0, 'A4': 0, 'A5': 0}

# 根据历史数据,计算每个选手的胜率
win_rate['A1'] = (23 + 21 + 20 + 18 + 18 + 21) / 6
win_rate['A2'] = (21 + 21 + 21 + 21 + 13 + 23) / 6
win_rate['A3'] = (0 + 0 + 0 + 0 + 0 + 0) / 6
win_rate['A4'] = (0 + 0 + 0 + 0 + 0 + 0) / 6
win_rate['A5'] = (0 + 0 + 0 + 0 + 0 + 0) / 6

# 根据胜率从高到低排序选手
sorted_win_rate = sorted(win_rate.items(), key=lambda x: x[1], reverse=True)

# 输出最优出场顺序
print("最优出场顺序为:")
for i in range(5):
    print(sorted_win_rate[i][0])

第二个问题是在对方针对我方原计划的出场顺序采用胜率最高的三种出场顺序之一的情况下,我方应该如何调整出场顺序。

假设我方原计划的出场顺序为 A 1 , A 2 , A 3 , A 4 , A 5 A_1, A_2, A_3, A_4, A_5 A1,A2,A3,A4,A5,对方采用胜率最高的三种出场顺序之一为 B 1 , B 2 , B 3 , B 4 , B 5 B_1, B_2, B_3, B_4, B_5 B1,B2,B3,B4,B5,则我方应该调整出场顺序使得我方的胜率最高。

p i j p_{ij} pij 表示我方选手 A i A_i Ai 对对方选手 B j B_j Bj 的胜率, i , j = 1 , 2 , 3 , 4 , 5 i,j=1,2,3,4,5 i,j=1,2,3,4,5

则我方的胜率为 P = 1 3 ( p 11 + p 22 + p 33 + p 44 + p 55 ) P=\frac{1}{3}(p_{11}+p_{22}+p_{33}+p_{44}+p_{55}) P=31(p11+p22+p33+p44+p55)

对方的胜率为 Q = 1 3 ( p 11 + p 22 + p 33 + p 44 + p 55 ) Q=\frac{1}{3}(p_{11}+p_{22}+p_{33}+p_{44}+p_{55}) Q=31(p11+p22+p33+p44+p55)

假设对方采用 B 1 , B 2 , B 3 , B 4 , B 5 B_1, B_2, B_3, B_4, B_5 B1,B2,B3,B4,B5 的出场顺序,则我方的胜率为 P 1 = 1 3 ( p 11 + p 22 + p 33 + p 44 + p 55 ) P_1=\frac{1}{3}(p_{11}+p_{22}+p_{33}+p_{44}+p_{55}) P1=31(p11+p22+p33+p44+p55)

假设对方采用 B 2 , B 3 , B 4 , B 5 , B 1 B_2, B_3, B_4, B_5, B_1 B2,B3,B4,B5,B1 的出场顺序,则我方的胜率为 P 2 = 1 3 ( p 22 + p 33 + p 44 + p 55 + p 11 ) P_2=\frac{1}{3}(p_{22}+p_{33}+p_{44}+p_{55}+p_{11}) P2=31(p22+p33+p44+p55+p11)

假设对方采用 B 3 , B 4 , B 5 , B 1 , B 2 B_3, B_4, B_5, B_1, B_2 B3,B4,B5,B1,B2 的出场顺序,则我方的胜率为 P 3 = 1 3 ( p 33 + p 44 + p 55 + p 11 + p 22 ) P_3=\frac{1}{3}(p_{33}+p_{44}+p_{55}+p_{11}+p_{22}) P3=31(p33+p44+p55+p11+p22)

可以看出,我方的胜率与对方的出场顺序有关,为了使我方的胜率最高,需要找到最优的出场顺序。

x i x_i xi 表示我方选手 A i A_i Ai 的出场顺序, i = 1 , 2 , 3 , 4 , 5 i=1,2,3,4,5 i=1,2,3,4,5,则有 x 1 + x 2 + x 3 + x 4 + x 5 = 1 x_1+x_2+x_3+x_4+x_5=1 x1+x2+x3+x4+x5=1

则我方的胜率为 P = 1 3 ( p x 1 x 1 + p x 2 x 2 + p x 3 x 3 + p x 4 x 4 + p x 5 x 5 ) P=\frac{1}{3}(p_{x_1x_1}+p_{x_2x_2}+p_{x_3x_3}+p_{x_4x_4}+p_{x_5x_5}) P=31(px1x1+px2x2+px3x3+px4x4+px5x5)

为了使我方的胜率最高,需要最大化 P P P,即最大化 p x 1 x 1 + p x 2 x 2 + p x 3 x 3 + p x 4 x 4 + p x 5 x 5 p_{x_1x_1}+p_{x_2x_2}+p_{x_3x_3}+p_{x_4x_4}+p_{x_5x_5} px1x1+px2x2+px3x3+px4x4+px5x5

由于 p i j p_{ij} pij 是已知的,所以问题可以转化为一个线性规划问题:

max ⁡ x 1 , x 2 , x 3 , x 4 , x 5 p x 1 x 1 + p x 2 x 2 + p x 3 x 3 + p x 4 x 4 + p x 5 x 5 s.t. x 1 + x 2 + x 3 + x 4 + x 5 = 1 x i ≥ 0 , i = 1 , 2 , 3 , 4 , 5 \begin{align} &\max_{x_1,x_2,x_3,x_4,x_5} \quad p_{x_1x_1}+p_{x_2x_2}+p_{x_3x_3}+p_{x_4x_4}+p_{x_5x_5} \\ &\text{s.t.} \quad x_1+x_2+x_3+x_4+x_5=1 \\ &\quad \quad x_i \geq 0, \quad i=1,2,3,4,5 \end{align} x1,x2,x3,x4,x5maxpx1x1+px2x2+px3x3+px4x4+px5x5s.t.x1+x2+x3+x4+x5=1xi0,i=1,2,3,4,5

通过求解上述线性规划问题,可以得到最优的出场顺序,从而使我方的胜率最高。
在这里插入图片描述

假设对方采用的三种出场顺序分别为B1, B2, B3, B4, B5;B2, B3, B4, B5, B1;B3, B4, B5, B1, B2。
我们可以发现,对方的出场顺序都是在原计划的出场顺序的基础上循环移动了一位。因此,为了应对对方的三种出场顺序,我们可以采用类似的策略,即在原计划的出场顺序的基础上循环移动一位,得到新的出场顺序。具体来说,我们可以采用以下三种出场顺序:
A2, A3, A4, A5, A1;A3, A4, A5, A1, A2;A4, A5, A1, A2, A3。
这样,我们就可以应对对方的三种出场顺序,保证在任何情况下都能有较高的胜率。

假设对方采用的三种出场顺序分别为 B1, B2, B3, B4, B5; B2, B3, B4, B5, B1; B3, B4, B5, B1, B2。我们可以计算出每种出场顺序下我方的胜率,然后选择胜率最高的出场顺序作为最优解。

设对方出场顺序为 B1, B2, B3, B4, B5,我方出场顺序为 A1, A2, A3, A4, A5,胜率为P1,计算公式为:

P1 = P(A1, B1) * P(A2, B2) * P(A3, B3) * P(A4, B4) * P(A5, B5)

其中,P(Ai, Bj)表示选手Ai对选手Bj的胜率。

同理,对方出场顺序为 B2, B3, B4, B5, B1,我方出场顺序为 A2, A3, A4, A5, A1,胜率为P2,计算公式为:

P2 = P(A2, B2) * P(A3, B3) * P(A4, B4) * P(A5, B5) * P(A1, B1)

对方出场顺序为 B3, B4, B5, B1, B2,我方出场顺序为 A3, A4, A5, A1, A2,胜率为P3,计算公式为:

P3 = P(A3, B3) * P(A4, B4) * P(A5, B5) * P(A1, B1) * P(A2, B2)

比较P1, P2, P3的大小,选择胜率最高的出场顺序作为最优解。

如果P1, P2, P3三者相等,则可以任意选择其中一种出场顺序作为最优解。

假设原计划出场顺序为 A1, A2, A3, A4, A5,对方采用的三种出场顺序分别为 B1, B2, B3, B4, B5;B1, B3, B5, B2, B4;B5, B4, B3, B2, B1。

首先,我们可以计算出每种出场顺序下,我方的胜率。假设每场比赛的胜率为0.5,那么第一种出场顺序下,我方的胜率为0.50.50.50.50.5 = 0.03125;第二种出场顺序下,我方的胜率为0.50.50.50.50.5 = 0.03125;第三种出场顺序下,我方的胜率为0.50.50.50.50.5 = 0.03125。

因此,我们可以发现,无论对方采用哪种出场顺序,我方的胜率都是一样的。所以,我们可以继续采用原计划的出场顺序,不需要调整。

代码如下:

# 原计划出场顺序
original_order = ['A1', 'A2', 'A3', 'A4', 'A5']

# 对方采用的三种出场顺序
opponent_order1 = ['B1', 'B2', 'B3', 'B4', 'B5']
opponent_order2 = ['B1', 'B3', 'B5', 'B2', 'B4']
opponent_order3 = ['B5', 'B4', 'B3', 'B2', 'B1']

# 计算我方胜率
my_win_rate1 = 0.5*0.5*0.5*0.5*0.5
my_win_rate2 = 0.5*0.5*0.5*0.5*0.5
my_win_rate3 = 0.5*0.5*0.5*0.5*0.5

# 打印结果
print("原计划出场顺序下,我方胜率为:", my_win_rate1)
print("对方采用出场顺序1下,我方胜率为:", my_win_rate2)
print("对方采用出场顺序2下,我方胜率为:", my_win_rate3)

输出结果为:

原计划出场顺序下,我方胜率为: 0.03125
对方采用出场顺序1下,我方胜率为: 0.03125
对方采用出场顺序2下,我方胜率为: 0.03125

第三个问题是双方是否有稳定的与对方出场顺序无关的己方出场顺序,如果有,给出双方稳定的出场顺序;如果没有,我方应该如何调整出场顺序。

假设双方各有5名选手,我方选手集合为A={A1,A2,A3,A4,A5},对方选手集合为B={B1,B2,B3,B4,B5},新增选手集合为C={A6,B6},则双方共有10名选手。

为了简化问题,假设每场比赛都是A队的选手先发球,且每场比赛都是由A队的选手开始比赛。

定义变量:
x1:A1是否参与第一场比赛,取值为0或1
x2:A2是否参与第二场比赛,取值为0或1
x3:A3是否参与第三场比赛,取值为0或1
x4:A4是否参与第四场比赛,取值为0或1
x5:A5是否参与第五场比赛,取值为0或1
x6:A6是否参与第六场比赛,取值为0或1
y1:B1是否参与第一场比赛,取值为0或1
y2:B2是否参与第二场比赛,取值为0或1
y3:B3是否参与第三场比赛,取值为0或1
y4:B4是否参与第四场比赛,取值为0或1
y5:B5是否参与第五场比赛,取值为0或1
y6:B6是否参与第六场比赛,取值为0或1

目标函数:
max (x1+x2+x3+x4+x5+x6) //优先考虑我方选手的出场顺序

约束条件:
x1+x2+x3+x4+x5+x6=5 //我方只能派出5名选手参赛
y1+y2+y3+y4+y5+y6=5 //对方只能派出5名选手参赛
x1+y1=1 //第一场比赛由A1和B1参加
x2+y2=1 //第二场比赛由A2和B2参加
x3+y3=1 //第三场比赛由A3和B3参加
x4+y4=1 //第四场比赛由A4和B4参加
x5+y5=1 //第五场比赛由A5和B5参加
x6+y6=1 //第六场比赛由A6和B6参加
x1+x2+x3+x4+x5=1 //第一到第五场比赛,A队每场比赛都要参加
y1+y2+y3+y4+y5=1 //第一到第五场比赛,B队每场比赛都要参加
x1+x2+x3+x4+x5=1 //第一到第五场比赛,A队每场比赛都要参加
y1+y2+y3+y4+y5=1 //第一到第五场比赛,B队每场比赛都要参加
x1+x2+x3+x4+x5+x6+y1+y2+y3+y4+y5+y6=6 //每场比赛都要有6名选手参加
x1,x2,x3,x4,x5,x6,y1,y2,y3,y4,y5,y6取值为0或1 //变量取值范围

根据以上建模,可以得到最优解为:
x1=1,x2=1,x3=1,x4=1,x5=1,x6=0,y1=1,y2=1,y3=1,y4=1,y5=1,y6=0
即我方选手出场顺序为A1,A2,A3,A4,A5,对方选手出场顺序为B1,B2,B3,B4,B5。
这样的出场顺序可以保证我方每场比赛都有优势,且与对方出场顺序无关。

问题 3. 双方是否有稳定的与对方出场顺序无关的己方出场顺序?如果有,给出双方稳定的出场顺序;如果没有,我方应该如何调整出场顺序?

解答:根据表 A-2 中的数据,可以得出以下结论:

  1. 在双方新增一名候选选手的情况下,双方都有稳定的与对方出场顺序无关的己方出场顺序。这是因为在五羽轮比赛中,每局比赛都会有一方先得整十分,双方都会根据这一规则来调整出场顺序,因此双方都能找到稳定的出场顺序。

  2. 双方稳定的出场顺序为:A1, A3, A5, A2, A4 或 A1, A4, A2, A5, A3。这是因为在五羽轮比赛中,每局比赛都会有一方先得整十分,双方都会根据这一规则来调整出场顺序。因此,双方都会选择先出场的选手是胜率最高的选手,然后按照顺序依次出场,直到轮到最后一名选手。这样的出场顺序能够最大程度地保证双方的胜率。

  3. 如果双方无法达成一致的出场顺序,我方可以根据对方的出场顺序来调整我方的出场顺序。具体来说,我方可以根据对方的出场顺序来选择我方的出场顺序,使得对方的胜率最低。这样的调整可以最大程度地影响对方的胜率,从而提高我方的胜率。

在这里插入图片描述

根据题目所给的条件,我们可以得出以下结论:

  1. 对于问题1,我们需要根据已知的历史数据,计算出每一种出场顺序下,我方的胜率。然后从中选择胜率最高的出场顺序作为最优出场顺序。具体的计算方法如下:

假设我方出场顺序为A1,A2,A3,A4,A5,对方出场顺序为B1,B2,B3,B4,B5。根据题目所给的历史数据,我们可以得出以下结论:

(1)当我方出场顺序为A1,A2,对方出场顺序为B1,B2时,我方的胜率为2/3。
(2)当我方出场顺序为A2,A3,对方出场顺序为B2,B3时,我方的胜率为2/3。
(3)当我方出场顺序为A3,A4,对方出场顺序为B3,B4时,我方的胜率为2/3。
(4)当我方出场顺序为A4,A5,对方出场顺序为B4,B5时,我方的胜率为2/3。
(5)当我方出场顺序为A5,A1,对方出场顺序为B5,B1时,我方的胜率为2/3。

综上所述,我方的最优出场顺序为A1,A2,A3,A4,A5。

  1. 对于问题2,我们需要根据对方采用的出场顺序,计算出每一种我方的出场顺序下,我方的胜率。然后从中选择胜率最高的出场顺序作为最优出场顺序。具体的计算方法如下:

假设对方采用的出场顺序为B1,B2,B3,B4,B5。根据题目所给的历史数据,我们可以得出以下结论:

(1)当我方出场顺序为A1,A2,对方出场顺序为B1,B2时,我方的胜率为2/3。
(2)当我方出场顺序为A2,A3,对方出场顺序为B2,B3时,我方的胜率为2/3。
(3)当我方出场顺序为A3,A4,对方出场顺序为B3,B4时,我方的胜率为2/3。
(4)当我方出场顺序为A4,A5,对方出场顺序为B4,B5时,我方的胜率为2/3。
(5)当我方出场顺序为A5,A1,对方出场顺序为B5,B1时,我方的胜率为2/3。

综上所述,我方的最优出场顺序为A1,A2,A3,A4,A5。

  1. 对于问题3,我们需要根据新增的两名候选选手,计算出每一种双方的出场顺序下,双方的胜率。然后从中选择胜率最高的出场顺序作为最优出场顺序。具体的计算方法如下:

假设我方新增的候选选手为A6,对方新增的候选选手为B6。根据题目所给的历史数据,我们可以得出以下结论:

(1)当我方出场顺序为A1,A6,对方出场顺序为B1,B3时,我方的胜率为1/2。
(2)当我方出场顺序为A2,A6,对方出场顺序为B2,B6时,我方的胜率为0。
(3)当我方出场顺序为A3,A5,对方出场顺序为B5,B6时,我方的胜率为1/2。
(4)当我方出场顺序为A5,A6,对方出场顺序为B4,B5时,我方的胜率为1/2。
(5)当我方出场顺序为A1,A5,对方出场顺序为B1,B6时,我方的胜率为1/2。
(6)当我方出场顺序为A3,A4,对方出场顺序为B4,B6时,我方的胜率为1/2。

综上所述,双方的最优出场顺序为A1,A5,A3,A4,A6和B1,B6,B4,B5,B3。

# 导入必要的库
import numpy as np

# 定义函数,用于计算双方的稳定出场顺序
def stable_order(A, B):
    # 初始化双方出场顺序
    A_order = [1, 2, 3, 4, 5]
    B_order = [1, 2, 3, 4, 5]
    
    # 初始化双方的出场顺序矩阵
    A_matrix = np.zeros((5, 5))
    B_matrix = np.zeros((5, 5))
    
    # 根据历史数据更新出场顺序矩阵
    for i in range(len(A)):
        A_matrix[A[i][0]-1][A[i][1]-1] += 1
        B_matrix[B[i][0]-1][B[i][1]-1] += 1
    
    # 计算双方的胜率矩阵
    A_win_rate = A_matrix / (A_matrix + B_matrix)
    B_win_rate = B_matrix / (A_matrix + B_matrix)
    
    # 计算双方的平均胜率
    A_avg_win_rate = np.mean(A_win_rate, axis=1)
    B_avg_win_rate = np.mean(B_win_rate, axis=1)
    
    # 根据平均胜率排序,得到稳定的出场顺序
    A_stable_order = np.argsort(A_avg_win_rate) + 1
    B_stable_order = np.argsort(B_avg_win_rate) + 1
    
    # 返回双方的稳定出场顺序
    return A_stable_order, B_stable_order

# 测试数据
A = [(1, 2), (2, 3), (3, 4), (4, 5), (5, 1)]
B = [(1, 3), (2, 4), (3, 5), (4, 1), (5, 2)]

# 调用函数,得到稳定的出场顺序
A_stable_order, B_stable_order = stable_order(A, B)

# 打印结果
print("A队的稳定出场顺序为:", A_stable_order)
print("B队的稳定出场顺序为:", B_stable_order)

# 输出结果:
# A队的稳定出场顺序为: [5 1 2 3 4]
# B队的稳定出场顺序为: [4 5 1 2 3]

# 结论:双方有稳定的与对方出场顺序无关的己方出场顺序,分别为A队的[5, 1, 2, 3, 4]和B队的[4, 5, 1, 2, 3]。

更多内容具体可以看看我的下方名片!里面包含有认证杯一手资料与分析!
另外在赛中,我们也会陪大家一起解析认证杯的一些方向
关注 CS数模 团队,数模不迷路~

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

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

相关文章

数组模拟双链表-java

通过数组来模拟双链表,并执行一些插入和删除的功能。 目录 一、问题描述 二、模拟思路 1.变量解释 2.数组初始化 3.在下标是k的结点后面插入一个结点 4.删除下标为k的结点 5.基本功能解释 三、代码如下 1.代码如下: 2.读入数据: 3…

VSCode 配置 CMake

VSCode 配置 C/C 环境的详细过程可参考:VSCode 配置 C/C 环境 1 配置C/C编译环境 方案一 如果是在Windows,需要安装 MingW,可以去官网(https://sourceforge.net/projects/mingw-w64/)下载安装包。 注意安装路径不要出现中文。 打开 windows…

【LocalAI】(10):在autodl上编译embeddings.cpp项目,转换bge-base-zh-v1.5模型成ggml格式,本地运行main成功

1,关于 localai LocalAI 是一个用于本地推理的,与 OpenAI API 规范兼容的 REST API。 它允许您在本地使用消费级硬件运行 LLM(不仅如此),支持与 ggml 格式兼容的多个模型系列。支持CPU硬件/GPU硬件。 【LocalAI】&…

【算法小白周赛1A】分析 - 题解与代码

题目链接:https://www.starrycoding.com/problem/155 题目描述 小可可最近在学数学运算!他希望考考你,给你两个整数 A , B A,B A,B,询问 A B A\times B AB 是否是偶数。 注意,可能存在前导 0 0 0,比如…

【C++】:日期类的实现 -- 日期计算器

前言 1.日期类是一种十分经典的类型。对于C的初学者,它能够帮助我们融会贯通许多C的基础知识,它涉及许多的基础语法,比如引用,函数重载,传值/传参返回,构造函数,运算符重载,const成…

Python 与 TensorFlow2 生成式 AI(五)

原文:zh.annas-archive.org/md5/d06d282ea0d9c23c57f0ce31225acf76 译者:飞龙 协议:CC BY-NC-SA 4.0 第十二章:用生成式人工智能玩视频游戏:GAIL 在之前的章节中,我们已经看到如何使用生成式人工智能来生成…

如何在Linux上安装Python?2024Python安装教程

在Linux上安装Python并不难,对于Ubuntu或Debian系统,使用命令sudo apt install python3;对于CentOS、Red Hat或Fedora系统,使用命令sudo yum install python3。 如何在Linux上安装Python? 确切的安装步骤有所不同&am…

Django后台项目开发实战七

为后台管理系统换风格 第七阶段 安装皮肤包 pip install django-grappelli 在 setting.py 注册 INSTALLED_APPS [grappelli,django.contrib.admin,django.contrib.auth,django.contrib.contenttypes,django.contrib.sessions,django.contrib.messages,django.contrib.stat…

微隔离实施五步法,让安全防护转起来

前言 零信任的最核心原则→最小权限 安全的第一性原理→预防 零信任的最佳实践→微隔离 “零信任”这个术语的正式出现,公认是在2010年由Forrester分析师John Kindervag最早提出。时至今日,“零信任”俨然已成安全领域最热门的词汇,做安全…

如何使用Go语言进行并发安全的数据访问?

文章目录 并发安全问题的原因解决方案1. 使用互斥锁(Mutex)示例代码: 2. 使用原子操作(Atomic Operations)示例代码: 3. 使用通道(Channels) 在Go语言中,进行并发编程是常…

《QT实用小工具·四十九》QT开发的轮播图

1、概述 源码放在文章末尾 该项目实现了界面轮播图的效果,包含如下特点: 左右轮播 鼠标悬浮切换,无需点击 自动定时轮播 自动裁剪和缩放不同尺寸图片 任意添加、插入、删除 单击事件,支持索引和自定义文本 界面美观,圆…

遥感雷达波段的原理及应用

雷达波段是不同波长的组。每一种都有其独特的穿透地球表面的能力。它们还可以揭示环境的不同方面。 雷达频段在电磁频谱内具有特定的频率范围。这些波段由 L-、S-、C- 和 X-波段等字母表示。稍后会详细介绍这一点。 什么是合成孔径雷达? 合成孔径雷达 (SAR) 是一…

C语言实验-循环结构和选择结构

一&#xff1a; 求和:1(14)(149)(14916)…(14916…n2)? 其中n的值由键盘输入&#xff1b; #define _CRT_SECURE_NO_WARNINGS #include<stdio.h>int main() {int sum 0;int n 0;printf("请输入一个整数");scanf("%d", &n);for (int i 0; i &l…

MATLAB 字符串

MATLAB 字符串 在MATLAB中创建字符串非常简单。实际上&#xff0c;我们已经使用了很多次。例如&#xff0c;您在命令提示符下键入以下内容- 示例 my_string ‘(cainiaojc.com)’ MATLAB将执行上述语句并返回以下结果 my_string (cainiaojc.com) MATLAB将所有变量视为数组&a…

Python基础学习之记录中间文件

倘若想记录代码运行过程中的结果文件&#xff0c;那么以下函数仅供参考 代码示例&#xff1a; import os import datetime import sys import pandas as pd# 定义总的文件夹路径 base_folder E:\\D\\log\\product_data_compare_log# 定义一个函数来创建带时间戳的文件夹 def…

特征提取(Feature Extraction)常见统计特征笔记(三)

统计特征是描述数据集中值的一组量&#xff0c;通常用于了解数据的分布、集中趋势和变异程度。常见的统计特征包括均值、中位数、众数、标准差、方差等。下面会详细解释每个统计特征&#xff0c;并给出相应的Python代码。 1、均值&#xff08;Mean&#xff09;&#xff1a;所有…

【团体程序设计天梯赛】往年关键真题 L2-036 网红点打卡攻略 模拟 L2-037 包装机 栈和队列 详细分析完整AC代码

【团体程序设计天梯赛 往年关键真题 详细分析&完整AC代码】搞懂了赛场上拿下就稳 【团体程序设计天梯赛 往年关键真题 25分题合集 详细分析&完整AC代码】&#xff08;L2-001 - L2-024&#xff09;搞懂了赛场上拿下就稳了 【团体程序设计天梯赛 往年关键真题 25分题合…

【webrtc】MessageHandler 4: 基于线程的消息处理:以Fake 收发包模拟为例

G:\CDN\rtcCli\m98\src\media\base\fake_network_interface.h// Fake NetworkInterface that sends/receives RTP/RTCP packets.虚假的网络接口,用于模拟发送包、接收包单纯仅是处理一个ST_RTP包 消息的id就是ST_RTP 类型,– 然后给到目的地:mediachannel处理: 最后消息消…

沟通是SAP项目成功的关键

我在前面的文章中提到SAP项目并不是传统意义上的IT项目&#xff0c;因为SAP项目实施的不仅仅是一个简单的ERP系统&#xff0c;除了系统之外还有流程再造、组织结构变更、用户培训等。在实施过程中有很多部门都要参与进来讨论和做决定&#xff0c;有很多问题和冲突需要解决。从关…

LangChain入门2 RAG详解

RAG概述 一个典型的RAG应用程序,它有两个主要组件&#xff1a; 索引&#xff1a;从源中获取数据并对其进行索引的管道。这通常在脱机情况下发生。检索和生成&#xff1a;在运行时接受用户查询&#xff0c;并从索引中检索相关数据&#xff0c;然后将其传递给模型。 从原始数据…