九个学生一起做游戏,每个人随机报一个[1,20]区间上的正整数,编程求出有多少个不同的数及每个数出现的次数。
时间: 2024-11-05 14:24:51 浏览: 18
百度之星05~08题目
你可以通过Python的collections库中的Counter类来轻松地统计每个数字出现的次数。同时,为了计算不同的数的数量,你可以遍历整个Counter对象,遇到值为1的项就增加不同的数的数量。下面是实现这个功能的代码:
```python
from collections import Counter
def count_unique_numbers_and_frequency(numbers):
counter = Counter(numbers) # 计算每个数字出现的次数
unique_count = sum(1 for count in counter.values() if count == 1) # 统计值为1的项,即不同的数
frequency_dict = dict(counter) # 转换为字典形式方便查看每个数及其频率
return unique_count, frequency_dict
students_game = [random.randint(1, 20) for _ in range(9)] # 假设这是学生们随机报的数
unique_count, frequency_dict = count_unique_numbers_and_frequency(students_game)
print(f"不同的数有 {unique_count} 个,每个数的出现次数如下:{frequency_dict}")
阅读全文