📌  相关文章
📜  国际空间研究组织 | ISRO CS 2015 |问题 77(1)

📅  最后修改于: 2023-12-03 15:07:34.434000             🧑  作者: Mango

国际空间研究组织 (ISRO) CS 2015 - 问题 77

该问题是在国际空间研究组织(ISRO)的计算机科学考试中出现的。

问题描述

请编写一个程序,该程序将一个数字数组作为输入,并返回一个包含最接近平均值的所有值的列表。例如,如果输入数组为[4, 5, 6, 7, 8, 9],则平均值为6.5,最接近平均值的值为[6, 7]。

函数原型:def find_closest_to_mean(arr: List[int]) -> List[int]:

解决方案

这道题可以通过几个步骤来解决:

  1. 求出数字数组的平均值
  2. 计算每个数字与平均值之间的差异
  3. 找到与平均值差异最小的数字
  4. 找到所有与平均值差异相同的数字

下面是实现解决方案的 Python 代码示例:

from typing import List

def find_closest_to_mean(arr: List[int]) -> List[int]:
    mean = sum(arr) / len(arr)
    diff = [abs(num - mean) for num in arr]
    min_diff = min(diff)
    return [num for i, num in enumerate(arr) if diff[i] == min_diff]

这个函数可以对下面的数组进行测试:

arr = [4, 5, 6, 7, 8, 9]
print(find_closest_to_mean(arr)) # [6, 7]
结论

在这个问题解决方案中,我们给出了一个简单的 Python 函数,可以在数组中找到最接近平均值的数字。我们希望这个解决方案能帮助你学习如何解决类似的问题,同时证明了 Python 在解决计算机科学问题方面的实用性。