2025年数学建模美赛 A题分析(3)楼梯使用方向偏好模型

2025年数学建模美赛 A题分析(1)Testing Time: The Constant Wear On Stairs
2025年数学建模美赛 A题分析(2)楼梯磨损分析模型
2025年数学建模美赛 A题分析(3)楼梯使用方向偏好模型
2025年数学建模美赛 A题分析(4)楼梯使用人数模型

特别提示:

  • 本文针对 2025年 A题进行分析,每天不断更新,建议收藏。
  • 其它题目的分析详见【youcans 的数学建模课】 专栏。

文章目录

  • 2025年数学建模美赛 A题分析(3)楼梯方向偏好模型
    • 1. 问题概述
    • 2. 楼梯使用方向偏好数学模型
      • 2.1 楼梯使用方向偏好数学模型的建立
      • 2.2 所需数据与测量方法
      • 2.3 假设条件
    • 3. 模型推导
      • 3.1 基本概念
      • 3.2 磨损深度与方向偏好的关系
      • 3.3 磨损深度的计算
    • 4. 实施步骤
    • 5. 模型验证
    • 6. 模型结论
    • 7. 图像区域分割基本方法
      • 例程 11.25:图像分割之区域生长
    • 8. 基于 k 均值聚类的区域分割
      • 例程 11.27:图像分割之 k 均值聚类


2025年数学建模美赛 A题分析(3)楼梯方向偏好模型


1. 问题概述

用于建造台阶的石材和其他材料经受着持续的长期磨损,并且这种磨损可能是不均匀的。

问题的任务是:开发一个模型,通过特定楼梯的磨损模式得出以下基本预测:

  • 楼梯使用的频率。
  • 使用楼梯时是否更倾向于某一方向。
  • 同时使用楼梯的人数(例如,人们是否成对并排爬楼梯,还是单列行走)。

进一步地,假设已经获得楼梯的建造年代、使用方式以及建筑中日常生活模式的估算信息,需要回答以下问题:

  • 磨损是否与现有信息一致?
  • 楼梯的年龄及其估算的可靠性如何?
  • 楼梯是否经历过维修或翻修?
  • 能否确定材料的来源?例如,石材的磨损是否与考古学家认为的原始采石场材料一致?若使用木材,其磨损是否与假定使用的树种和年代相符?
  • 有关楼梯典型每日使用人数的信息,以及是否有大量人群在短时间内使用,或少量人群长期使用的情况?

在这里插入图片描述


2. 楼梯使用方向偏好数学模型

2.1 楼梯使用方向偏好数学模型的建立

楼梯使用方向偏好分析的目标是确定使用者是否倾向于某一特定方向(上或下楼梯),以及这种偏好的强度。通过分析楼梯磨损的空间分布,可以量化这一偏好。


2.2 所需数据与测量方法

  1. 必须测量的数据
    (1)磨损深度的空间分布
    获取楼梯表面每一位置的磨损深度分布,尤其是台阶中心区域、边缘区域以及上下坡方向的差异。
    数据形式:三维高度模型或磨损深度的二维热力图。
    (2)楼梯的空间布局:
    台阶的宽度、坡度和方向性,确定不同区域的使用路径。
    (3)台阶材料特性:确定磨损速率是否一致(上下坡可能因压力差异导致磨损不同)。

  2. 非破坏性测量方法
    激光扫描:获取磨损深度和分布的高精度数据。
    3D建模:重建台阶表面,分析上下坡方向的磨损特征。
    图像处理:通过光学方法分析楼梯表面纹理变化。

  3. 其他辅助信息
    使用的历史记录:如建筑物的使用时间、功能(宗教场所、住宅等)以及可能的高峰使用时期。


2.3 假设条件

  1. 磨损方向性假设
    假设磨损深度与使用方向直接相关:上楼使用可能集中在前脚掌区域,而下楼使用可能在台阶边缘造成更多磨损。

  2. 对称性假设
    若楼梯不存在明显的方向性限制(如仅供单向使用),则在没有方向偏好的情况下,磨损应在两侧和上下方向接近对称。

  3. 单一变量假设
    假设影响磨损的主导因素是方向偏好,排除其他次要因素(如特殊气候条件、个别异常使用情况)。


3. 模型推导

3.1 基本概念

方向偏好用一个比率量化,表示上下楼人流量的分布:

