[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. @echo off&setlocal enabledelayedexpansion
  2. for %%i in (a b c d e f g h i j k l n m o p q r s t u v w x y z) do set "letter=!letter! %%i"
  3. for /l %%a in (1 1 26) do set "num=!num! %%a"
  4. :loop
  5. set/a n=%random%%%26+1
  6. if defined .%n% goto loop
  7. set .%n%=a
  8. if defined a (set var=%letter%) else set var=%num%
  9. for /f "tokens=%n%" %%a in ("%var%") do set/p=%%a <nul
  10. if not defined a (set a=a) else set "a="
  11. set/a m+=1
  12. if %m% neq 10 goto loop
  13. pause>nul
复制代码

等看BATMAN兄的代码。

[ 本帖最后由 pusofalse 于 2008-8-25 14:34 编辑 ]
1

评分人数

    • batman: 好,就是效率还有点问题。PB + 10
心绪平和,眼藏静谧。

TOP

兄的学习态度太好了。
测试了一下,兄的代码平均间隔在0.02秒之内,我的代码差不多是0.03s。
的确慢了,可能是用了if defined 的缘故

[ 本帖最后由 pusofalse 于 2008-8-25 15:34 编辑 ]
心绪平和,眼藏静谧。

TOP

你说的,随机的概率应该相等。
那么你写为if %n% equ 0 set n=1
出现1的概率也会比其他数多一倍。
我觉得没有绝对的概率相等,底数的概率总会多于其他数。
心绪平和,眼藏静谧。

TOP

返回列表