(C题老外游中国)2024年华数杯大学生数学建模竞赛解题思路完整代码论文集合

news2024/10/1 7:33:06

我是Tina表姐,毕业于中国人民大学,对数学建模的热爱让我在这一领域深耕多年。我的建模思路已经帮助了百余位学习者和参赛者在数学建模的道路上取得了显著的进步和成就。现在,我将这份宝贵的经验和知识凝练成一份全面的解题思路与代码论文集合,专为本次赛题设计,旨在帮助您深入理解数学建模的每一个环节。

让我们来分析C题!

华数杯大学生数学建模竞赛(ABC三题)完整内容均可以在文章末尾领取!

因此,游客的游玩路线可以表示为: n = arg max (S1, S2, ..., S50) T = Σ (Si * Di) / 250 C = Σ Si + Σ (Di * 0.5)

其中,n为最大游玩城市数量,T为总花费时间,C为总门票和交通费用。

#导入所需要的库
import pandas as pd
import numpy as np
from itertools import combinations
from collections import defaultdict

#读取数据集
city_data = pd.read_csv("city_data.csv")

#将城市数据按照城市和景点评分进行分组
city_group = city_data.groupby(['City','Score'])

#创建一个字典,用于存储每个城市最佳景点的信息
city_best = defaultdict(list)

#遍历每个城市的数据
for city, group in city_group:
    #获取当前城市的所有景点信息
    city_info = group.iloc[0]
    #将当前城市的最佳景点信息存储到字典中
    city_best[city].append(city_info)

#计算352个城市中所有景点评分的最高分(Best Score,简称BS)
best_score = max(city_data['Score'])

#统计获评了最高评分(BS)的景点数量
count = 0
#存储获评了最高评分(BS)的景点所在的城市
cities = []
#遍历每个城市

省略

#打印结果
print("352个城市中所有景点评分的最高分为:", best_score)
print("获评了最高评分(BS)的景点数量为:", count)
print("获评了最高评分(BS)景点最多的城市有:", cities)

#计算每个城市拥有最高评分(BS)的景点数量
city_count = defaultdict(int)
#遍历每个城市
for city in cities:
    #遍历当前城市的最佳景点信息
    for info in city_best[city]:
        #统计当前城市拥有最高评分(BS)的景点数量
        city_count[city] += 1

#按照拥有最高评分(BS)景点数量的多少进行排序
city_count = sorted(city_count.items(), key = lambda x:x[1], reverse = True)

#打印前10个城市
print("前10个拥有最高评分(BS)景点数量的城市为:")
for i in range(10):
    print(i+1, "、", city_count[i][0], "(拥有", city_count[i][1], "个最高评分(BS)的景点)")

#第三个问题:规划游玩路线
#设置游客要求的最大游玩城市数量
max_city = 50
#设置游客的出发城市
start_city = "广州"
#设置游客的游玩时长(小时)
time = 144
#设置游客的最大总费用(元)
max_cost = 10000

#创建一个字典,用于存储城市之间的距离信息
city_distance = {}

#遍历每个城市
for city in cities:
    #计算当前城市与出发城市的距离
    distance = city_data.loc[city_data['City'] == start_city]['Distance'].values[0]
    #将距离信息存储到字典中
    city_distance[city] = distance

#按照距离进行排序
city_distance = sorted(city_distance.items(), key = lambda x:x[1])

#创建一个列表,用于存储游客要游玩的城市
tour_cities = []

#遍历排序后的距离信息
for city in city_distance:
    #如果当前城市还没有被选为游客要游玩的城市
    if city[0] not in tour_cities:
        #将当前城市添加到列表中
        tour_cities.append(city[0])
        #如果游客要游玩的城市数量已经达到最大值
        if len(tour_cities) == max_city:
            #结束遍历
            break

#创建一个列表,用于存储游客的游玩路线
tour_route = []

#设置游客当前所在城市为出发城市
current_city = start_city
#设置游客已经游玩的总花费(元)
total_cost = 0
#设置游客已经游玩的总时间(小时)
total_time = 0

