2024电工杯数学建模B题Python代码+结果表数据教学
2024电工杯B题保姆级分析完整思路+代码+数据教学
B题题目:大学生平衡膳食食谱的优化设计及评价
以下仅展示部分,完整版看文末的文章
import pandas as pd
df1 = pd.read_excel('附件1:1名男大学生的一日食谱.xlsx')
df1# 获取所有工作表名称
excel_file = pd.ExcelFile('附件1:1名男大学生的一日食谱.xlsx')
sheet_names = excel_file.sheet_names
sheet_namesdf3 = pd.read_excel('附件3:某高校学生食堂一日三餐主要食物信息统计表.xlsx')
df3# 获取所有工作表名称
excel_file = pd.ExcelFile('附件3:某高校学生食堂一日三餐主要食物信息统计表.xlsx')
sheet_names = excel_file.sheet_names
sheet_names# 食谱提取foods = df1['1名男大学生的一日食谱'].dropna().values
meals = {}
name = ['早餐','午餐','晚餐']
meal = []for item in foods:if item in name:key = itemmeal = []continueif item != '食物名称':meal.append(item)else:meals[key] = mealmeals
# 女大学生同理
df2 = pd.read_excel('附件2:1名女大学生的一日食谱.xlsx')
df2foods = df2['1名女大学生的1日食谱'].dropna().values
meals_nv = {}
name = ['早餐','午餐','晚餐']
meal = []for item in foods:if item in name:key = itemmeal = []continueif item != '食物名称': meal.append(item)else:meals_nv[key] = mealmeals_nvfood_male = pd.read_excel('./食谱.xlsx',sheet_name='男大')
food_female = pd.read_excel('./食谱.xlsx',sheet_name='女大')
food_female.head()# 填充Nan值
# food_male=food_male.fillna(method='ffill', axis=0)
# food_female=food_female.fillna(method='ffill', axis=0)food_male.ffill(axis=0)
food_female.ffill(axis=0)food_female.head()# 读取食物营养素
foods_nutrients = pd.read_csv('./foods_nutrients.csv')
foods_nutrients.head()
# 计算营养素
# 计算每餐的总营养素
whole_day_nutrients_male = {'热量 (kcal)': 0, '蛋白质 (g)': 0, '脂肪 (g)': 0, '碳水化合物 (g)': 0}
male_ls = []
for key in meals:total_nutrients = {'热量 (kcal)': 0, '蛋白质 (g)': 0, '脂肪 (g)': 0, '碳水化合物 (g)': 0}for item in meals[key]:for _, food in food_male.iterrows():if food['食物名称'] == item:nutrient = foods_nutrients[foods_nutrients['食物'] == food['主要成分']].iloc[0]portion_size = food['可食部(克/份)'] * food['食用份数'] / 100 # 换算成100g标准total_nutrients['热量 (kcal)'] += nutrient['热量 (kcal)'] * portion_sizetotal_nutrients['蛋白质 (g)'] += nutrient['蛋白质 (g)'] * portion_sizetotal_nutrients['脂肪 (g)'] += nutrient['脂肪 (g)'] * portion_sizetotal_nutrients['碳水化合物 (g)'] += nutrient['碳水化合物 (g)'] * portion_sizeprint(f"{key}的总营养素:", total_nutrients)male_ls.append(total_nutrients)whole_day_nutrients_male['热量 (kcal)'] += total_nutrients['热量 (kcal)']whole_day_nutrients_male['蛋白质 (g)'] += total_nutrients['蛋白质 (g)']whole_day_nutrients_male['脂肪 (g)'] += total_nutrients['脂肪 (g)']whole_day_nutrients_male['碳水化合物 (g)'] += total_nutrients['碳水化合物 (g)']
print(f"一天的总营养素:", whole_day_nutrients_male)
# 同理 计算女大
whole_day_nutrients_female = {'热量 (kcal)': 0, '蛋白质 (g)': 0, '脂肪 (g)': 0, '碳水化合物 (g)': 0}
female_ls = []
for key in meals_nv:total_nutrients = {'热量 (kcal)': 0, '蛋白质 (g)': 0, '脂肪 (g)': 0, '碳水化合物 (g)': 0}for item in meals_nv[key]:for _, food in food_female.iterrows():if food['食物名称'] == item:nutrient = foods_nutrients[foods_nutrients['食物'] == food['主要成分']].iloc[0]portion_size = food['可食部(克/份)'] * food['食用份数'] / 100 # 换算成100g标准total_nutrients['热量 (kcal)'] += nutrient['热量 (kcal)'] * portion_sizetotal_nutrients['蛋白质 (g)'] += nutrient['蛋白质 (g)'] * portion_sizetotal_nutrients['脂肪 (g)'] += nutrient['脂肪 (g)'] * portion_sizetotal_nutrients['碳水化合物 (g)'] += nutrient['碳水化合物 (g)'] * portion_sizefemale_ls.append(total_nutrients)print(f"{key}的总营养素:", total_nutrients)whole_day_nutrients_female['热量 (kcal)'] += total_nutrients['热量 (kcal)']whole_day_nutrients_female['蛋白质 (g)'] += total_nutrients['蛋白质 (g)']whole_day_nutrients_female['脂肪 (g)'] += total_nutrients['脂肪 (g)']whole_day_nutrients_female['碳水化合物 (g)'] += total_nutrients['碳水化合物 (g)']
print(f"一天的总营养素:", whole_day_nutrients_female)
绘制可视化图:
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm# 设置中文字体
plt.rcParams['font.sans-serif'] = ['SimHei'] # 使用黑体
plt.rcParams['axes.unicode_minus'] = False # 解决坐标轴负数显示问题# 推荐摄入量
recommended_nutrients_male = {'热量 (kcal)': 2400, '蛋白质 (g)': 75, '脂肪 (g)': 66.5, '碳水化合物 (g)': 345}
recommended_nutrients_female = {'热量 (kcal)': 1900, '蛋白质 (g)': 60, '脂肪 (g)': 49.5, '碳水化合物 (g)': 275}# 创建子图
fig, axes = plt.subplots(2, 2, figsize=(14, 10))# 男大学生热量
axes[0, 0].bar(['当前', '调整后', '推荐'], [whole_day_nutrients_male['热量 (kcal)'], adjusted_nutrients_male['热量 (kcal)'], recommended_nutrients_male['热量 (kcal)']], color=['red', 'blue', 'green'])
axes[0, 0].set_title('男大学生热量摄入')# 女大学生热量
axes[0, 1].bar(['当前', '调整后', '推荐'], [whole_day_nutrients_female['热量 (kcal)'], adjusted_nutrients_female['热量 (kcal)'], recommended_nutrients_female['热量 (kcal)']], color=['red', 'blue', 'green'])
axes[0, 1].set_title('女大学生热量摄入')# 男大学生主要营养素
axes[1, 0].bar(['蛋白质', '脂肪', '碳水化合物'], [whole_day_nutrients_male['蛋白质 (g)'], whole_day_nutrients_male['脂肪 (g)'], whole_day_nutrients_male['碳水化合物 (g)']], color='red', label='当前')
axes[1, 0].bar(['蛋白质', '脂肪', '碳水化合物'], [adjusted_nutrients_male['蛋白质 (g)'], adjusted_nutrients_male['脂肪 (g)'], adjusted_nutrients_male['碳水化合物 (g)']], color='blue', label='调整后', alpha=0.7)
axes[1, 0].bar(['蛋白质', '脂肪', '碳水化合物'], [recommended_nutrients_male['蛋白质 (g)'], recommended_nutrients_male['脂肪 (g)'], recommended_nutrients_male['碳水化合物 (g)']], color='green', label='推荐', alpha=0.5)
axes[1, 0].set_title('男大学生主要营养素摄入')
axes[1, 0].legend()# 女大学生主要营养素
axes[1, 1].bar(['蛋白质', '脂肪', '碳水化合物'], [whole_day_nutrients_female['蛋白质 (g)'], whole_day_nutrients_female['脂肪 (g)'], whole_day_nutrients_female['碳水化合物 (g)']], color='red', label='当前')
axes[1, 1].bar(['蛋白质', '脂肪', '碳水化合物'], [adjusted_nutrients_female['蛋白质 (g)'], adjusted_nutrients_female['脂肪 (g)'], adjusted_nutrients_female['碳水化合物 (g)']], color='blue', label='调整后', alpha=0.7)
axes[1, 1].bar(['蛋白质', '脂肪', '碳水化合物'], [recommended_nutrients_female['蛋白质 (g)'], recommended_nutrients_female['脂肪 (g)'], recommended_nutrients_female['碳水化合物 (g)']], color='green', label='推荐', alpha=0.5)
axes[1, 1].set_title('女大学生主要营养素摄入')
axes[1, 1].legend()# 设置总体布局
plt.tight_layout()
plt.show()
以上仅为部分第一问代码,其中更详细的思路、各题目思路、代码、讲解视频、成品论文及其他相关内容,可以看下方名片获取哦!
相关文章:

