《2024华数杯》C题第一问 保姆级教学 老外游中国(网盘)

问题分析与解决思路

在这里插入图片描述
通过百度网盘分享的文件:2024-8华数杯C题.zip
链接:https://pan.baidu.com/s/1vb3WZOBynsHTW7YPOK8yuQ?pwd=bue0
提取码:bue0

问题 1 分析

问题:请问352个城市中所有35200个景点评分的最高分(Best Score,简称BS)是多少?全国有多少个景点获评了这个最高评分(BS)?获评了这个最高评分(BS)景点最多的城市有哪些?依据拥有最高评分(BS)景点数量的多少排序,列出前10个城市。

分析

  1. 数据量分析

    • 每个城市有100个景点,352个城市共计35200个景点。
    • 每个景点有若干属性,其中景点评分是关键属性。
  2. 问题分解

    • 找出所有景点的评分,计算最高分BS。
    • 统计获得最高评分BS的景点数量。
    • 找出哪些城市拥有最多的最高评分BS的景点,并排序。

解决思路

  1. 数据读取与预处理

    • 读取352个城市的csv文件,提取景点评分数据。
    • 将评分数据存储在一个一维数组中便于处理。
  2. 计算最高评分BS

    • 遍历评分数组,找到最大值BS。
  3. 统计获得最高评分BS的景点数量

    • 遍历评分数组,统计等于BS的评分数量。
  4. 找到拥有最多BS评分景点的城市

    • 遍历每个城市的评分数据,统计每个城市中等于BS的景点数量。
    • 将城市按景点数量排序,取前10名。

数学公式与计算

  1. 找到最高评分BS
    设评分数组为 ( S = {s_1, s_2, \ldots, s_{35200}} ),
    则最高评分 ( BS = \max(S) )。

  2. 统计获得最高评分BS的景点数量
    设计数器 ( count = 0 ),
    遍历评分数组 ( S ),
    如果 ( s_i = BS ),则 ( count = count + 1 )。

  3. 统计每个城市中最高评分BS的景点数量
    设城市集合为 ( C = {c_1, c_2, \ldots, c_{352}} ),
    每个城市 ( c_i ) 的景点评分集合为 ( S_i = {s_{i1}, s_{i2}, \ldots, s_{i100}} ),
    设计数数组 ( count_{city} = {count_1, count_2, \ldots, count_{352}} ),
    遍历每个城市 ( c_i ) 的评分集合 ( S_i ),
    如果 ( s_{ij} = BS ),则 ( count_i = count_i + 1 )。

  4. 排序与选择前10名城市
    将 ( count_{city} ) 按降序排序,选择前10名对应的城市。

具体步骤

  1. 数据读取与预处理

    import pandas as pd
    import glob
    
    # 读取所有城市的csv文件
    file_paths = glob.glob('path_to_csv_files/*.csv')
    all_scores = []
    
    for file_path in file_paths:
        df = pd.read_csv(file_path)
        scores = df['景点评分'].tolist()
        all_scores.extend(scores)
    
  2. 计算最高评分BS

    BS = max(all_scores)
    
  3. 统计获得最高评分BS的景点数量

    BS_count = all_scores.count(BS)
    
  4. 统计每个城市中最高评分BS的景点数量

    city_BS_counts = []
    
    for file_path in file_paths:
        df = pd.read_csv(file_path)
        scores = df['景点评分'].tolist()
        city_BS_count = scores.count(BS)
        city_BS_counts.append((file_path, city_BS_count))
    
    city_BS_counts.sort(key=lambda x: x[1], reverse=True)
    top_10_cities = city_BS_counts[:10]
    

结果展示

  • 最高评分BS:输出最高评分
  • 获得最高评分BS的景点数量:输出数量
  • 拥有最多BS评分景点的前10名城市:输出前10名城市及其对应的景点数量
  • 11
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值