2024年美赛 (B题MCM)| 潜水艇 |数学建模完整代码+建模过程全解全析

本文主要是介绍2024年美赛 (B题MCM)| 潜水艇 |数学建模完整代码+建模过程全解全析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

问题重述:

Maritime Cruises Mini-Submarines (MCMS)是一家位于希腊的公司,他们制造能够携带人类前往海洋最深处的潜水艇。这些潜水艇被移动到目的地并从主机船只中释放,不需要连接线。MCMS现在希望利用他们的潜水艇带领游客探索爱奥尼亚海底的沉船遗迹。然而,在他们能够这样做之前,他们需要赢得监管机构的批准,制定在与主船失去通信以及潜水艇出现机械故障(包括动力丧失)的情况下的安全程序。特别是,他们希望您开发一个模型,以预测潜水艇随时间的位置。与在陆地或海面进行典型的搜救不同,出现故障的潜水艇可能会定位在海底或水下某个中性浮力点。其位置可能会受到洋流、海水密度的差异和/或海底地形的影响。您的任务是:

  1. 定位 - 开发一个能够预测潜水艇随时间位置的模型。
    • 这些预测存在哪些不确定性?
    • 潜水艇在事故发生前可以定期向主船发送哪些信息来减少这些不确定性?潜水艇需要什么样的设备来实现?
  2. 准备 - 您是否建议公司在主船上携带其他搜索设备?您可能会考虑不同类型的设备,但必须考虑到设备的可用性、维护、准备和使用成本。如果需要,搜救船只可能需要携带什么样的额外设备来协助搜救?
  3. 搜索 - 开发一个模型,该模型将使用来自您的位置模型的信息,以推荐最初的部署点和搜索模式,以最大程度地减少找到失踪潜水艇所需的时间。确定找到潜水艇的概率作为时间和累积搜索结果的函数。
  4. 推演 - 您的模型如何扩展以考虑其他旅游目的地,如加勒比海?您的模型如何改变以考虑在同一大致区域移动的多个潜水艇?

请准备一份不超过25页的报告,提供您的计划详细信息。包括一份面向希腊政府的两页备忘录。

问题一

当建立潜水艇位置的预测模型时,我们需要考虑潜水艇的动力学、外部环境的影响以及通信限制。以下是详细的建模步骤:

  1. 位置变化的建模:
  • 三维坐标系: 使用三维坐标系来表示潜水艇的位置。设 x ( t ) x(t) x(t) y ( t ) y(t) y(t) z ( t ) z(t) z(t) 为潜水艇在时间 t t t 的位置。
  • 位置的动力学: 使用微分方程描述潜水艇位置的动力学。这可能涉及速度和加速度,可以使用牛顿的运动方程。
  • 外部环境的影响: 考虑洋流、水密度变化和海底地形等外部因素对潜水艇位置的影响。这些因素可能导致潜水艇的漂移和深度变化。

d x d t = v x ( t ) \frac{dx}{dt} = v_x(t) dtdx=vx(t)
d y d t = v y ( t ) \frac{dy}{dt} = v_y(t) dtdy=vy(t)
d z d t = v z ( t ) \frac{dz}{dt} = v_z(t) dtdz=vz(t)

其中 v x ( t ) v_x(t) vx(t) v y ( t ) v_y(t) vy(t) v z ( t ) v_z(t) vz(t) 分别表示潜水艇在三个方向上的速度。

  1. 动力学模型:
  • 失去推进力: 考虑潜水艇可能失去推进力的情况。这可能是由于机械故障、燃料耗尽等原因。
  • 旋转: 如果潜水艇可以旋转,考虑旋转对其运动的影响。

例如:  d v x d t = − k ⋅ v x ( t ) \text{例如: } \frac{dv_x}{dt} = -k \cdot v_x(t) 例如dtdvx=kvx(t)