P u p = N u p N u p + N d o w n P_{up} = \frac{N_{up}}{N_{up} + N_{down}} Pup=Nup+NdownNup

P d o w n = N d o w n N u p + N d o w n P_{down} = \frac{N_{down}}{N_{up} + N_{down}} Pdown=Nup+NdownNdown

其中:

  • Pup、Pdown 分别表示上楼和下楼的方向偏好比例。
  • Nup、Ndown 分别表示上楼和下楼的人次。

3.2 磨损深度与方向偏好的关系

假设楼梯的上下坡方向产生不同的磨损模式:

  • 上楼磨损:多集中于台阶前缘和中心位置。
  • 下楼磨损:多集中于台阶边缘位置。

根据上下方向的磨损深度差异,可以通过以下公式推导偏好比例:

P u p = d u p d u p + d d o w n P_{up} = \frac{d_{up}}{d_{up} + d_{down}} Pup=dup+ddowndup

P d o w n = d d o w n d u p + d d o w n P_{down} = \frac{d_{down}}{d_{up} + d_{down}} Pdown=dup+ddownddown

其中:
d u p d_{up} dup 表示上楼方向的磨损深度总和。 d d o w n d_{down} ddown 表示下楼方向的磨损深度总和。


3.3 磨损深度的计算

  1. 区域分割
    将楼梯的踏面分为两部分:
  • 上楼区域:台阶中心靠近上方方向的位置。
  • 下楼区域:台阶边缘靠近下方方向的位置。
  1. 深度积分
    对每个区域的磨损深度进行积分,计算总和:

d u p = ∫ u p a r e a h ( x , y ) d x d y d_{up} = \int_{up area} h(x,y) dxdy dup=upareah(x,y)dxdy

d d o w n = ∫ d o w n a r e a h ( x , y ) d x d y d_{down} = \int_{down area} h(x,y) dxdy ddown=downareah(x,y)dxdy

其中, h ( x , y ) h(x,y) h(x,y)是每个点的磨损深度。


4. 实施步骤

  1. 数据采集
    (1)获取磨损分布:通过激光扫描或3D建模获取楼梯表面磨损深度的分布图。
    (2)区域划分:根据楼梯几何特性,划分上楼区域和下楼区域。
    (3)材料特性校准:验证材料的磨损速率是否在两个方向一致。

  2. 参数计算
    (1)对磨损深度分布进行积分,分别计算 d u p d_{up} dup d d o w n d_{down} ddown
    (2)计算偏好比例:
    P u p = d u p d u p + d d o w n P_{up} = \frac{d_{up}}{d_{up} + d_{down}} Pup=dup+ddowndup

P d o w n = d d o w n d u p + d d o w n P_{down} = \frac{d_{down}}{d_{up} + d_{down}} Pdown=dup+ddownddown

  1. 结果分析
    (1)偏好程度:

(2)偏好强度:通过偏好比率的偏离程度量化,如:
Δ P = ∣ P u p − P d o w n ∣ \Delta P = |P_{up} - P_{down}| ΔP=PupPdown


5. 模型验证

  1. 实验验证
    在实验室中模拟上下楼的人流行为,记录磨损分布,验证模型预测的方向偏好是否与实际数据一致。

  2. 历史数据验证
    若存在建筑物的使用记录,检查预测的方向偏好是否符合历史使用情况。


6. 模型结论

  1. 模型的适用性
    通过分析磨损深度分布,模型能有效推导楼梯的方向偏好。
    适用于台阶磨损明显且历史记录缺乏的场景。

  2. 改进方向
    考虑非均匀使用(如特定时间段方向使用更集中)。
    引入人群行为模型,结合楼梯宽度和空间限制优化预测。


7. 图像区域分割基本方法

【youcans 的 OpenCV 例程200篇】168.图像分割之区域生长

区域生长方法将具有相似性质的像素或子区域组合为更大区域。

区域生长方法是以区域为处理对象,基于区域内部和区域之间的同异性,尽量保持区域中像素的临近性和一致性的统一 。

区域生长的基本方法是,对于一组“种子”点,通过把与种子具有相同预定义性质(如灰度或颜色范围)的邻域像素合并到种子像素所在的区域中,再将新像素作为新的种子不断重复这一过程,直到没有满足条件的像素为止。

种子点的选取经常采用人工交互方法实现,也可以寻找目标物体并提取物体内部点,或利用其它算法找到的特征点作为种子点。

