找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 53340|回复: 25

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

[复制链接]
发表于 2008-1-15 18:16:57 | 显示全部楼层 |阅读模式
设置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. )
复制代码
 楼主| 发表于 2008-1-15 18:22:20 | 显示全部楼层
检查重复
  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
复制代码
发表于 2008-1-15 19:51:33 | 显示全部楼层
对这段代码持慎重态度...
 楼主| 发表于 2008-1-15 20:17:39 | 显示全部楼层
为什么 ??????
发表于 2008-1-15 20:31:39 | 显示全部楼层

回复 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
复制代码
发表于 2008-1-15 20:42:13 | 显示全部楼层

回复 5# 的帖子

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

我是对它这段代码的效率不敢恭维!!
一个数字检测 100 次,
那就是 100*100=10000次,效率还会高?
 楼主| 发表于 2008-1-15 20:46:48 | 显示全部楼层
随风 你不是在一个主题为 “怎样求得一10位数的数”
写了一个 1到10 的随机数 并且没有重复吗?
发表于 2008-1-15 20:51:42 | 显示全部楼层
设置100个变量 n1 - n100 每个变量的值为一个1-100的随机数 没有一个重复
如果是这样的话就简单了。
思路:
  先把1-100乱序,在把它们赋值给n1-n100变量不就可以了?
 楼主| 发表于 2008-1-15 20:53:24 | 显示全部楼层
对 就这样
帮我写出代码啊
 楼主| 发表于 2008-1-15 21:01:51 | 显示全部楼层
为什么 我不能自己设置头像

您设置的头像类型无效,请返回修改。
发表于 2008-1-15 21:02:34 | 显示全部楼层
又想了下,发现楼主的意识是 变量名不能和值相同是吧?那么上面的思路就不全对了。
 楼主| 发表于 2008-1-15 21:05:41 | 显示全部楼层
其实我真正的目的是这样的
set str=一二三四五六七八九十
我想输出一个打乱了的
比如输出 九三六十二一四五八七
发表于 2008-1-15 21:07:23 | 显示全部楼层

回复 8# 的帖子

完全正确...
我当初写 那个 10位数的时候采取的就是这种思想
让它们随机交换数据,呵呵...
 楼主| 发表于 2008-1-15 21:10:07 | 显示全部楼层
主页有错误 对象不可用
 楼主| 发表于 2008-1-15 21:10:28 | 显示全部楼层
版主怎么不把主页里的错误修补 我早就提过了的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 22:36 , Processed in 0.020301 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表