其中 k k k 是与失去推进力相关的参数。

  1. 不确定性的引入:
  • 随机过程: 引入随机过程来表示外部环境的不确定性。这可以包括洋流的随机性、水密度的不确定性等。
  • 模型参数的不确定性: 考虑动力学模型中的参数不确定性。

d x d t = f x ( x , y , z , t ) + ϵ x ( t ) \frac{dx}{dt} = f_x(x, y, z, t) + \epsilon_x(t) dtdx=fx(x,y,z,t)+ϵx(t)
d y d t = f y ( x , y , z , t ) + ϵ y ( t ) \frac{dy}{dt} = f_y(x, y, z, t) + \epsilon_y(t) dtdy=fy(x,y,z,t)+ϵy(t)
d z d t = f z ( x , y , z , t ) + ϵ z ( t ) \frac{dz}{dt} = f_z(x, y, z, t) + \epsilon_z(t) dtdz=fz(x,y,z,t)+ϵz(t)

其中 ϵ x ( t ) \epsilon_x(t) ϵx(t) ϵ y ( t ) \epsilon_y(t) ϵy(t) ϵ z ( t ) \epsilon_z(t) ϵz(t) 是表示不确定性的随机过程。

  1. 通信模型:
  • 位置信息发送事件: 建模潜水艇何时能够发送位置信息给主船。这可能涉及到通信设备的限制、潜水深度的限制等。
  • 通信事件函数 g ( t ) g(t) g(t): 该函数可能取决于时间、深度、或其他相关因素。

