随机产生100个1~20的整数,然后找出这一组数据中的众数,程序至少包含一个Freq函数过程,求出列表中每个不相同的数据出现的次数,并返回一个列表(列表每个元素为一个元组,元组第一项为数据本身,第二项为数据出现的次数(可用count()方法计数))
时间: 2024-11-03 10:19:26 浏览: 11
要实现这个功能,你可以使用Python的内置库`random`生成一组1到20的随机整数,然后使用`collections.Counter`来计算每个数字的频率。这里是一个简单的示例:
```python
import random
from collections import Counter
def generate_random_numbers(n=100):
return [random.randint(1, 20) for _ in range(n)]
def Freq(numbers_list):
counter = Counter(numbers_list)
freq_list = [(data, count) for data, count in counter.items()]
return freq_list
# 生成100个随机数
numbers = generate_random_numbers()
# 找出众数并打印频数信息
most_common = Freq(numbers)
print("Most common numbers and their frequencies:")
for num, freq in most_common:
if freq == max(counter.values()):
print(f"{num}: {freq} times")
# 注意:如果有多个众数,则此代码只返回其中一个
```
在这个代码里,`generate_random_numbers`函数生成指定数量的随机数,而`Freq`函数则用`Counter`统计列表中每个数及其出现次数。最后,我们遍历结果列表找到出现次数最多的那个元素(即众数)。
阅读全文