返回列表 发帖
@echo off&setlocal enabledelayedexpansion
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"
for /l %%a in (1 1 26) do set "num=!num! %%a"
:loop
set/a n=%random%%%26+1
if defined .%n% goto loop
set .%n%=a
if defined a (set var=%letter%) else set var=%num%
for /f "tokens=%n%" %%a in ("%var%") do set/p=%%a <nul
if not defined a (set a=a) else set "a="
set/a m+=1
if %m% neq 10 goto loop
pause>nulCOPY

等看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

返回列表