找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 23766|回复: 3

[数值计算] [已解决]批处理怎样生产制定的随机数?

[复制链接]
发表于 2011-7-27 14:17:14 | 显示全部楼层 |阅读模式
本帖最后由 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。。。


求高手

有特殊用途

先谢谢了

评分

参与人数 1PB +2 收起 理由
broly + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2011-7-27 14:20:25 | 显示全部楼层
1+%random%%%18
 楼主| 发表于 2011-7-27 14:20:45 | 显示全部楼层
有特殊要求
发表于 2011-7-27 15:48:40 | 显示全部楼层
本帖最后由 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
复制代码

评分

参与人数 2技术 +2 收起 理由
Hello123World + 1 乐于助人
broly + 1 乐于助人

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 02:03 , Processed in 0.016849 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表