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

[数值计算] 批处理生成100个不重复的随机数

设置100个变量 n1 - n100 每个变量的值为一个1-100的随机数 没有一个重复
查看是否有重复代码
  1. for /l %%a in (1,1,100) do (
  2. set error=0
  3. for /l %%b in (1,1,100) do (
  4.   if not %%a==%%b if !n%%a!==!n%%b! set error=1
  5.   if !error!==1 echo %%a和%%b重复!
  6.   )
  7. )
复制代码

检查重复
  1. for /l %%a in (1,1,100) do (
  2. for /l %%b in (1,1,100) do (
  3.   set error=0
  4.   if not %%a==%%b if !n%%a!==!n%%b! set error=1
  5.   if !error!==1 echo %%a和%%b重复!
  6.   )
  7. )
  8. pause
复制代码

TOP

对这段代码持慎重态度...

TOP

为什么 ??????

TOP

回复 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

回复 5# 的帖子

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

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

TOP

随风 你不是在一个主题为 “怎样求得一10位数的数”
写了一个 1到10 的随机数 并且没有重复吗?

TOP

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

TOP

对 就这样
帮我写出代码啊

TOP

为什么 我不能自己设置头像

您设置的头像类型无效,请返回修改。

TOP

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

TOP

其实我真正的目的是这样的
set str=一二三四五六七八九十
我想输出一个打乱了的
比如输出 九三六十二一四五八七

TOP

回复 8# 的帖子

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

TOP

主页有错误 对象不可用

TOP

版主怎么不把主页里的错误修补 我早就提过了的

TOP

返回列表