《2024华数杯》C题第二问 数据集 数据表格 老外游中国(网盘)

问题分析

问题2要求我们对352个城市进行综合评价,选出“最令外国游客向往的50个城市”。我们需要考虑多个因素,如城市规模、环境环保、人文底蕴、交通便利,以及气候、美食等。这些因素是多维度的,因此我们需要建立一个多指标综合评价模型。

已更新数据

在这里插入图片描述

通过百度网盘分享的文件:2024-8华数杯C题(1).zip
链接:https://pan.baidu.com/s/1iuIP_-bNnt-yI25iCU5unQ?pwd=b8ky
提取码:b8ky

分析思路

  1. 确定评价指标体系

    • 城市规模(人口、GDP等)
    • 环境环保(空气质量、绿地覆盖率等)
    • 人文底蕴(历史遗迹、文化活动等)
    • 交通便利(机场数量、高铁站数量等)
    • 气候(舒适度、季节性等)
    • 美食(餐厅数量、特色美食等)
  2. 数据标准化

    • 不同指标的数据量纲不同,需要进行标准化处理,使其在同一量纲下进行比较。
    • 标准化方法可以采用极差标准化、z-score标准化等。
  3. 指标权重确定

    • 采用层次分析法(AHP)等方法确定各个指标的权重。
    • 也可以通过专家打分或主观赋权的方法确定。
  4. 综合评分计算

    • 计算每个城市的综合得分。
    • 按综合得分进行排序,选出前50个城市。
  5. 模型验证和调整

    • 通过实际数据验证模型的合理性,并进行适当调整。

数学公式

  1. 数据标准化
    对于指标 ( x_i ) ,标准化后的值 ( x_i’ ) 计算公式为:
    [
    x_i’ = \frac{x_i - \min(x)}{\max(x) - \min(x)}
    ]
    或者:
    [
    x_i’ = \frac{x_i - \mu(x)}{\sigma(x)}
    ]
    其中, ( \mu(x) ) 是均值, ( \sigma(x) ) 是标准差。

  2. 综合评分计算
    假设有 ( n ) 个指标,每个指标的权重为 ( w_i ),标准化后的值为 ( x_i’ ),则城市 ( j ) 的综合评分 ( S_j ) 计算公式为:
    [
    S_j = \sum_{i=1}^n w_i \cdot x_{ij}’
    ]

解决思路

  1. 数据收集和预处理
    收集352个城市的相关数据,包括人口、GDP、空气质量、历史遗迹数量、机场数量、高铁站数量、餐厅数量等信息。对数据进行缺失值处理和标准化处理。

  2. 确定权重
    采用层次分析法(AHP)或专家打分的方法确定各个指标的权重。确保权重和为1。

  3. 计算综合评分
    使用标准化后的数据和确定的权重,计算每个城市的综合评分。具体步骤如下:

    • 将原始数据标准化,得到标准化后的数据矩阵。
    • 根据权重计算每个城市的综合评分。
  4. 城市排序和选择
    按综合评分对352个城市进行排序,选择得分最高的前50个城市作为“最令外国游客向往的城市”。

具体实现步骤

  1. 数据标准化
    通过极差标准化或z-score标准化将数据转换到同一量纲下。

  2. 权重确定
    构建层次分析法(AHP)的判断矩阵,计算各指标的权重。也可以通过专家打分进行主观赋权。

  3. 综合评分计算
    根据标准化后的数据和确定的权重,计算每个城市的综合评分,并进行排序。

示例代码

以下是使用Python进行数据标准化和综合评分计算的示例代码:

import pandas as pd
import numpy as np

# 假设我们已经收集了352个城市的相关数据,并存储在一个DataFrame中
data = pd.DataFrame({
    'city': [f'city_{i+1}' for i in range(352)],
    'population': np.random.randint(1e5, 1e7, 352),
    'GDP': np.random.randint(1e9, 1e12, 352),
    'air_quality': np.random.uniform(0, 100, 352),
    'cultural_sites': np.random.randint(1, 50, 352),
    'airport_count': np.random.randint(1, 10, 352),
    'highspeed_train_stations': np.random.randint(1, 10, 352),
    'restaurants': np.random.randint(10, 500, 352)
})

# 标准化数据
def min_max_standardize(column):
    return (column - column.min()) / (column.max() - column.min())

for col in data.columns[1:]:
    data[col] = min_max_standardize(data[col])

# 设置权重(假设已通过AHP或专家打分确定)
weights = {
    'population': 0.1,
    'GDP': 0.2,
    'air_quality': 0.2,
    'cultural_sites': 0.2,
    'airport_count': 0.1,
    'highspeed_train_stations': 0.1,
    'restaurants': 0.1
}

# 计算综合评分
data['score'] = sum(weights[col] * data[col] for col in weights)

# 按综合评分排序
sorted_data = data.sort_values(by='score', ascending=False)

# 选择前50个城市
top_50_cities = sorted_data.head(50)
print(top_50_cities[['city', 'score']])
  • 20
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
2021华数杯c是一个需要运用数学和编程思维的目,要求解决一个集装箱规划。 首先,目提供了一些集装箱的长宽高和重量信息,以及一些限制条件,如集装箱数量、装载限制等等。我们需要编写一个算法来确定如何装载这些集装箱,使得总装载重量最大化,并且满足所有的限制条件。 我的思路是通过贪心算法来解决这个。首先,可以按照集装箱的重量从大到小进行排序,然后依次放入集装箱。在放入集装箱时,需要考虑的限制条件包括集装箱的体积(宽高长的乘积)是否大于船舱的剩余容量,以及集装箱的重量是否大于船舱的剩余承重量。如果满足这些条件,就可以将集装箱放入船舱,并且更新船舱的剩余容量和承重量。如果不能放入当前集装箱,则尝试放入下一个重量较小的集装箱。 这种贪心算法的优点在于它的简单和高效性,可以快速得到一个可行的解。然而,由于贪心算法的局限性,不能保证得到最优解,因此在实际应用中可能需要结合其他算法或启发式方法进行优化。 总之,通过贪心算法可以解决2021华数杯c中的集装箱规划。这个算法基于贪心策略,通过按重量排序和依次放入集装箱来实现装载重量最大化。然而,由于贪心算法的局限性,可能需要结合其他算法或启发式方法进行改进和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值