题目

应用“分治”思想,从某大型搜索引擎网站某天的访问日志数据文件(大数据集)中提取出访问该网站次数最多的IP。 (1) IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”。IP地址通常用“点分十进制"表示成a.b.c.d的形式,其中a,b,c,d均为0~255之间的十进制整数。如:点分十进制IP地址100.4.5.6,实际上是32位二进制数01100100.00000100.00000101.0000110。IP地址最多有种取值。 (2) IP日志数据量非常大,不能完全加载到内存中处理。可以采用“分治”思想,把IP日志数据分别存储到1024个小文件中,则每个小文件最多包含个IP地址的数据。 (3) 同时统计每个小文件中出现次数最多的IP地址和出现次数。若小文件中IP地址数据格式如图所示,统计小文件中出现次数最多的IP地址的Python代码如下,在方框中补充合适代码,完善程序。 file = open("1.log') ips= [] for line in file:     ip = line.split( )[0]    #split( )分割后,返回的列表中第一个值就是IP地址     ips.append(ip) def showmax(list):   #返回一个列表中出现次数最多的元素及其出现次数 print(showmax(ips)) (4) 汇总每个小文件中出现次数最多的IP地址和出现次数数据,可以得到至少个IP地址。对这些IP地址按出现次数排序或求最大值,最终得到总体上出现次数最多的IP。 答案: 【1】232 【1】4M p=0 max= 0 for i in range(len(ist)):     n= list. count(list[i])     if n> max:       max=n       p=i     return list[p],max 或: p=0 max= 0 for i in range(len(list)):     n= 1     for j in range(i+ 1, len(ist)):         if list[j] == list[ij]:           n+=1         if n> max:            max=n         p=i return list[p],max 【1】1024
信息技术 试题推荐