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

回复 2# 的帖子

这段代码,并没有“随机”
且 if not %%a==%%b if !n%%a!==!n%%b! set error=1
   if !error!==1
这些语句形同虚设,要和不要没有区别。
和以下的代码似乎并没有区别?
:
  1. @echo off
  2. for /l %%a in (1,1,100) do (
  3.   for /l %%b in (1,1,100) do (
  4.      echo %%a和%%b重复!
  5. ))
  6. pause
复制代码
技术问题请到论坛发帖求助!

TOP

设置100个变量 n1 - n100 每个变量的值为一个1-100的随机数 没有一个重复
如果是这样的话就简单了。
思路:
  先把1-100乱序,在把它们赋值给n1-n100变量不就可以了?
技术问题请到论坛发帖求助!

TOP

又想了下,发现楼主的意识是 变量名不能和值相同是吧?那么上面的思路就不全对了。
技术问题请到论坛发帖求助!

TOP

测试youxi 18楼更新后的代码,出现重复现象,见附件。
代码仍未十分看懂,就象绕口令,绕的我有点头晕,暂时不知道出错原因,有空再研究。
错误应该是随机数,随机数重复时应该会出错。
测试代码如下:
:
  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 if "%%i"=="!num%%i!" echo %%i=!num%%i!
  9. pause
复制代码
[attach]72[/attach]
技术问题请到论坛发帖求助!

TOP

返回列表