刚开始我没仔细看,写的有点着急,后来发现这章只要把实验PPT给的例子看懂就差不多了。。。
import random
x=[random.randint(10,20) for i in range(10)]
y=[random.randint(10,20) for i in range(10)]
z=list(x+y)
z.sort()
count=1
sum=0
m=[]
n=[]
for i in range(0,19):#统计z中不同的数字
if z[i]!=z[i+1]:
count+=1
y.sort()#这里题目有点歧义,我理解为统计y中的数字
for j in range(0,9):
if y[j]==y[j+1] and y[j] not in m:#重复数字统计
sum+=1
m.append(y[j])
n=list(set(y)-set(m))
print(x)
print(y)
print(z)
print(count)
print("2组中重复数字个数以及内容:",sum,m)
print("2组中不重复数字个数以及内容:", len(n),n )
测试:
[15, 12, 19, 14, 17, 14, 17, 17, 13, 20]
[10, 12, 12, 12, 15, 16, 17, 18, 18, 19]
[10, 12, 12, 12, 12, 13, 14, 14, 15, 15, 16, 17, 17, 17, 17, 18, 18, 19, 19, 20]
10
2组中重复数字个数以及内容: 2 [12, 18]
2组中不重复数字个数以及内容: 5 [10, 15, 16, 17, 19]
进程已结束,退出代码0
2.数字重复统计:随机生成 100 个整数,数字的范围是 [-1000, 1000],升序输出所有不同的数字及其每个数字重复的次数。
import random
x=[random.randint(-1000,1000) for i in range(100)]
x.sort()
sort_x={
}
count_x=[]
sort_x1=[]
for i in range(len(x)):
count_x.append(x.count(x[i]))
sort_x[x[i]] = count_x[i]
for k, v in sort_x.items():
sort_x1.append((k, v))
print(sort_x1)
3.字符串重复统计:字符表’abcdefghijklmnopqrstuvwxyz’,随机挑选 2 个字母组成字符串,共挑选 100个,降序输出所有不同的字符串及重复的次数。
import random
x=[]
for i in range(100):
slice = ''.join(random.sample('abcdefghijklmnopqrstuvwxyz'+'abcdefghijklmnopqrstuvwxyz', 2)) # 从list中随机获取2个元素,作为一个片断返回
print(slice,end=' ')
x.append(slice)
print('\n')
print(x)
x=sorted(x,reverse=True)#降序输出
print(x)
count_list=[]#统计重复次数以及输出
sort_list={
}
sort_list1=[]
for i in range(len(x)):
count_list.append(x.count(x[i]))
sort_list[x[i]]=count_list[i]
for k,v in sort_list.items():
sort_list1.append((k, v))
print('\n')
print(sort_list1)
4.实现埃拉托色尼筛选法:古希腊时发明的一个用来计算素数的函数。选择一个整数 n,该函数计算小于n 的所有素数。首先把所有从 1 到 n 的数字插入一个集合,然后删除 2 的所有倍数(除 2 之外)也就是 4、6、8、10、12……。再删除 3 的所有倍数,也就是 6、9、12、15……直到 √n。剩余的数字都是素数。
import copy
def sushu(n):
x=set()
for i in range(1,n+1):#插入集合
x.add(i)
print(x)
n=int(n**(0.5))
x_1 = copy.deepcopy(x)
for i in x:#删除从2-√n的倍数
x_1=copy.deepcopy(x_1)
for j in range(2,n+1):
if i % j==0 and i!=j:
x_1.discard(i)
print(x_1)
sushu(25)
结果:
{
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25}
{
1, 2, 3, 5, 7, 11, 13, 17, 19, 23}
进程已结束,退出代码0
1不是素数,但是题目没有去掉,暂时就这样写。好像到这里实验就木有啦,同学们白白!!!