目录
一、去重问题
题目描述:
小明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性他先用计算机生成了N个1~1000之间的随机整数(N<=1000),N是用户输入的,对于其中重复的数字,只保留一个,把其余相同的数字去掉,不同的数对应着不同的学生的学号,然后再把这些数从小到大排序,按照排好的顺序去找同学做调查,请你协助明明完成“去重”与排序工作
输入描述
第 1 行为 1 个正整数,表示所生成的随机数的个数:N;
输出描述
第 1 行为 生成的N 个没有排序的随机数正整数。
第 2 行为 N个用空格隔开的正整数,为从小到大排好序的不相同的随机数。
运行限制
最大运行时间:1s
最大运行内存: 128M
分析:集合可以用来去重,即每生成一个随机数便将其加入到定义的空集合中集合即可
sorted函数可以对集合进行排序
import random
# 接收用户输入
N = int(input('N:'))
# 定义空集合;用集合便可以实现自动去重(集合里面的元素是不可重复的)
gather = set([])
# 生成N个1~1000之间的随机整数
for i in range(N):
num = random.randint(1,1000)
# add:添加元素
gather.add(num)
print(gather)
# sorted: 集合的排序
print(sorted(gather))
代码运行结果:
N:10
{992, 2, 772, 134, 936, 670, 365, 560, 758, 926}
[2, 134, 365