区域增长方法的步骤:
(1)对图像自上而下、从左向右扫描,找到第 1 个还没有访问过的像素,将该像素作为种子 (x0, y0);
(2)以 (x0, y0) 为中心, 考虑其 4 邻域或 8 邻域像素 (x, y),如果其邻域满足生长准则 则将 (x, y) 与 (x0, y0) 合并到同一区域,同时将 (x, y) 压入堆栈;
(3)从堆栈中取出一个像素,作为种子 (x0, y0) 继续步骤(2);
(4)当堆栈为空时返回步骤(1);
(5)重复步骤(1)-(4),直到图像中的每个点都被访问过,算法结束。


例程 11.25:图像分割之区域生长

    # # 11.25 图像分割之区域生长def getGrayDiff(image, currentPoint, tmpPoint):  # 求两个像素的距离return abs(int(image[currentPoint[0], currentPoint[1]]) - int(image[tmpPoint[0], tmpPoint[1]]))# 区域生长算法def regional_growth(img, seeds, thresh=5):height, weight = img.shapeseedMark = np.zeros(img.shape)seedList = []for seed in seeds:if (0<seed[0]<height and 0<seed[1]<weight): seedList.append(seed)label = 1  # 种子位置标记connects = [(-1,-1), (0,-1), (1,-1), (1,0), (1,1), (0,1), (-1,1), (-1,0)]  # 8 邻接连通while (len(seedList) > 0):  # 如果列表里还存在点currentPoint = seedList.pop(0)  # 将最前面的那个抛出seedMark[currentPoint[0], currentPoint[1]] = label  # 将对应位置的点标记为 1for i in range(8):  # 对这个点周围的8个点一次进行相似性判断tmpX = currentPoint[0] + connects[i][0]tmpY = currentPoint[1] + connects[i][1]if tmpX<0 or tmpY<0 or tmpX>=height or tmpY>=weight:  # 是否超出限定阈值continuegrayDiff = getGrayDiff(img, currentPoint, (tmpX, tmpY))  # 计算灰度差if grayDiff<thresh and seedMark[tmpX,tmpY]==0:seedMark[tmpX, tmpY] = labelseedList.append((tmpX, tmpY))return seedMark# 区域生长 主程序img = cv2.imread("../images/Fig1051a.tif", flags=0)# # 灰度直方图# histCV = cv2.calcHist([img], [0], None, [256], [0, 256])  # 灰度直方图# OTSU 全局阈值处理ret, imgOtsu = cv2.threshold(img, 127, 255, cv2.THRESH_OTSU)  # 阈值分割, thresh=T# 自适应局部阈值处理binaryMean = cv2.adaptiveThreshold(img, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 5, 3)# 区域生长图像分割# seeds = [(10, 10), (82, 150), (20, 300)]  # 直接给定 种子点imgBlur = cv2.blur(img, (3,3))  # cv2.blur 方法_, imgTop = cv2.threshold(imgBlur, 250, 255, cv2.THRESH_BINARY)  # 高百分位阈值产生种子区域nseeds, labels, stats, centroids = cv2.connectedComponentsWithStats(imgTop)  # 过滤连通域,获得质心点 (x,y)seeds = centroids.astype(int)  # 获得质心像素作为种子点imgGrowth = regional_growth(img, seeds, 8)plt.figure(figsize=(8, 6))plt.subplot(221), plt.axis('off'), plt.title("Origin")plt.imshow(img, 'gray')plt.subplot(222), plt.axis('off'), plt.title("OTSU(T={})".format(ret))plt.imshow(imgOtsu, 'gray')plt.subplot(223), plt.axis('off'), plt.title("Adaptive threshold")plt.imshow(binaryMean, 'gray')plt.subplot(224), plt.axis('off'), plt.title("Region grow")plt.imshow(255-imgGrowth, 'gray')plt.tight_layout()plt.show()

在这里插入图片描述

8. 基于 k 均值聚类的区域分割

【youcans 的 OpenCV 例程200篇】170.图像分割之K均值聚类

聚类方法的思想是将样本集合按照其特征的相似性划分为若干类别,使同一类别样本的特征具有较高的相似性,不同类别样本的特征具有较大的差异性。

