标题: [数值计算] [已解决]批处理如何使两组数字按一定规则排列出来? [打印本页]
作者: gshccr 时间: 2011-7-17 00:55 标题: [已解决]批处理如何使两组数字按一定规则排列出来?
本帖最后由 gshccr 于 2011-7-17 23:22 编辑
两组数字分别为:1到33: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 26 27 28 29 30 31 32 33
1到16:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
希望处理后如下:- 1 2 3 4 5 6 1
- 1 2 3 4 5 6 2
- 1 2 3 4 5 6 3
- 1 2 3 4 5 6 4
- 1 2 3 4 5 6 5
- 1 2 3 4 5 6 6
- 1 2 3 4 5 6 7
- 1 2 3 4 5 6 8
- 1 2 3 4 5 6 9
- 1 2 3 4 5 6 10
- 1 2 3 4 5 6 11
- 1 2 3 4 5 6 12
- 1 2 3 4 5 6 13
- 1 2 3 4 5 6 14
- 1 2 3 4 5 6 15
- 1 2 3 4 5 6 16
- 2 3 4 5 6 7 1
- 2 3 4 5 6 7 2
- 2 3 4 5 6 7 3
- 略…………
- 29 30 31 32 33 1 13
- 29 30 31 32 33 1 14
- 29 30 31 32 33 1 15
- 29 30 31 32 33 1 16
- 30 31 32 33 1 2 1
- 30 31 32 33 1 2 2
- 略…………
- 1 3 4 5 6 7 1
- 1 3 4 5 6 7 2
- 1 3 4 5 6 7 3
- 1 3 4 5 6 7 4
- 1 3 4 5 6 7 5
- 1 3 4 5 6 7 6
- 1 3 4 5 6 7 7
- 1 3 4 5 6 7 8
- 1 3 4 5 6 7 9
- 1 3 4 5 6 7 10
- 1 3 4 5 6 7 11
- 1 3 4 5 6 7 12
- 1 3 4 5 6 7 13
- 1 3 4 5 6 7 14
- 1 3 4 5 6 7 15
- 1 3 4 5 6 7 16
- 1 4 5 6 7 8 1
- 1 4 5 6 7 8 2
- 1 4 5 6 7 8 3
- 略…………
- 1 29 30 31 32 33 8
- 1 29 30 31 32 33 9
- 1 29 30 31 32 33 10
- 1 29 30 31 32 33 11
- 1 29 30 31 32 33 12
- 1 29 30 31 32 33 13
- 1 29 30 31 32 33 14
- 1 29 30 31 32 33 15
- 1 29 30 31 32 33 16
- 略…………
- 2 3 4 5 6 7 1
- 2 3 4 5 6 7 2
- 2 3 4 5 6 7 3
- 2 3 4 5 6 7 4
- 略…………
- 3 4 5 6 7 8 1
- 3 4 5 6 7 8 2
- 3 4 5 6 7 8 3
- 3 4 5 6 7 8 4
- 3 4 5 6 7 8 5
- 略…………
复制代码
呵呵……感觉有点乱,不知道大家能不能看懂,我的表达不是很好,在此先谢谢大家了!
作者: ArdentMan 时间: 2011-7-17 01:29
本帖最后由 ArdentMan 于 2011-7-17 09:59 编辑
楼主想生成所有彩票号码的字典?
那可是有p(33,6)*16=17721088种排列啊~~~
按每0.01秒输出一行计算,
批需要3小时4分35秒来完成输出,
按每一行至少7个数字6个空格1个回车1个换行15个字节计算(实际根本不止),
生成的文本都有253.50M之大,
因此批断然难以胜任!
同时253M的文本文件你有机会打开?
作者: cjiabing 时间: 2011-7-17 10:03
用三个 for一个 set可以搞定
作者: batman 时间: 2011-7-17 10:06
3# cjiabing
二楼不是说批不能完成,是论证批不适合处理这样庞大的数据,还是用专业工具来做这样的事情吧。。。
作者: CUer 时间: 2011-7-17 10:33
2# ArdentMan
记事本打开几十M的文件就会假死,但是其它常见工具打开几百M甚至上G的文件还是很轻松的。
作者: gshccr 时间: 2011-7-17 18:31
2# ArdentMan
哈哈……其实是我的朋友叫我帮他算一下,他想看看有多少组,我跟他说过算出来数量很大的,但他还是要我算出来让他看看,
呵,开始我自己也试着用批处理来算,但总是没有好的思路!也知道纯P处理起来很吃力,
所以特来论坛求助,不知道能不能借助第三方或VBS来实现呢?麻烦你了!谢谢!
作者: gshccr 时间: 2011-7-17 18:33
3# cjiabing
能不能把代码贴出来看下,我想看一下思路,自己想不出来,好纠结啊!先谢谢啦!
作者: ArdentMan 时间: 2011-7-17 19:08
本帖最后由 ArdentMan 于 2011-7-17 19:16 编辑
死机的话别怪哦~~~- @Echo Off&SetLocal EnableDelayedExpansion
- Set "Num= 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 26 27 28 29 30 31 32 33 "
- (For %%1 In (%Num%) Do (
- Set "Num1=!Num: %%1 = !"
- For %%2 In (!Num1!) Do (
- Set "Num2=!Num1: %%2 = !"
- For %%3 In (!Num2!) Do (
- Set "Num3=!Num2: %%3 = !"
- For %%4 In (!Num3!) Do (
- Set "Num4=!Num3: %%4 = !"
- For %%5 In (!Num4!) Do (
- Set "Num5=!Num4: %%5 = !"
- For %%6 In (!Num5!) Do (
- For %%7 In (%Num:~,39%) Do Echo %%1 %%2 %%3 %%4 %%5 %%6 %%7
- )
- )
- )
- )
- )
- ))>list.txt
复制代码
作者: gshccr 时间: 2011-7-17 23:21
测试成功!看你的账号是新注册的,不过应该不是新手吧!呵呵……
程度运行时间久了好像越来越卡了,看来用P来处理这个确实太吃力,但总体还是不错的!谢谢ArdentMan !同时也谢谢大家的回复!
作者: web 时间: 2012-10-13 23:45
1组任意字母或数字如: 01 02 03 04 05 06 07 08
2组任意字母或数字如: 09 10 11 12 13 14 15 16
第一组选3个 和第二组选4个 2组数组成7位的排列不重复
01 02 03 09 10 11 12
01 03 02 09 10 11 12
01 02 03 10 09 11 12
这些组合只需要保留一个就可以
不知道全是字母能保留一个组合不行
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |