Board logo

标题: [文本处理] [已解决]批处理如何输出100行1到100间由小到大随机不重复的10个数字 [打印本页]

作者: w1983912    时间: 2017-11-15 23:55     标题: [已解决]批处理如何输出100行1到100间由小到大随机不重复的10个数字

本帖最后由 w1983912 于 2017-11-16 02:52 编辑

时隔N年没发贴,再次求帮忙,谢谢,批处理10遍1-100数字分为10个,总100行

需求:
1-100,这100个数字,10组,总计1000个数字。

分为100行,每行分为10个数字,每行中的数字都不重复,且从小到大排序。

得到文本文件为:
1,14,25,34,48,52,61,69,80,92
6,14,29,33,40,49,58,72,84,99
.......
3,13,27,37,46,57,61,69,77,100
1,18,25,39,45,58,69,78,94,99      

需要经常操作,所以批处理好一些,有劳大家费心,谢谢,祝大家生活愉快。
作者: w1983912    时间: 2017-11-16 02:52

PHP 代码已搞定 谢谢
作者: codegay    时间: 2017-11-16 14:34

本帖最后由 codegay 于 2017-11-17 15:50 编辑

python3
  1. import random
  2. with open("temp.txt", "w") as f:
  3.     for r in range(100):
  4.         t = random.sample(range(1, 101), 10)
  5.         t.sort()
  6.         f.write(",".join([str(i) for i in t]) + "\n")
复制代码
  1. import random
  2. with open("temp.txt", "w") as f:
  3.     for r in range(100):
  4.         f.write(",".join([str(i) for i in sorted(random.sample(range(1, 101), 10))]) + "\n")
复制代码

作者: slore    时间: 2017-11-17 12:59

ruby 100.rb >temp.txt
  1. 10.times {puts [*1..100].sample(100).join("\n")}
复制代码
脚本自己写文件:
  1. File.open('temp.txt', 'w+') do |f|
  2.   10.times { f.write [*1..100].sample(10).sort.join(',') + "\n" }
  3. end
复制代码
或者:
  1. File.open('temp2.txt', 'w+').write ( [*0..10].map { [*1..100].sample(10).sort.join(',') }.join("\n"))
复制代码

作者: codegay    时间: 2017-11-18 15:06

本帖最后由 codegay 于 2017-11-25 02:00 编辑

nim版
  1. import random
  2. import strutils
  3. import algorithm
  4. randomize()
  5. var myseqs = newSeq[int](0)
  6. var ran:int
  7. var f = open("temp.txt",fmWrite)
  8. for c in 1..100:
  9.   myseqs = newSeq[int](0)
  10.   while myseqs.len != 10:
  11.     ran = random(1..101)
  12.     if ran notin myseqs:
  13.       myseqs.add(ran)
  14.   f.writeLine join(sorted(myseqs,cmp[int]),",")
  15. f.close()
  16. for r in lines "temp.txt":
  17.   echo r
复制代码
之前忘记去重的事了。查了资料学了下,重新写了。→_→虽然没人会用。




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2