[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
对这段代码持慎重态度...

TOP

回复 5# 的帖子

其实,你也应该误会了他的意思
他的意思先定义了 100 个数字变量,然后用他这段代码来检测是否有重复...

我是对它这段代码的效率不敢恭维!!
一个数字检测 100 次,
那就是 100*100=10000次,效率还会高?

TOP

回复 8# 的帖子

完全正确...
我当初写 那个 10位数的时候采取的就是这种思想
让它们随机交换数据,呵呵...

TOP

呵呵,工作做完了,也贴一段玩玩(其实是原来写的那个10位数的,稍做修改)
  1. @echo off & setlocal enabledelayedexpansion
  2. for /l %%i in (1 1 100) do set num%%i=%%i
  3. for /l %%i in (1 1 100) do (
  4.     set /a rnd=100!random:~-2!%%100+1,var=!num%%i!
  5.     call set num%%i=%%num!rnd!%%
  6.     set num!rnd!=!var!
  7. )
  8. for /l %%i in (1 1 100) do echo %%i=!num%%i!
  9. pause>nul
复制代码

TOP

回复 19# 的帖子

呵呵,这句出了点问题(可能为0)
set /a rnd=100!random:~-2!%%100,var=!num%%i!

改成:
set /a rnd=100!random:~-2!%%100+1,var=!num%%i!
即可!!
18F已更新!!

TOP

回复 17# 的帖子

观察17F的代码,思路其实和if defined差不多,基本原理是检测
z%n%是否已经被 赋值 为1,如果是则说明已经重复...,然后goto(呵呵,不知道说的对不对)
个人觉得,这种办法效率会较低,数值越多,效率越低(因为数值越多,重复的可能性越多)...

TOP

回复 22# 的帖子

哦?
他没要求变量名不能等于 其对应的值  吧?!

TOP

返回列表