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
我替楼兄做个注:

@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