基于聚类的区域分割,就是基于图像的灰度、颜色、纹理、形状等特征,用聚类算法把图像分成若干类别或区域,使每个点到聚类中心的均值最小。
a r g min ⁡ C ( ∑ i = 1 k ∑ z ∈ C i ∥ z − m i ∥ 2 ) arg \min_{C} \Big( \sum^k_{i=1} \sum_{z \in C_i} \lVert z - m_i \rVert ^2 \Big) argCmin(i=1kzCizmi2)
k 均值(k-means)是一种无监督聚类算法。基于 k 均值聚类算法的区域分割,算法步骤为:

(1)首先从图像中选取 k 个点作为初始的聚类中心;

(2)对所有的像素点,计算像素到每个聚类中心的距离,将像素分类到距离最小的一个聚类中;

(3)根据分类结果计算出新的聚类中心;

(4)如此反复迭代直到聚类中心收敛到稳定值。

OpenCV 提供了函数 cv.kmeans 来实现 k-means 聚类算法。函数 cv.kmeans 不仅可以基于灰度、颜色对图像进行区域分割,也可以基于样本的其它特征如纹理、形状进行聚类。

函数说明:

cv.kmeans(data, K, bestLabels, criteria, attempts, flags[, centers]) → compactness, labels, centersdst

函数 cv.kmeans 实现 k-means 算法寻找聚类中心,并按聚类对输入样本进行分组。

参数说明:

  • data:用于聚类的数据,N 维数组,类型为 CV_32F、CV_32FC2
  • K:设定的聚类数量
  • bestLabels:整数数组,分类标签,每个样本的所属聚类的序号
  • criteria:元组 (type, max_iter, epsilon),算法结束标准,最大迭代次数或聚类中心位置精度
    • cv2.TERM_CRITERIA_EPS:如果达到指定的精度 epsilon,则停止算法迭代
    • cv2.TERM_CRITERIA_MAX_ITER:在指定的迭代次数max_iter之后停止算法
    • cv2.TERM_CRITERIA_EPS + cv.TERM_CRITERIA_MAX_ITER:当满足上述任何条件时停止迭代
  • attempts:标志,指定使用不同聚类中心初值执行算法的次数
  • flags:像素邻域的尺寸,用于计算邻域的阈值,通常取 3,5,7
    • cv2. KMEANS_RANDOM_CENTERS:随机产生聚类中心的初值
    • cv2. KMEANS_PP_CENTERS:Kmeans++ 中心初始化方法
    • cv2. KMEANS_USE_INITIAL_LABELS:第一次计算时使用用户指定的聚类初值,之后的计算则使用随机的或半随机的聚类中心初值
  • centers:聚类中心数组,每个聚类中心为一行,可选项
  • labels:整数数组,分类标签,每个样本的所属聚类的序号
  • centersdst:聚类中心数组

例程 11.27:图像分割之 k 均值聚类

    # 11.27 图像分割之 k 均值聚类img = cv2.imread("../images/imgB6.jpg", flags=1)  # 读取彩色图像(BGR)dataPixel = np.float32(img.reshape((-1, 3)))criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 200, 0.1)  # 终止条件flags = cv2.KMEANS_RANDOM_CENTERS  # 起始的中心选择K = 3  # 设置聚类数_, labels, center = cv2.kmeans(dataPixel, K, None, criteria, 10, flags)centerUint = np.uint8(center)classify = centerUint[labels.flatten()]  # 将像素标记为聚类中心颜色imgKmean3 = classify.reshape((img.shape))  # 恢复为二维图像K = 4  # 设置聚类数_, labels, center = cv2.kmeans(dataPixel, K, None, criteria, 10, flags)centerUint = np.uint8(center)classify = centerUint[labels.flatten()]  # 将像素标记为聚类中心颜色imgKmean4 = classify.reshape((img.shape))  # 恢复为二维图像K = 5  # 设置聚类数_, labels, center = cv2.kmeans(dataPixel, K, None, criteria, 10, flags)centerUint = np.uint8(center)classify = centerUint[labels.flatten()]  # 将像素标记为聚类中心颜色imgKmean5 = classify.reshape((img.shape))  # 恢复为二维图像plt.figure(figsize=(9, 7))plt.subplot(221), plt.axis('off'), plt.title("Origin")plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))  # 显示 img1(RGB)plt.subplot(222), plt.axis('off'), plt.title("K-mean (k=3)")plt.imshow(cv2.cvtColor(imgKmean3, cv2.COLOR_BGR2RGB))plt.subplot(223), plt.axis('off'), plt.title("K-mean (k=4)")plt.imshow(cv2.cvtColor(imgKmean4, cv2.COLOR_BGR2RGB))plt.subplot(224), plt.axis('off'), plt.title("K-mean (k=5)")plt.imshow(cv2.cvtColor(imgKmean5, cv2.COLOR_BGR2RGB))plt.tight_layout()plt.show()

在这里插入图片描述

【未完待续,请继续关注】

[2025年数学建模美赛 A题分析(4)楼梯使用人数模型]

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

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

相关文章

DeepSeek大模型技术解析:从架构到应用的全面探索

一、引言 在人工智能领域&#xff0c;大模型的发展日新月异&#xff0c;其中DeepSeek大模型凭借其卓越的性能和广泛的应用场景&#xff0c;迅速成为业界的焦点。本文旨在深入剖析DeepSeek大模型的技术细节&#xff0c;从架构到应用进行全面探索&#xff0c;以期为读者提供一个…

「AI学习笔记」深度学习的起源与发展:从神经网络到大数据(二)

深度学习&#xff08;DL&#xff09;是现代人工智能&#xff08;AI&#xff09;的核心之一&#xff0c;但它并不是一夜之间出现的技术。从最初的理论提出到如今的广泛应用&#xff0c;深度学习经历了几乎一个世纪的不断探索与发展。今天&#xff0c;我们一起回顾深度学习的历史…

渗透测试之WAF规则触发绕过规则之规则库绕过方式

目录 Waf触发规则的绕过 特殊字符替换空格 实例 特殊字符拼接绕过waf Mysql 内置得方法 注释包含关键字 实例 Waf触发规则的绕过 特殊字符替换空格 用一些特殊字符代替空格&#xff0c;比如在mysql中%0a是换行&#xff0c;可以代替空格 这个方法也可以部分绕过最新版本的…

深入理解若依RuoYi-Vue数据字典设计与实现

深入理解若依数据字典设计与实现 一、Vue2版本主要文件目录 组件目录src/components&#xff1a;数据字典组件、字典标签组件 工具目录src/utils&#xff1a;字典工具类 store目录src/store&#xff1a;字典数据 main.js&#xff1a;字典数据初始化 页面使用字典例子&#xf…

Linux网络之TCP

Socket编程--TCP TCP与UDP协议使用的套接字接口比较相似, 但TCP需要使用的接口更多, 细节也会更多. 接口 socket和bind不仅udp需要用到, tcp也需要. 此外还要用到三个函数: 服务端 1. int listen(int sockfd, int backlog); 头文件#include <sys/socket.h> 功能: …

GIS与相关专业软件汇总

闲来无事突然想整理一下看看 GIS及相关领域 究竟有多少软件或者工具包等。 我询问了几个AI工具并汇总了一个软件汇总&#xff0c;不搜不知道&#xff0c;一搜吓一跳&#xff0c;搜索出来了大量的软件&#xff0c;大部分软件或者工具包都没有见过&#xff0c;不知大家还有没有要…

(四)线程 和 进程 及相关知识点

目录 一、线程和进程 &#xff08;1&#xff09;进程 &#xff08;2&#xff09;线程 &#xff08;3&#xff09;区别 二、串行、并发、并行 &#xff08;1&#xff09;串行 &#xff08;2&#xff09;并行 &#xff08;3&#xff09;并发 三、爬虫中的线程和进程 &am…

python爬虫入门(一) - requests库与re库,一个简单的爬虫程序

目录 web请求与requests库 1. web请求 1.1 客户端渲染与服务端渲染 1.2 抓包 1.3 HTTP状态代码 2. requests库 2.1 requests模块的下载 2.2 发送请求头与请求参数 2.3 GET请求与POST请求 GET请求的例子&#xff1a; POST请求的例子&#xff1a; 3. 案例&#xff1a;…

Luzmo 专为SaaS公司设计的嵌入式数据分析平台

Luzmo 是一款嵌入式数据分析平台&#xff0c;专为 SaaS 公司设计&#xff0c;旨在通过直观的可视化和快速开发流程简化数据驱动决策。以下是关于 Luzmo 的详细介绍&#xff1a; 1. 背景与定位 Luzmo 前身为 Cumul.io &#xff0c;专注于为 SaaS 公司提供嵌入式分析解决方案。…

