请用随机函数产生500行1-100之间的随机整数存入文件random.txt中,编程寻找这些整数的众数并输出,众数即为一组数中出现最多的数。
时间: 2023-04-19 19:01:04 浏览: 103
好的,以下是回复:
可以使用以下代码来生成500行1-100之间的随机整数并存入文件random.txt中:
import random
with open('random.txt', 'w') as f:
for i in range(500):
num = random.randint(1, 100)
f.write(str(num) + '\n')
接下来,可以使用以下代码来寻找这些整数的众数并输出:
with open('random.txt', 'r') as f:
nums = f.readlines()
nums = [int(num.strip()) for num in nums]
count_dict = {}
for num in nums:
if num in count_dict:
count_dict[num] += 1
else:
count_dict[num] = 1
max_count = max(count_dict.values())
mode = [num for num, count in count_dict.items() if count == max_count]
print('众数为:', mode)
以上代码中,首先读取文件中的随机整数,并将其转换为整数类型存储在列表nums中。然后,使用一个字典count_dict来记录每个数出现的次数。最后,找到出现次数最多的数,即为众数。
相关问题
5. 随机产生30个0-19之间的随机整数(利用random函数库生成)并存入列表中,计算列表中数值的平均值并输出众数的个数。
代码如下:
```python
import random
# 生成30个随机数并存入列表中
num_list = []
for i in range(30):
num_list.append(random.randint(0, 19))
# 计算平均值
avg = sum(num_list) / len(num_list)
# 统计众数的个数
most_freq = max(list(map(num_list.count, num_list)))
mode_count = list(set(filter(lambda x:num_list.count(x) == most_freq, num_list)))
# 输出结果
print("随机数列表:", num_list)
print("平均值:", avg)
print("众数的个数:", len(mode_count))
```
样例输出如下:
```
随机数列表: [6, 14, 17, 8, 6, 10, 0, 16, 6, 11, 13, 10, 6, 3, 18, 3, 18, 19, 16, 19, 7, 19, 6, 19, 12, 2, 6, 1, 7, 9]
平均值: 10.0
众数的个数: 4
```
5.随机产生30个0-19之间的随机整数(利用random函数库生成)并存入列表中,计算列表中数值的平均值并输出众数的个数。
代码如下:
```python
import random
# 生成随机数列表
num_list = [random.randint(0, 19) for i in range(30)]
# 计算平均值
avg_num = sum(num_list) / len(num_list)
print("平均值:", avg_num)
# 统计众数个数
count_dict = {}
for num in num_list:
if num in count_dict:
count_dict[num] += 1
else:
count_dict[num] = 1
max_count = max(count_dict.values())
mode_list = [k for k, v in count_dict.items() if v == max_count]
print("众数个数:", len(mode_list))
```
其中,`random.randint(0, 19)` 表示生成一个0-19之间的随机整数,`range(30)` 表示生成30个数。通过列表推导式可以一行生成随机数列表。统计众数个数的代码利用了字典的特性,代码有些长,但比较易懂。
阅读全文