2024电工杯数学建模B题Python代码+结果表数据教学
2024电工杯B题保姆级分析完整思路代码数据教学 B题题目:大学生平衡膳食食谱的优化设计及评价 以下仅展示部分,完整版看文末的文章 import pandas as pd df1 pd.read_excel(附件1:1名男大学生的一日食谱.xlsx) df1# 获取所有工作表名称 e…...

LabVIEW和ZigBee无线温湿度监测
LabVIEW和ZigBee无线温湿度监测 随着物联网技术的迅速发展,温湿度数据的远程无线监测在农业大棚、仓库和其他需环境控制的场所变得日益重要。开发了一种基于LabVIEW和ZigBee技术的多区域无线温湿度监测系统。系统通过DHT11传感器收集温湿度数据,利用Zig…...

FastCopy
目录 背景: 简介: 原理: 下载地址: 工具的使用: 背景: 简介: FastCopy是一款速度非常快的拷贝软件,软件版本为5.7.1 Fastcopy是日本的最快的文件拷贝工具,磁盘间相互拷贝文件是司空见惯的事情,通常情况…...

stm32常用编写C语言基础知识,条件编译,结构体等
位操作 宏定义#define 带参数的宏定义 条件编译 下面是头文件中常见的编译语句,其中_LED_H可以认为是一个编译段的名字。 下面代码表示满足某个条件,进行包含头文件的编译,SYSTEM_SUPPORT_OS可能是条件,当非0时,可以…...

