用Python写了一个给ACM题目中生成随机测试数据的脚本,可能作用不是那么大,用得着的时候就用用咯。
#coding=utf-8 import sys import random print u'--------------------------------------------------------------' print u' ACM随机测试数据生成脚本 ' print u' by--键盘上的舞者 ' print u' blog--www.lrd.name ' print u' 1.随机整数 ' print u' 2.随机浮点数 ' print u' 3.随机大数 ' print u' 4.随机小写英文字母 ' print u' 5.随机大写英文字母 ' print u' 6.随机大小写英文字母 ' print u' 7.自定义随机字符 ' print u'--------------------------------------------------------------' print u' 由于ACM的输入数据格式众多,本脚本无法全部涵盖 ' print u' 使用过程中如果无法满足要求,请根据源码进行相应的修改 ' print u' 生成成功之后,默认保存在同目录下的test.in文件里面 ' print u'--------------------------------------------------------------' #生成整数 def func_int(): print u'最小值', min=int(raw_input()) print u'最大值', max=int(raw_input()) print u'每组数据有多少行:', hang=int(raw_input()) print u'每行数据有多少列:', lie=int(raw_input()) f=file("test.in","w+") f.write(str(hang)+" "+str(lie)+"\n") for i in range(hang): for j in range(lie): f.write(str(random.randint(min,max))+" ") f.write("\n") f.close() print u'已经写入到文件中!' #生成浮点数 def func_float(): print u'最小值', min=int(raw_input()) print u'最大值', max=int(raw_input()) print u'每组数据有多少行:', hang=int(raw_input()) print u'每行数据有多少列:', lie=int(raw_input()) f=file("test.in","w+") f.write(str(hang)+" "+str(lie)+"\n") for i in range(hang): for j in range(lie): #%.xf就是保留多少位小数 f.write(str("%.2f"%random.uniform(min,max))+" ") f.write("\n") f.close() print u'已经写入到文件中!' #生成大数 def big_int(): print u'每组数据有多少行:', hang=int(raw_input()) print u'每行数据有多少列:', lie=int(raw_input()) f=file("test.in","w+") f.write(str(hang)+" "+str(lie)+"\n") for i in range(hang): for j in range(lie): for k in range(random.randint(10,19)): if k==0: f.write(chr(random.randint(49,57))) else: f.write(chr(random.randint(48,57))) f.write(" ") f.write("\n") f.close() print u'已经写入到文件中!' #生成小写字母 def func_low(): print u'每组数据有多少行:', hang=int(raw_input()) print u'每行数据有多少列:', lie=int(raw_input()) f=file("test.in","w+") f.write(str(hang)+" "+str(lie)+"\n") for i in range(hang): for j in range(lie): for k in range(random.randint(3,10)): #ascii码 f.write(chr(random.randint(97,122))) f.write(" ") f.write("\n") f.close() print u'已经写入到文件中!' #生成大写字母 def func_upper(): print u'每组数据有多少行:', hang=int(raw_input()) print u'每行数据有多少列:', lie=int(raw_input()) f=file("test.in","w+") f.write(str(hang)+" "+str(lie)+"\n") for i in range(hang): for j in range(lie): #这里的3和10是字符串的范围,随机生成一个3到10之间的随机数,表示字符串的长度 for k in range(random.randint(3,10)): #ascii码 f.write(chr(random.randint(65,90))) f.write(" ") f.write("\n") f.close() print u'已经写入到文件中!' #生成大小写混搭 def func_mix(): print u'每组数据有多少行:', hang=int(raw_input()) print u'每行数据有多少列:', lie=int(raw_input()) f=file("test.in","w+") f.write(str(hang)+" "+str(lie)+"\n") for i in range(hang): for j in range(lie): for k in range(random.randint(3,10)): tmp=random.randint(1,2) if tmp==1: f.write(chr(random.randint(65,90))) else: f.write(chr(random.randint(97,122))) f.write(" ") f.write("\n") f.close() print u'已经写入到文件中!' #生成自定义字符 def func_diy(): print u'每组数据有多少行:', hang=int(raw_input()) print u'每行数据有多少列:', lie=int(raw_input()) f=file("test.in","w+") list=[] print u'输入你要自定义的字符个数:', num=int(raw_input()) for k in range(num): print u"第%d个自定的字符:"%(k+1), c=raw_input() list.append(c) slice=[] for i in range(hang): for j in range(lie): for k in range(random.randint(3,10)): slice.extend(random.sample(list,1)) for x in range(len(slice)): f.write(str(slice[x])) f.write(" ") slice=[] f.write("\n") f.close() print u'已经写入到文件中!' operator={'1':func_int,'2':func_float,'3':big_int ,'4':func_low,'5':func_upper,'6':func_mix,'7':func_diy} def f(choice): operator.get(choice)() print u'请选择一项功能:', choice=raw_input() f(choice)