[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

回复 8楼 的帖子

似乎只产生一个随机数
对于多个随机数,没有进行重复性判断(尽管这种几率很小)

TOP

思路很巧啊
技术问题请到论坛发帖求助!

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set var=123456789
  4. set /a h1=%random%%%9+1
  5. set var=!var:%h1%=0!
  6. for /l %%i in (9,-1,7) do (
  7.         set /a temp=!random!%%%%i
  8.         call set h%%i=%%var:~!temp!,1%%
  9.         call set var=%%var:!h%%i!=%%
  10. )
  11. echo %h1%%h9%%h8%%h7%
  12. pause
复制代码
3

评分人数

TOP

回复 6楼 的帖子

你觉得是人为的复杂了?
我似乎精简不出来了。代码最主要的是想考虑效率问题,避免反复 goto

回 4 楼
set /a w=%random%%%9+1,y=9
可以看成
set /a w=%random%%%9+1
set /a y=9
set /a w=%random%%%9+1  %rqndom% 是个随机数 %% 代表取余操作。9+1 代表取的数底数为 1 范围是 9
技术问题请到论坛发帖求助!

TOP

回复 3楼 的帖子

兄的代码是不是人为的复杂化了?

TOP

回复 4楼 的帖子

这个代码他自己解释是最清楚的,呵呵,旁人还是不说了/

TOP

哇!昨天刚回复完,今天就有了,真不错。。不像一般的论坛。里面产生随机数那一行,w=%random%%%9+1,y=9 后面三个%能解释是什么意思么?

TOP

  1. @echo off
  2. set ci=4
  3. :start
  4. set /a w=%random%%%9+1,y=9
  5. set "var=0 1 2 3 4 5 6 7 8 9"
  6. call set "var=%%var:%w%=%%"
  7. for /l %%a in (1 1 3) do call :loop
  8. if not defined _%w% (
  9.    set _%w%=a
  10.    echo %w%
  11.    set /a ci-=1
  12. )
  13. if %ci% neq 0 goto start
  14. echo\&pause&exit
  15. :loop
  16. set /a n=%random%%%%y%+1
  17. for /f "tokens=%n%" %%a in ("%var%") do set "m=%%a"
  18. set /a "y-=1"
  19. set "w=%w%%m%"
  20. call set "var=%%var:%m%=%%"
  21. goto :eof
复制代码
技术问题请到论坛发帖求助!

TOP

管理员也不公布一下答案呀。。。。

TOP

返回列表