秋招突击——算法——模板题——区间DP——合并石子
文章目录 题目内容思路分析实现代码分析与总结 题目内容 思路分析 基本思路,先是遍历区间长度,然后再是遍历左端点,最后是遍历中间的划分点,将阶乘问题变成n三次方的问题 实现代码 // 组合数问题 #include <iostream> #in…...
数据库——实验12 数据库备份和还原
1. 备份设备的概念和方法 备份设备是指 SQL Server 中存储数据库和事务日志备份副本的载体,备份设备可以被定义成本地的磁盘文件、远程服务器上的磁盘文件、磁带。 在创建备份时,必须选择要将数据写入的备份设备。SQL Server 2005 可以将数据库、事务日…...

Node.js —— 前后端的身份认证 之用 express 实现 JWT 身份认证
JWT的认识 什么是 JWT JWT(英文全称:JSON Web Token)是目前最流行的跨域认证解决方案。 JWT 的工作原理 总结:用户的信息通过 Token 字符串的形式,保存在客户端浏览器中。服务器通过还原 Token 字符串的形式来认证用…...

文旅3d仿真数字人形象为游客提供全方位的便捷服务
在AI人工智能与VR虚拟现实技术的双重驱动下,文旅3D数字代言人正以其独特的魅力,频频亮相于各类文旅场景,为游客带来前所未有的个性化服务体验。他们不仅有趣有品,更能言善道,成为文旅业数字化发展的新亮点。 这些文旅3…...
leetcode算法常用函数
文章目录 字符相关字符串相关数组和集合相关数值相关容器相关 核心关注算法逻辑,其他的常见操作用标准库里函数即可,不用浪费时间。 Java语言作为参考,记录刷题时常用的函数 字符相关 Character.isDigit(); //判断是否为数字Character.isLet…...