例如:  g ( t ) = { 1 如果通信事件发生 0 否则 \text{例如: } g(t) = \begin{cases} 1 & \text{如果通信事件发生} \\ 0 & \text{否则} \end{cases} 例如g(t)={10如果通信事件发生否则

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D# 潜水艇位置模型
def submarine_model(x, y, z, t):# 位置动力学模型,这里假设简单的线性运动dx_dt = 0.1dy_dt = 0.2dz_dt = -0.05return dx_dt, dy_dt, dz_dt# 通信事件模型
def communication_event(t):# 简化为时间的函数,这里假设每隔一段时间发送一次位置信息if t % 10 == 0:return 1else:return 0# 模拟潜水艇运动
def simulate_submarine_motion(total_time):time_points = np.arange(0, total_time, 1)positions = np.zeros((len(time_points), 3))for i, t in enumerate(time_points):dx_dt, dy_dt, dz_dt = submarine_model(positions[i, 0], positions[i, 1], positions[i, 2], t)positions[i + 1, 0] = positions[i, 0] + dx_dtpositions[i + 1, 1] = positions[i, 1] + dy_dtpositions[i + 1, 2] = positions[i, 2] + dz_dt# 模拟通信事件if communication_event(t):print(f"Time {t}: Sending position - x: {positions[i, 0]}, y: {positions[i, 1]}, z: {positions[i, 2]}")return time_points, positions# 三维可视化
def plot_submarine_motion(time_points, positions):fig = plt.figure()ax = fig.add_subplot(111, projection='3d')ax.plot3D(positions[:, 0], positions[:, 1], positions[:, 2], label='Submarine Motion', linewidth=2)ax.scatter(positions[:, 0], positions[:, 1], positions[:, 2], color='red', marker='o', label='Communication Events')#见完整版

问题二

我们需要进一步考虑一些因素,包括设备的效果、搜索模式、起始点选择以及时间分布等。

1. 设备选择和性能:

设备性能: P ( E i ) P(E_i) P(Ei)

设备成本: C ( E i ) C(E_i) C(Ei)

2. 设备部署策略:

搜索模式选择: P ( M ) P(M) P(M)

起始点确定: P ( S ) P(S) P(S)

3. 搜索设备效果建模:

设备检测概率: P ( D ∣ E i , M ) P(D|E_i, M) P(DEi,M)

设备未检测到的概率: P ( ¬ D ∣ E i , M ) = 1 − P ( D ∣ E i , M ) P(\neg D|E_i, M) = 1 - P(D|E_i, M) P(¬DEi,M)=1P(DEi,M)

4. 搜救时间和效果评估:

时间建模: P ( T ) P(T) P(T)

搜救成功概率: P ( R ∣ E i , M , T , S ) P(R|E_i, M, T, S) P(REi,M,T,S)

P ( R ∣ E i , M , T , S ) = P ( D ∣ E i , M ) ⋅ P ( S ) ⋅ ( 1 − ∏ t = 1 T P ( ¬ D ∣ E i , M , t ) ) P(R|E_i, M, T, S) = P(D|E_i, M) \cdot P(S) \cdot \left(1 - \prod_{t=1}^{T} P(\neg D|E_i, M, t)\right) P(REi,M,T,S)=P(DEi,M)P(S)(1t=1TP(¬DEi,M,t))

P ( ¬ D ∣ E i , M , t ) = ∏ j = 1 k P ( ¬ D j ∣ E i , M , t ) P(\neg D|E_i, M, t) = \prod_{j=1}^{k} P(\neg D_j|E_i, M, t) P(¬DEi,M,t)=j=1kP(¬DjEi,M,t) (多个设备未检测到的联合概率)

5. 总体评估:

总体搜救成功概率: P ( R ) = ∑ i = 1 n P ( R ∣ E i , M , T , S ) ⋅ P ( E i ) ⋅ P ( M ) P(R) = \sum_{i=1}^{n} P(R|E_i, M, T, S) \cdot P(E_i) \cdot P(M) P(R)=i=1nP(REi,M,T,S)P(Ei)P(M)

import random# 设备性能
def device_performance(device):# 假设性能是随机的,实际情况需要根据实际数据或模型确定return random.uniform(0.5, 1.0)# 设备成本
def device_cost(device):# 假设成本是随机的,实际情况需要根据实际数据或模型确定return random.uniform(1000, 5000)# 设备选择和性能
devices = ["Sonar", "Camera", "Laser"]
device_probabilities = {device: device_performance(device) for device in devices}# 设备部署策略
search_modes = ["Spiral", "Grid"]
search_mode_probability = {"Spiral": 0.7, "Grid": 0.3}# 起始点选择
start_point_probability = 0.8# 时间建模
def time_model():# 假设时间是随机的,实际情况需要根据实际数据或模型确定return random.uniform(1, 10)# 设备检测概率建模
def detection_probability(device, search_mode):# 这里使用了随机值,实际情况需要根据实际数据或模型确定return device_probabilities[device] * random.uniform(0.5, 1.0)# 搜救成功概率建模
def rescue_probability(device, search_mode, time, start_point):detection_prob = detection_probability(device, search_mode)# 计算多个设备未检测到的联合概率undetected_prob = 1.0for t in range(1, int(time) + 1):undetected_prob *= (1 - detection_probability(device, search_mode))return detection_prob * start_point_probability * (1 - undetected_prob)#见完整版

问题三

建模思路整合:

在问题三中,我们需要将搜救模型扩展到考虑其他旅游目的地以及多潜水艇在同一区域的协同搜救情况。以下是整合后的建模思路:

1. 适应其他旅游目的地:

位置变化模型:
P ( L new ∣ L old , G ) P(L_{\text{new}} | L_{\text{old}}, G) P(LnewLold,G)

解释: 此模型考虑了地理因素 G G G 对潜水艇位置的影响,使模型具有适应不同旅游目的地的能力。

模型调整和公式变化:
P ( R ∣ L , E , M , T , S ) P(R | L, E, M, T, S) P(RL,E,M,T,S)

解释: 原有搜救模型被扩展,引入了位置信息 L L L,考虑到不同目的地可能需要调整设备性能、搜索模式等参数。

2. 多潜水艇移动:

位置变化模型(考虑速度和方向):
P ( L new i ∣ L old i , V i , Θ i , G ) P(L_{\text{new}_i} | L_{\text{old}_i}, V_i, \Theta_i, G) P(LnewiLoldi,Vi,Θi,G)

解释: 考虑了速度 V V V、方向 Θ \Theta Θ 和地理因素 G G G 的情况下,描述了第 i i i 艘潜水艇位置变化的概率。

通信协同:
P ( C success i ∣ L i , L j , P comm ) P(C_{\text{success}_i} | L_i, L_j, P_{\text{comm}}) P(CsuccessiLi,Lj,Pcomm)

解释: 该公式表示在给定通信设备参数 P comm P_{\text{comm}} Pcomm 的情况下,第 i i i 艘潜水艇和其他潜水艇的协同通信成功概率。协同通信对于避免碰撞和提高搜索效率至关重要。

3. 总体评估:

多潜水艇协同搜救总体概率:
P ( 总体搜救成功 ) = ∑ i = 1 n P ( R i ∣ L i , E , M , T , S ) ⋅ P ( L new i ∣ L old i , V i , Θ i , G ) ⋅ P ( C success i ∣ L i , L j , P comm ) P(\text{总体搜救成功}) = \sum_{i=1}^{n} P(R_i | L_i, E, M, T, S) \cdot P(L_{\text{new}_i} | L_{\text{old}_i}, V_i, \Theta_i, G) \cdot P(C_{\text{success}_i} | L_i, L_j, P_{\text{comm}}) P(总体搜救成功)=i=1nP(RiLi,E,M,T,S)P(LnewiLoldi,Vi,Θi,G)P(CsuccessiLi,Lj,Pcomm)

解释: 该公式综合考虑了多艘潜水艇的搜救成功概率、位置变化概率和协同通信概率。通过对所有潜水艇的贡献进行求和,得到总体协同搜救成功的概率。

这一整体建模思路允许模型适应不同的旅游目的地,并考虑多潜水艇在同一区域的协同搜救情况。

import random# 适应其他旅游目的地
def position_change_probability(new_position, old_position, geography_factors):# 模拟位置变化概率,实际应用中需要基于实际数据或模型return random.uniform(0.1, 0.9)# 搜救模型
def search_and_rescue_probability(location, equipment, search_mode, time, start_point):# 模拟搜救成功概率,实际应用中需要基于实际数据或模型return random.uniform(0.1, 0.9)# 多潜水艇移动
def position_change_model(new_position, old_position, speed, direction, geography_factors):# 模拟位置变化概率,实际应用中需要基于实际数据或模型return random.uniform(0.1, 0.9)# 通信协同
def communication_cooperation_probability(location_i, location_j, communication_params):# 模拟通信协同成功概率,实际应用中需要基于实际数据或模型return random.uniform(0.1, 0.9)# 多潜水艇协同搜救总体概率
def total_rescue_probability(num_submarines, equipment, search_mode, time, start_point, communication_params):total_probability = 0for i in range(num_submarines):# 适应其他旅游目的地position_change_prob = position_change_probability(new_position, old_position, geography_factors)# 搜救模型search_rescue_prob = search_and_rescue_probability(location, equipment, search_mode, time, start_point)# 多潜水艇移动position_change_prob_multi_sub = position_change_model(new_position, old_position, speed, direction, geography_factors)# 通信协同communication_cooperation_prob = communication_cooperation_probability(location_i, location_j, communication_params)# 多潜水艇协同搜救总体概率total_probability += search_rescue_prob * position_change_prob_multi_sub * communication_cooperation_probreturn total_probability# 示例调用
num_submarines = 3
equipment = "Sonar"
search_mode = "Spiral"
time = 5
start_point = (0, 0)
communication_params = {"range": 100, "frequency": "UHF"}
geography_factors = {"depth": 500, "current_speed": 2}# 填充实际数据或模型参数
new_position = (random.uniform(0, 100), random.uniform(0, 100))
old_position = (random.uniform(0, 100), random.uniform(0, 100))
speed = random.uniform(1, 5)#见完整版

问题四

问题四涉及如何将模型扩展以考虑其他旅游目的地(例如加勒比海),以及多个潜水艇在相同区域的情况。下面是详细的建模思路:

1. 适应其他旅游目的地:

位置变化模型:

P ( L new ∣ L old , G ) P(L_{\text{new}} | L_{\text{old}}, G) P(LnewLold,G)

解释: 这个公式表示在考虑地理因素 G G G 的情况下,潜水艇从旧位置 L old L_{\text{old}} Lold 移动到新位置 L new L_{\text{new}} Lnew 的概率。考虑到不同的旅游目的地可能有不同的地理特征,例如加勒比海与爱奥尼亚海,模型需要考虑不同的地理因素。

模型调整和公式变化:

P ( R ∣ L , E , M , T , S ) P(R | L, E, M, T, S) P(RL,E,M,T,S)

解释: 这个公式是原有搜救模型的扩展,包括了位置信息 L L L。在不同目的地,地理环境的变化可能会影响设备性能、搜索模式等,因此模型需要相应调整。这可能包括设备对不同海域的适应性、搜索策略的调整等。

2. 多潜水艇移动:

位置变化模型(考虑速度和方向):

P ( L new i ∣ L old i , V i , Θ i , G ) P(L_{\text{new}_i} | L_{\text{old}_i}, V_i, \Theta_i, G) P(LnewiLoldi,Vi,Θi,G)

解释: 这个公式表示在考虑速度 V V V、方向 Θ \Theta Θ 和地理因素 G G G 的情况下,第 i i i 艘潜水艇从旧位置 L old i L_{\text{old}_i} Loldi 移动到新位置 L new i L_{\text{new}_i} Lnewi 的概率。考虑到多艘潜水艇可能相互影响,速度和方向可能需要根据协同效应进行调整。

通信协同:

P ( C success i ∣ L i , L j , P comm ) P(C_{\text{success}_i} | L_i, L_j, P_{\text{comm}}) P(CsuccessiLi,Lj,Pcomm)

解释: 这个公式表示在给定通信设备参数 P comm P_{\text{comm}} Pcomm 的情况下,第 i i i 艘潜水艇和其他潜水艇的协同通信成功的概率。协同通信对于避免碰撞和提高搜索效率非常重要。

3. 总体评估:

多潜水艇协同搜救总体概率:

P ( 总体搜救成功 ) = ∑ i = 1 n P ( R i ∣ L i , E , M , T , S ) ⋅ P ( L new i ∣ L old i , V i , Θ i , G ) ⋅ P ( C success i ∣ L i , L j , P comm ) P(\text{总体搜救成功}) = \sum_{i=1}^{n} P(R_i | L_i, E, M, T, S) \cdot P(L_{\text{new}_i} | L_{\text{old}_i}, V_i, \Theta_i, G) \cdot P(C_{\text{success}_i} | L_i, L_j, P_{\text{comm}}) P(总体搜救成功)=i=1nP(RiLi,E,M,T,S)P(LnewiLoldi,Vi,Θi,G)P(CsuccessiLi,Lj,Pcomm)

解释: 这个公式整合了多艘潜水艇的搜救成功概率、位置变化概率和协同通信概率。通过对所有潜水艇的贡献进行求和,得到总体协同搜救成功的概率。这个概率可以帮助评估多潜水艇协同搜救的效果。

4. 适应多个潜水艇和多个目的地:

位置变化模型(考虑多潜水艇和多个目的地):

P ( L new i ∣ L old i , V i , Θ i , G d ) P(L_{\text{new}_i} | L_{\text{old}_i}, V_i, \Theta_i, G_d) P(LnewiLoldi,Vi,Θi,Gd)

解释: 这个公式在原有位置变化模型的基础上,考虑了不同目的地 d d d 对潜水艇位置变化的影响。可能需要额外的参数来区分不同目的地的地理特征。

多潜水艇协同通信:

P ( C success i ∣ L i , L j , P comm ) P(C_{\text{success}_i} | L_i, L_j, P_{\text{comm}}) P(CsuccessiLi,Lj,Pcomm)

解释: 在协同通信模型中,可能需要考虑多潜水艇之间的相互作用,以及它们在不同目的地中的通信效果。

import random# 适应其他旅游目的地
def position_change_probability(new_position, old_position, geography_factors):# 模拟位置变化概率,实际应用中需要基于实际数据或模型depth_difference = abs(geography_factors["depth"] - new_position[1])  # 模拟深度差异current_speed = geography_factors["current_speed"]  # 模拟海流速度# 模型调整:深度差异和海流速度对位置变化的影响probability = 0.7 - 0.005 * depth_difference + 0.01 * current_speedreturn max(0, min(1, probability))  # 保证概率在[0, 1]范围内# 多潜水艇移动
def position_change_model(new_position, old_position, speed, direction, geography_factors):# 模拟位置变化概率,实际应用中需要基于实际数据或模型depth_difference = abs(geography_factors["depth"] - new_position[1])  # 模拟深度差异current_speed = geography_factors["current_speed"]  # 模拟海流速度# 模型调整:深度差异和海流速度对位置变化的影响probability = 0.8 - 0.006 * depth_difference + 0.008 * current_speedreturn max(0, min(1, probability))  # 保证概率在[0, 1]范围内# 通信协同
def communication_cooperation_probability(location_i, location_j, communication_params):# 模拟通信协同成功概率,实际应用中需要基于实际数据或模型distance = ((location_i[0] - location_j[0]) ** 2 + (location_i[1] - location_j[1]) ** 2) ** 0.5# 模型调整:距离对通信协同的影响probability = 0.9 - 0.005 * distancereturn max(0, min(1, probability))  # 保证概率在[0, 1]范围内# 多潜水艇协同搜救总体概率
def total_rescue_probability(num_submarines, equipment, search_mode, time, start_point, communication_params, destination_factors):total_probability = 0for i in range(num_submarines):# 适应其他旅游目的地position_change_prob = position_change_probability(new_position, old_position, destination_factors)# 多潜水艇移动position_change_prob_multi_sub = position_change_model(new_position, old_position, speed, direction, destination_factors)# 通信协同communication_cooperation_prob = communication_cooperation_probability(location_i, location_j, communication_params)# 多潜水艇协同搜救总体概率total_probability += position_change_prob_multi_sub * communication_cooperation_probreturn total_probability# 示例调用
num_submarines = 3
equipment = "Sonar"
search_mode = "Spiral"
time = 5
start_point = (0, 0)
communication_params = {"range": 100, "frequency": "UHF"}
destination_factors = {"depth": 500, "current_speed": 2}# 填充实际数据或模型参数
new_position = (random.uniform(0, 100), random.uniform(0, 100))
old_position = (random.uniform(0, 100), random.uniform(0, 100))#见完整版

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

这篇关于2024年美赛 (B题MCM)| 潜水艇 |数学建模完整代码+建模过程全解全析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/670252

相关文章

uniapp接入微信小程序原生代码配置方案(优化版)

uniapp项目需要把微信小程序原生语法的功能代码嵌套过来,无需把原生代码转换为uniapp,可以配置拷贝的方式集成过来 1、拷贝代码包到src目录 2、vue.config.js中配置原生代码包直接拷贝到编译目录中 3、pages.json中配置分包目录,原生入口组件的路径 4、manifest.json中配置分包,使用原生组件 5、需要把原生代码包里的页面修改成组件的方

C/C++的编译和链接过程

目录 从源文件生成可执行文件(书中第2章) 1.Preprocessing预处理——预处理器cpp 2.Compilation编译——编译器cll ps:vs中优化选项设置 3.Assembly汇编——汇编器as ps:vs中汇编输出文件设置 4.Linking链接——链接器ld 符号 模块,库 链接过程——链接器 链接过程 1.简单链接的例子 2.链接过程 3.地址和

公共筛选组件(二次封装antd)支持代码提示

如果项目是基于antd组件库为基础搭建,可使用此公共筛选组件 使用到的库 npm i antdnpm i lodash-esnpm i @types/lodash-es -D /components/CommonSearch index.tsx import React from 'react';import { Button, Card, Form } from 'antd'

17.用300行代码手写初体验Spring V1.0版本

1.1.课程目标 1、了解看源码最有效的方式,先猜测后验证,不要一开始就去调试代码。 2、浓缩就是精华,用 300行最简洁的代码 提炼Spring的基本设计思想。 3、掌握Spring框架的基本脉络。 1.2.内容定位 1、 具有1年以上的SpringMVC使用经验。 2、 希望深入了解Spring源码的人群,对 Spring有一个整体的宏观感受。 3、 全程手写实现SpringM

创新、引领、发展——SAMPE中国2024年会在京盛大开幕

绿树阴浓夏日长,在这个色彩缤纷的季节,SAMPE中国2024年会暨第十九届国际先进复合材料制品原材料、工装及工程应用展览会在中国国际展览中心(北京朝阳馆)隆重开幕。新老朋友共聚一堂,把酒话桑麻。 为期4天的国际学术会议以“先进复合材料,引领产业创新与可持续化发展”为主题,设立了34个主题分会场,其中包括了可持续化会场、国际大学生会场、中法复合材料制造技术峰会三个国际会场和女科技工作者委员会沙龙,

代码随想录算法训练营:12/60

非科班学习算法day12 | LeetCode150:逆波兰表达式 ,Leetcode239: 滑动窗口最大值  目录 介绍 一、基础概念补充: 1.c++字符串转为数字 1. std::stoi, std::stol, std::stoll, std::stoul, std::stoull(最常用) 2. std::stringstream 3. std::atoi, std

Android我的二维码扫描功能发展史(完整)

最近在研究下二维码扫描功能,跟据从网上查阅的资料到自己勉强已实现扫描功能来一一介绍我的二维码扫描功能实现的发展历程: 首页通过网络搜索发现做android二维码扫描功能看去都是基于google的ZXing项目开发。 2、搜索怎么使用ZXing实现自己的二维码扫描:从网上下载ZXing-2.2.zip以及core-2.2-source.jar文件,分别解压两个文件。然后把.jar解压出来的整个c

记录AS混淆代码模板

开启混淆得先在build.gradle文件中把 minifyEnabled false改成true,以及shrinkResources true//去除无用的resource文件 这些是写在proguard-rules.pro文件内的 指定代码的压缩级别 -optimizationpasses 5 包明不混合大小写 -dontusemixedcaseclassnames 不去忽略非公共

麻了!一觉醒来,代码全挂了。。

作为⼀名程序员,相信大家平时都有代码托管的需求。 相信有不少同学或者团队都习惯把自己的代码托管到GitHub平台上。 但是GitHub大家知道,经常在访问速度这方面并不是很快,有时候因为网络问题甚至根本连网站都打不开了,所以导致使用体验并不友好。 经常一觉醒来,居然发现我竟然看不到我自己上传的代码了。。 那在国内,除了GitHub,另外还有一个比较常用的Gitee平台也可以用于

众所周知,配置即代码≠基础设置即代码

​前段时间翻到几条留言,问: “配置即代码和基础设施即代码一样吗?” “配置即代码是什么?怎么都是基础设施即代码?” 我们都是知道,DevOp的快速发展,让服务器管理与配置的时间大大减少,配置即代码和基础设施即代码作为DevOps的重要实践,在其中起到了关键性作用。 不少人将二者看作是一件事,配置即大代码是关于管理特定的应用程序配置设置本身,而基础设施即代码更关注的是部署支持应用程序环境所需的