Board logo

标题: [数值计算] [已解决]批处理怎样生产制定的随机数? [打印本页]

作者: Zombie    时间: 2011-7-27 14:17     标题: [已解决]批处理怎样生产制定的随机数?

本帖最后由 Zombie 于 2011-7-27 17:48 编辑

如何随机生成25个1-18的数字,且前一个为1或2或3,后一个则不能为1、2、3
以此类推

前一个为4或5或6,后一个则不能为4、5、6

每两个数字之间都有空格
生成完后将每个数字替换成字母
比如 1对A 2对B。。。


求高手

有特殊用途

先谢谢了
作者: applba    时间: 2011-7-27 14:20

1+%random%%%18
作者: Zombie    时间: 2011-7-27 14:20

有特殊要求
作者: tmplinshi    时间: 2011-7-27 15:48

本帖最后由 tmplinshi 于 2011-7-27 16:15 编辑
以此类推

前一个为4或5或6,后一个则不能为4、5、6

每两个数字之间都有空格
生成完后将每个数字替换 ...
Zombie 发表于 2011-7-27 14:17


也就是相邻的两个不能重复,是吧?
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /a count = 0, LastNum = 0, list_num = 0, list_letter = 0
  4. set letters=#ABCDEFGHIJKLMNOPQR
  5. :loop
  6. set /a n = %random% %% 18 + 1
  7. if %n% == %LastNum% goto loop
  8. set list_num=%list_num% %n%
  9. set list_letter=%list_letter% !letters:~%n%,1!
  10. set /a count += 1, LastNum = n
  11. if %count% neq 25 goto loop
  12. for %%a in (list_num list_letter) do set %%a=!%%a:* =!
  13. set list
  14. pause
复制代码





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