在虚拟机里运行frida-server以实现对虚拟机目标软件的监测和修改参数(一)(android Google Api 35高版本版)

frida-server下载路径 我这里选择较高版本的frida-server-16.6.6-android-x86_64 以root身份启动adb 或 直接在android studio中打开 adb root 如果使用android studio打开的话&#xff0c;最好选择google api的虚拟机&#xff0c;默认以root模式开启 跳转到下载的frida-se…

C#编译报错: error CS1069: 未能在命名空间“System.Windows.Markup”中找到类型名“IComponentConnector”

文章目录 问题现象解决方案 问题现象 一个以前使用.NET Framwork 3.0框架开发的项目&#xff0c;在框架升级到.NET Framwork 4.7.2后&#xff0c; 如下代码&#xff1a; #pragma checksum "..\..\XpsViewer.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}&qu…

能源新动向:智慧能源平台助力推动新型电力负荷管理系统建设

背景 国家能源局近日发布《关于支持电力领域新型经营主体创新发展的指导意见》&#xff0c;鼓励支持具备条件的工业企业、工业园区等开展智能微电网建设&#xff0c;通过聚合分布式光伏、分散式风电、新型储能、可调节负荷等资源&#xff0c;为电力系统提供灵活调节能力&#x…

用WinForm如何制作简易计算器

首先我们要自己搭好页面 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;namespace _7_简易计算…

论文笔记(六十三)Understanding Diffusion Models: A Unified Perspective(四)

Understanding Diffusion Models: A Unified Perspective&#xff08;四&#xff09; 文章概括学习扩散噪声参数&#xff08;Learning Diffusion Noise Parameters&#xff09;三种等效的解释&#xff08;Three Equivalent Interpretations&#xff09; 文章概括 引用&#xf…

【数据结构】(1)集合类的认识

一、什么是数据结构 1、数据结构的定义 数据结构就是存储、组织数据的方式&#xff0c;即相互之间存在一种或多种关系的数据元素的集合。 2、学习数据结构的目的 在实际开发中&#xff0c;我们需要使用大量的数据。为了高效地管理这些数据&#xff0c;实现增删改查等操作&…

Java 实现Excel转HTML、或HTML转Excel

Excel是一种电子表格格式&#xff0c;广泛用于数据处理和分析&#xff0c;而HTM则是一种用于创建网页的标记语言。虽然两者在用途上存在差异&#xff0c;但有时我们需要将数据从一种格式转换为另一种格式&#xff0c;以便更好地利用和展示数据。本文将介绍如何通过 Java 实现 E…

【C语言】结构体与共用体深入解析

在C语言中&#xff0c;结构体&#xff08;struct&#xff09;和共用体&#xff08;union&#xff09;都是用来存储不同类型数据的复合数据类型&#xff0c;它们在程序设计中具有重要的作用。 推荐阅读&#xff1a;操作符详细解说&#xff0c;让你的编程技能更上一层楼 1. 结构体…

思维练习题

目录 第一章 假设法1.题目1. 如何问问题2. 他们的职业是分别什么3. 谁做对了4. 鞋子的颜色 2.答案 空闲时间写一些思维题来锻炼下思维逻辑&#xff08;题目均收集自网上&#xff0c;分析推理为自己所写&#xff09;。 第一章 假设法 一个真实的假设往往可以让事实呈现眼前&…

【C++高并发服务器WebServer】-10:网络编程基础概述

本文目录 一、MAC地址二、IP地址三、子网掩码四、TCP/IP四层模型五、协议六、socket七、字节序 一、MAC地址 网卡是一块被设计用来允许计算机在计算机网络上进行通讯的计算机硬件&#xff0c;又称为网络适配器或网络接口卡NIC。其拥有 MAC 地址&#xff0c;属于 OSI模型的第2层…

为何SAP S4系统中要设置MRP区域?MD04中可否同时显示工厂级、库存地点级的数据?

【SAP系统PP模块研究】 一、物料主数据的MRP区域设置 SAP ECC系统中想要指定不影响MRP运算的库存地点,是针对库存地点设置MRP标识,路径为:SPRO->生产->物料需求计划->计划->定义每一个工厂的存储地点MRP,如下图所示: 另外,在给物料主数据MMSC扩充库存地点时…