element-plus表格的表单校验如何实现,重点在model和prop
文章目录 vue:3.x element-plus:2.7.3 重点: 1) tableData放到form对象里 2) form-item的prop要写成tableData.序号.属性 <!--table-表单校验--> <template><el-form ref"forms" :model"form"><e…...

WPF密码输入框明文掩码切换
1,效果 2,代码: WPF的PasswordBox不能像Winform中的PasswordBox那样,通过PasswordBox.PasswordChar(char)0显示明文。所以这里使用无外观控件构筑掩码明文切换。 无外观控件遵守Themes/Generic.xaml文件配置. <ResourceDicti…...
SaaS架构详细介绍及一个具体实现的示例
SaaS架构详细介绍 软件即服务(SaaS,Software as a Service)是一种通过互联网交付软件应用程序的模式。 SaaS提供商托管应用程序,并通过网络将其提供给最终用户,用户无需安装和维护软件,只需通过浏览器或其他…...

四川音盛佳云电子商务有限公司正规吗?靠谱吗?
在数字化浪潮席卷全球的今天,电子商务已成为推动经济发展的重要引擎。四川音盛佳云电子商务有限公司,作为抖音电商服务的佼佼者,正以其独特的视角和创新的策略,引领着抖音电商的新潮流,开启着电商服务的新篇章。 四川…...

C++ 写的_string类,兼容std::string, MFC CString和 C# 的string
代码例子: using namespace lf; int main() { CString s1 _t("http://www.csdn.net"); _string s2 s1; CString s3 s2; _pcn(s1); _pcn(s2); _pcn(s3); return 0; } 输出: _Str.h /***************************************…...
【揭开深度学习之核:反向传播算法简析】
文章目录 前言反向传播算法的基础工作原理伪代码示例关键点结论 前言 在深度学习的世界里,反向传播算法是一张藏在神秘面纱后的地图,它指引着神经网络通过复杂的数据迷宫,找到最优解的路径。本文将简要介绍反向传播算法的原理,探…...
Web3 知识体系架构图
Web3 知识体系架构图 │ ├── 1. 基础概念 │ │ │ ├── 1.1 区块链 │ │ ├── 工作原理 │ │ ├── 公链 vs 私链 │ │ └── 常见区块链平台(如比特币、以太坊) │ │ │ ├── 1.2 去中心化 │ │ ├── P2P 网络 │ │ ├── 去中心化…...
SQL、Mongo、Redis一般适用于那些场景
在一个项目中同时使用 MySQL、Redis 和 MongoDB 是相对常见的做法,因为它们各自具有不同的特点和适用场景,可以组合使用以满足不同的需求。下面是它们的一些常见用途和特点: MySQL: 关系型数据库: MySQL 是一个传统的关…...

学习图形推理
学习图形推理 1.位置规律1.1平移1.2翻转、旋转2.样式规律2.1加减异同2.2黑白运算3.属性规律3.1对称性3.2曲直性3.3开闭性4.数量规律4.1面4.2线数量4.3笔画数4.4点数量4.5素数量5.空间重构5.1相对面5.2相邻面-公共边5.3相邻面-公共点5.4相邻面-画边法题型 一组图:从左往右找规律…...

plsql 学习
过程化编程语言 赋值:: ||:连接符号 dbms_output.put_line() :输出的语句 var_name ACCOUNTLIBRARY.USERNAME%type; 变量名;某个表的数据类型;赋值给变量名 用下面的方法更好用 异常exception 循…...

如何远程连接默认端口?
远程连接是指通过网络实现两个或多个计算机之间的连接和通信。在进行远程连接时,使用的端口号是一个重要的参数。端口号是计算机上正在运行的特定应用程序的标识符。每个应用程序都会监听一个或多个特定的端口号,以便接收来自其他计算机的连接请求&#…...

K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...
React hook之useRef
React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...

面向无人机海岸带生态系统监测的语义分割基准数据集
描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...

MFC 抛体运动模拟:常见问题解决与界面美化
在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...

android13 app的触摸问题定位分析流程
一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...