使用随机函数,生成包含 100000 个 0-100 之间的随机整数,并使用两种不同的方法统计出每 个整数对象出现的次数,分别输出出现频率最高和最低的前 10 个数。
时间: 2024-10-11 21:09:23 浏览: 16
javascript随机抽取0-100之间不重复的10个数
首先,我们可以使用 Python 的 `random` 模块来生成指定范围内的随机整数,并利用 `collections.Counter` 来统计每个数字出现的次数。以下是两种方法的步骤:
**方法一:列表推导式 + Counter**
```python
import random
from collections import Counter
# 生成随机整数列表
numbers = [random.randint(0, 100) for _ in range(100000)]
# 使用Counter统计并获取前10个最常出现的数字及其频率
counter = Counter(numbers)
most_common_10 = counter.most_common(10)
print("出现频率最高的前10个数:")
for num, freq in most_common_10:
print(f"数字 {num}: 频率 {freq}")
# 获取最少出现的前10个数
least_common_10 = counter.most_common()[:-11:-1]
print("\n出现频率最低的前10个数:")
for num, freq in least_common_10:
print(f"数字 {num}: 频率 {freq}")
```
**方法二:字典存储计数**
```python
numbers = [random.randint(0, 100) for _ in range(100000)]
count_dict = {}
for num in numbers:
if num not in count_dict:
count_dict[num] = 1
else:
count_dict[num] += 1
# 将字典转换为元组列表并排序
sorted_counts = sorted(count_dict.items(), key=lambda x: x[1], reverse=True)
most_common_10 = sorted_counts[:10]
least_common_10 = sorted_counts[-10:]
print("出现频率最高的前10个数:")
for num, freq in most_common_10:
print(f"数字 {num}: 频率 {freq}")
print("\n出现频率最低的前10个数:")
for num, freq in least_common_10:
print(f"数字 {num}: 频率 {freq}")
```
阅读全文