你是否在寻找数学建模比赛的突破点?数学建模进阶思路!
作为经验丰富的数学建模团队,我们将为你带来2024华数杯数学建模竞赛(C题)的全面解析。这个解决方案包不仅包括完整的代码实现,还有详尽的建模过程和解析,帮助你全面理解并掌握如何解决类似问题。
完整内容在文章末尾阅读全文获取!
本次华数杯C题“老外游中国”需要对352个城市中所有35200个景点评分的最高分(Best Score,简称BS)进行计算:
首先,我们将数据集中所有的景点按照城市分组,然后在每个城市中选出评分最高的景点,计算其评分,于是我们得到每个城市的最高分。 在求解这一问题的过程中,我们遇到两个特殊的情况:
-
在部分城市中,可能存在多个评分相同的景点。这种情况下,我们可以选择随机挑选其中一个景点作为最高评分景点,或者直接将该城市的最高分赋值为多个评分相同的景点的评分。
-
某些城市中可能不存在评分最高的景点。对于这种情况,我们可以考虑将该城市的最高分赋值为0.
另外,为了更加公平,我们还需要考虑城市的大小因素,即城市的景点数量。对于景点数量较多的城市,其评分最高的景点也许更加有价值,因此我们可以考虑在计算最高分的时候乘以一个权重,使得其更加能够体现城市最佳景点游览原则。
综上所述,我们可以建立如下模型来计算352个城市中所有35200个景点评分的最高分:
import pandas as pd
import numpy as np
# 读取数据
city = pd.read_csv('city.csv')
# 获取最高分
best_score = city['景点评分'].max()
# 获取最高分的数量
bs_num = len(city[city['景点评分'] == best_score])
# 获取最高分景点最多的城市
bs_city = city[city['景点评分'] == best_score]['城市'].values.tolist()
# 获取前10个城市
bs_city = city['城市'].value_counts().head(10).index.values.tolist()
print('35200个景点评分的最高分是:', best_score)
print('获得最高分的景点数量为:', bs_num)
print('最高分景点最多的城市有:', bs_city)
更多内容具体可以看看我的主页!
和 《小天数模》 团队,同名公众号 一起拿奖!里面包含本次竞赛全部思路与分析!
包含本次比赛全部题目和单题思路与代码,代码和文章会不断更新
关注小天数模,你们的支持是我更新的动力!