#遍历游客要游玩的城市
for city in tour_cities:
    #计算当前城市与上一个城市之间的距离
    distance = city_data.loc[city_data['City'] == current_city]['Distance'].values[0]
    #计算当前城市游玩的时间(小时)
    city_time = city_data.loc[city_data['City'] == city]['Duration'].values[0]
    #计算当前城市游玩的花费(元)
    city_cost = city_data.loc[city_data['City'] == city]['Cost'].values[0]
    #如果游客已经游玩的总时间加上当前城市游玩的时间超过了最大游玩时长
    if total_time + city_time > time:
        #结束遍历
        break
    #如果游客已经游玩的总费用加上当前城市游玩的花费超过了最大总费用
    if total_cost + city_cost > max_cost:
        #结束遍历
        break
    #将当前城市添加到游客的游玩路线中
    tour_route.append(city)
    #更新游客已经游玩的总时间
    total_time += city_time
    #更新游客已经游玩的总费用
    total_cost += city_cost
    #更新游客当前所在城市
    current_city = city

#打印游客的游玩路线
print("游客的游玩路线为:")
for i in range(len(tour_route)):
    print(i+1, "、", tour_route[i])

#打印游客的游玩路线的总花费(元)
print("游客的游玩路线的总花费为:", total_cost)
#打印游客的游玩路线的总时间(小时)
print("游客的游玩路线的总时间为:", total_time)
#打印游客可以游玩的景点数量
print("游客可以游玩的景点数量为:", len(tour_route))

通过使用遗传算法等优化方法,我们可以得到最优解,即游客在144小时内最多可以游览的山景数量,以及对应的游玩路线和总费用。

由于篇幅过长

更多内容具体可以看看我的下方名片!
里面包含有本次竞赛一手资料与分析!
另外在赛中,我们也会陪大家一起解析建模比赛
记得关注Tina表姐哦~

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

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

相关文章

Open3D 三维重建-Delaunay Triangulation (德劳内三角剖分)

目录 一、概述 1.1原理 1.2实现步骤 1.3应用 二、代码实现 2.1关键函数 2.2完整代码 三、实现效果 3.1原始点云 3.2重建后点云 Open3D点云算法汇总及实战案例汇总的目录地址: Open3D点云算法与点云深度学习案例汇总(长期更新)-CSD…

MySQL--日志管理

前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除 一、日志简介 MySQL日志主要分为4类,使用这些日志文件,可以查看MySQL内部发生的事情。这4类日志分别是: 错误日志&#xff1…

程序编译及链接

你好!感谢支持孔乙己的新作,本文就程序的编译及链接与大家分析我的思路。 希望能大佬们多多纠正及支持 !!! 个人主页:爱摸鱼的孔乙己-CSDN博客 ​ ​ 1.翻译译环境与运行环境 当我们进行程序设计时&…

Android Graphics 显示系统 - 计算FPS的原理与探秘Present Fence

“ 最近忙着新房子装修的事情,这篇计划内的文章拖了好久一直没有足够的时间来写作,终于挤出些儿时间来继续研究学习了。” 整了四个晚上终于拼凑出一篇文章,虽说是讲FPS计算原理,但该文涉及的知识点还是蛮多的,特别是对…

webpack的loader机制

webpack的loader机制 loader本质上就是导出函数的JavaScript模块。导出的函数,可以用来实现内容的转换。 /* * param{string|Buffer} content 源文件的内容 * param{object} [map] SourceMap数据 * param{any} [meta] meta数据,可以是任何数据 * */ fu…

黑马头条vue2.0项目实战(五)——首页—频道编辑

目录 1. 使用页面弹出层 1.1 页面弹出层简单使用 1.2 创建频道编辑组件 1.3 页面布局 2. 展示我的频道 3. 展示推荐频道列表 3.1 获取所有频道 3.2 处理展示推荐频道 4. 添加频道 5. 编辑频道 5.1 处理编辑状态 5.2 切换频道 5.3 让激活频道高亮 5.4 删除频道 6.…

K8S Docker搭建RocketMQ Dledger高可用集群

本篇文章回顾在华润基于K8S和Docker云设施搭建初步高可用具备failover的RocketMQ集群。RocketMQ版本是5.0.0。 目前现状 采用Dledger模式部署集群,3台namesrv,3台broker,namesrv每台1g的Docker部署,broker每台2g的Docker部署。测…

Hyper-V创建虚拟机安装OpenEulerOS

文章目录 下载OpenEulerHyper-V创建虚拟机 下载OpenEuler 进入官网下载,我选择的是 openEuler 24.03 LTS ,选择第一个版本即可: Hyper-V创建虚拟机 点击新建->虚拟机: 点击下一步: 输入虚拟机名称&#xff0c…

AMD Product Specifications - AMD 产品规格汇总

