Board logo

标题: 求嗰随机数排列 [打印本页]

作者: forkfan     时间: 2008-4-5 01:04    标题: 求嗰随机数排列

求A-z的随机排列..谢谢
作者: 26933062     时间: 2008-4-5 01:25
:
@echo off&setlocal enabledelayedexpansion
set "str=abcdefghijklmnopqrstuvwxyz"
for /l %%i in (0 1 25) do (
     set /a num=!random! %% 25+1
         call set var=%%str:~!num!,1%%
     call set str=%%str:!var!=%%!var!
)
echo !str:~10!!str:~0,10!
pause

作者: forkfan     时间: 2008-4-5 01:29
谢谢..
作者: terse     时间: 2008-4-5 02:07
@echo off
set "str=abcdefghijklmnopqrstuvwxyz"
set n=27
:loop
set/a n-=1
set/a s=%random%%%%n%
call set var=%%str:~%s%,1%%
set var1=%var%%var1%
call set str=%%str:%var%=%%
if defined str goto loop
echo %var1%
pause
作者: aliang10520     时间: 2008-4-5 10:21
支持
作者: bat-zw     时间: 2008-4-6 04:01    标题: 我也来一个:


@echo off
:begin
set code=abcdefghijklmnopqrstuvwxyz
set /a n=%random%%%26
call,set str=%%code:~%n%,1%%
for %%i in (%var%) do if "%%i"=="%str%" goto begin
set var=%var% %str%
if "%var:~51,1%"=="" goto begin
echo %var%
pause

作者: 26933062     时间: 2008-4-6 05:27
:
@echo off&setlocal EnableDelayedExpansion
set "code=ABCDEFGHIJKLMNOPQRSTUVWXYZ"
for /l %%a in (26 -1 1) do (
    set /a w=!random!%%%%a
    call set var=!var!%%code:~!w!,1%%
    call set code=%%code:!var:~-1!=%%
)
echo !var!
pause
[ Last edited by 26933062 on 2008-4-6 at 05:28 AM ]
作者: PPdos     时间: 2008-4-6 07:28
我替楼兄做个注:

  Quote:
@echo off&setlocal EnableDelayedExpansion
set "code=ABCDEFGHIJKLMNOPQRSTUVWXYZ"
for /l %%a in (26 -1 1) do (
    set /a w=!random!%%%%a
1.随机取余数,余数w小于等于25
    call set var=!var!%%code:~!w!,1%%
2.取变量code的第w+1位放入变量var并不断累积
    call set code=%%code:!var:~-1!=%%
3.删除变量code中已截取的字母,将其继续循环
)
echo %var%
pause

这个第三步 妙 我加分!
作者: 26933062     时间: 2008-4-6 08:47
呵呵,再来个另类点的。
@echo off&setlocal EnableDelayedExpansion
set "code=ABCDEFGHIJKLMNOPQRSTUVWXYZ"
for /l %%a in (26 -1 1) do (
  set /a w=!random!%%%%a
  call call set code=%%%%code:%%code:~!w!,1%%=%%%%%%code:~!w!,1%%
)
echo %code%
pause