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

[数值计算] [已解決]批处理如何产生100-200之间不重复的的随机数?

[复制链接]
发表于 2010-10-22 11:24:44 | 显示全部楼层 |阅读模式
產生100-200之間的隨機數,一共產生10個數,不希望有重複的!希望高手指點!

[ 本帖最后由 smallpigs 于 2010-10-25 15:25 编辑 ]

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2010-10-22 11:46:21 | 显示全部楼层
  1. @echo off&setlocal enabledelayedexpansion
  2. set num=1
  3. for /l %%a in (100,1,200) do set ".!random!!random!!random!=%%a"
  4. for /f "delims== tokens=2" %%a in ('set .') do (
  5.      echo %%a
  6.      set /a num=!num!+1
  7.      if "!num!"=="11" goto end
  8. )
  9. :end
  10. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
smallpigs + 1 乐于助人

查看全部评分

 楼主| 发表于 2010-10-22 11:53:58 | 显示全部楼层
可以解釋一下嗎,不是太懂set ".!random!!random!!random!=%%a"   和('set .')不是太明白
发表于 2010-10-22 11:59:16 | 显示全部楼层
  1. set ".!random!!random!!random!=%%a"
复制代码
这句的意思是给100~200的数都标上一个编号,编号为随机数
  1. for /f "delims== tokens=2" %%a in ('set .') do (
  2.      echo %%a
  3.      set /a num=!num!+1
  4.      if "!num!"=="11" goto end
  5. )
复制代码
这句的意思是用set.列出所有变量开头字母为"."的变量,也就是提取刚才所编号的那些数字,并抽取前10个数字。

[ 本帖最后由 TX_kakashi 于 2010-10-22 12:03 编辑 ]
发表于 2010-10-22 19:56:58 | 显示全部楼层

回复 4楼 的帖子

学习了,看来变量的用法真是神奇啊,居然可以这么用,唉!!!!
发表于 2010-10-22 21:19:17 | 显示全部楼层
  1. @echo off&setlocal enabledelayedexpansion
  2. for /l %%i in (1 1 10) do set /a x=!random!%%% 100 +100&echo !x!
  3. endlocal
复制代码

[ 本帖最后由 cui1988wei 于 2010-10-22 21:20 编辑 ]
发表于 2010-10-25 20:42:43 | 显示全部楼层

回复 6楼 的帖子

1、无法满足100到200之间
2、无法保证不重复
发表于 2010-10-27 15:22:11 | 显示全部楼层
  1. @echo off&setlocal enabledelayedexpansion
  2. :loop1
  3. set n=0
  4. :loop
  5. set /a var=%random%%%101+100
  6. set /a n+=1
  7. set w%n%=%var%
  8. if %n% lss 10 goto loop
  9. for /l %%a in (1 1 9) do (
  10.     set /a m=%%a+1
  11.     for /l %%b in (!m! 1 10) do (
  12.         if !w%%a!==!w%%b! goto loop1
  13.    )
  14. )
  15. for /l %%c in (1 1 10) do (
  16.     echo !w%%c!
  17. )
  18. pause
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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