AMD Product Specifications - AMD 产品规格汇总 1. Desktop, Laptop and Workstation Processor Specifications (台式处理器、笔记本电脑处理器和工作站处理器规格)2. Server Processor Specifications (服务器处理器规格)3. Embedded Processor Specifications (嵌入式处理器…

element-ui表格1.0.0.1,表格的属性

前言:基于vue2element-ui的理论转实践的使用 第一组:数据显示 利用v-bind:data在table绑定数据源,将数据利用prop的属性传入到table-column,渲染到表格中 正片开始 首先,常用的属性(作者常用&#xff09…

书生大模型_InternLM + LlamaIndex RAG 实践

1.任务要求 基于 LlamaIndex 构建自己的 RAG 知识库,寻找一个问题 A 在使用 LlamaIndex 之前InternLM2-Chat-1.8B模型不会回答,借助 LlamaIndex 后 InternLM2-Chat-1.8B 模型具备回答 A 的能力,截图保存。 来源: https://github.…

鸿蒙媒体开发【媒体会话-提供方】音频和视频

媒体会话-提供方 介绍 本示例主要展示了媒体会话(媒体提供方)的相关功能,使用ohos.multimedia.avsession等接口实现媒体提供方与媒体播控中心自定义信息的交互功能。 注意: 此示例仅展示媒体提供方的相关功能,如果需…

2024 年华数杯全国大学生数学建模竞赛C 题 老外游中国 完整成品文章分享

最近,“city 不 city”这一网络流行语在外国网红的推动下备受关注。随着我国过境免签政策的落实,越来越多外国游客来到中国,通过网络平台展示他们在华旅行的见闻,这不仅推动了中国旅游业的发展,更是在国际舞台上展现了…

大模型学习笔记 - LLM 解码与部署

LLM 解码与部署 LLM 解码与部署 1. 解码策略 1.1 背景 1.1 贪心搜所1.2 概率采样 1.2 贪心搜所改进 1.2.1 束搜索 (保留前n个高概率的句子,最终选取整体概率高的生成)1.2.2 长度惩罚 (估计生成更长句子)1.2.3 重复惩罚…

stm32入门-----硬件I2C读写MPU6050

目录 前言 一、stm32中I2C库函数介绍(stm32f10x_i2c.h) 1.初始化 2.使能操作 3.生成起始位和结束位标志 4.发送I2C从机地址 5.发送数据和接收数据 6.发送应答位 7.状态检测 二、硬件I2C读取MPU6050 1.电路连线图 2.主要工程文件 3.MPU6050.…

WordPress网站被入侵,劫持收录事件分析

7.15,网站被入侵,但是直到7月17日,我才发现被入侵。 16日,17日正常更新文章,17日查询网站收录数据时,在站长资源平台【流量与关键词】查询上,我发现了比较奇怪的关键词。 乱码关键词排名 起初…

案例分享:如何使用原生的NodeJs下载视频网站上的视频资源到本地生成MP4文件

如何使用原生的NodeJs下载视频网站上的视频资源到本地生成MP4文件 1、当下视频网站的视频资源无法通过常规手段下载的原因2、什么是M3U8是什么视频文件?3、如何下载M3U8文件中的TS文件并在本地合并为MP4文件?3.1 FFmpeg 是什么工具?3.2 安装 FFmpeg 工具3.3 使用 FFmpeg 工具…

每天五分钟深度学习:向量化方式完成逻辑回归模型的参数更新

本文重点 上一节课程中,我们学习了m个样本的前向传播的向量化,我们可以同时完成m个样本的前向传播,也就是m个样本z的计算,然后a的计算。本节课程我们将学习dw和db参数更新的向量化,最终得到整个逻辑回归算法的参数更新的向量化表示。 非向量化的逻辑回归梯度下降算法 如…

学习日志8.4--DHCP攻击防范

目录 DHCP饿死攻击 DHCP Sever仿冒攻击 DHCP攻击防范 DHCP动态主机配置协议,是给主机提供自动获取IP地址等配置信息的服务。在主机对DHCP服务器发送DHCP Discover请求之后,服务器回复offer,主机再回复request,最后服务器回复AC…

uni-app开发打包成H5部署到服务器

1. 点击发行 2. 点击进入manifest.json的h5配置里,根据自己的情况配置一些信息。一定要注意配置 “运行的基础路径”,如果出现空白页面或者静态文件404的情况,可能是因为这个路径没有配置好。 3. 填写域名 4. 点击发行后,控制台后…