随机生成互不相同的100个0-99的数字,唯一要求代码要高效。
[ Last edited by zw19750516 on 2008-7-20 at 10:06 AM ]
[ Last edited by zw19750516 on 2008-7-20 at 10:06 AM ]
批处理之家新域名:www.bathome.net
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!
@echo off
for /l %%i in (0,1,99) do set cell_%%i=%%i
set last=100
:loop
set /a index=%random%%%%last%
call,echo %%cell_%index%%%
if %last% neq 100 call,set "cell_%index%=%%cell_%last%%%"
set /a last-=1
if %last% neq 1 goto :loop
pause>nul
Originally posted by zw19750516 at 2008-7-20 14:04:
修改一下:
@echo off
for /l %%i in (0,1,99) do set cell_%%i=%%i
set last=100
:loop
set /a index=%random%%%%last%
call,echo %%cell_%index%%%
if %last% neq 100 call,set "cell_% ...

@echo off
for /l %%a in (1 1 100) do call :echo_
echo.&pause&goto :eof
:echo_
set /a "mo=%random%%%100"
if defined %mo% goto :echo_
set /a n+=1
set /p=%mo% <nul
set "%mo%=niuming"
| 评分人 | 分数 | 时间 |
|---|---|---|
| 523066680 | +2 | 2008-07-20 15:57 |

羡慕!!!今天遇到高人了!!!大家抓住他们 !有问题要一起问哈!!
看我的!!刚改过 速度很慢 想快点关的话 记得ctrl+c,直接关很卡的

@echo off & setlocal
for /l %%i in (0,1,99) do call set #%%random%%%%random%%%%random%%=%%i
for /f "tokens=2 delims==" %%s in ('set #') do echo %%s
@echo off & setlocal EnableDelayedExpansion
for /l %%i in (0,1,99) do set #!random!!random!!random!=%%i
for /f "tokens=2 delims==" %%s in ('set #') do echo.%%s
@echo off&setlocal enabledelayedexpansion
for /l %%i in (0,1,99) do set .%%i=%%i
for /l %%i in (0,1,99) do (
set /a a=!random!%%100
call,set b=%%.!a!%%
set .!a!=!.%%i!
set .%%i=!b!
)
set .
pause>nul
| 评分人 | 分数 | 时间 |
|---|---|---|
| obsolete | +2 | 2008-07-21 21:20 |
Originally posted by qzwqzw at 2008-7-21 11:52:
随机交换的老算法讨论过很多次
代码也写了一大堆
在这就不提了
另外出一个新算法
原始构思来自一个mp3随机播放列表问题的讨论
跟2、3楼的比 ...
Originally posted by qzwqzw at 2008-7-21 15:18:
将数量级设置到0~10000
挑战性便增强很多了!
将3楼代码数量级改为10000
输出重定向到文本文件
测试花了不到5分钟
而且结果出现了偏差
少了两个 ...
Originally posted by 523066680 at 2008-7-21 15:41:
我的思路居然没人看……………………………………:(
不过我觉得如果说只要一个随机数的话 echo %time:~9,2% 是最简便的
[ Last edited by 523066680 on 2008-7-21 at 03:44 PM ]