![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-10 06:27 |
共 47,812 主题排行 / 349,914 发帖 / 今日 0 篇 / 48,268 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 随机显示5个不同的数 |
| 可打印版本 7,207 / 57 |
| 第1楼 26933062 | 发表于 2007-01-04 16:12 |
| 银牌会员 发帖 879 积分 2,268 | |
|
随机显示5个不同的数 能不能一次显示出1-100随机的5位数,并且不能有重复的.
想了很久,也搜索了论坛里的大部分帖子,好像都没有同时显示5位数的,关键是还要不能重复, 不好意识,对不起各位了,看来我的表达能力确实有问题. 我的目的是 显示1-100的随机数, 一次同时显示5个 , 并且显示的这5个数不能有重复的.这样说大家能理解了吗? 首先多谢各位的精彩答复,因本人的批处理水平实在太菜,有些高深的答复不太看的懂,所以若有错误的评价还请见谅..................... 1, 6楼的答复基本符号要求,但多次使用时偶而会出现死循环现象,不知什么原因. 2, 13楼的虽没有重复现象,但每次运行后的第一位数总是相同,总觉略有不妥之处. 3, 26楼的虽然也可用,但是觉得过于呆板,(对不起,可能用词不当,但想不出更婉转的词了,见谅!)比如我想显示6位或7,8,9..........位就太麻烦了,其实我的本意是先要求输入随机数的最大值,再输入显示的位数. 4, 个人感觉(从思路上来说)32楼的应该是最理想的,但可惜我看不懂,而32楼的这位兄弟又没把代码按要求写完,(一次显示了100个). 5, 我认为33楼的代码应该是最好的了,从代码上看,应该是绝对没重复,而且很灵活,只是不知道会不会出现他们说的效率低,和死循环.目前运行状况良好.size] 不好意识 版主 经反复测试,你6楼的方法没问题,只是会出现死循环,可能是测试的方法太多了,搞错了对象,对不起了. 在42楼修改后的方法我认为以接近完美,真是条条大路通罗马,好方法太多了,批处理真是对人思路的挑战. [ Last edited by 26933062 on 2007-1-6 at 10:07 PM ] |
|
| 第2楼 a9319751 | 发表于 2007-01-04 20:42 |
| 中级用户 发帖 170 积分 439 | |
|
5个?5位?
1-100 有5位 |
|
| 第3楼 zh159 | 发表于 2007-01-04 22:17 |
| 金牌会员 发帖 1,467 积分 3,687 | |
|
5随机个1-99
1: 2: [ Last edited by zh159 on 2007-1-4 at 10:09 AM ] |
|
| 第4楼 youxi01 | 发表于 2007-01-04 23:45 |
| 高级用户 发帖 247 积分 846 来自 湖南==》广东 | |
|
来凑个“热闹”
|
|
| 第5楼 namejm | 发表于 2007-01-05 01:52 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
楼主的表达有问题,看了半天还不知道究竟是要生成1-99个不同的随机5位数还是在1-99中随机显示5个不同的数,请楼主表达清楚。
|
|
| 第6楼 namejm | 发表于 2007-01-05 02:16 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
看了4楼的代码,推测 youxi01 的本意是想显示5个 1-100 之间(不包含100)不同的随机数,但是代码是有问题的:%a% 是 1-5 的数,用 if not defined 来判断 num%a% 这个变量是否被定义过,执行的结果始终是没有定义过。
按照4楼的思路修改代码如下: —————————————————————————————————————— 如果循环调用这段代码,在第20次的时候会陷入死循环,具体情况请看16楼的描述,原因分析请看41楼,解决问题的代码请看42楼。 [ Last edited by namejm on 2007-1-6 at 05:03 PM ] |
|
| 第7楼 tghksj | 发表于 2007-01-05 03:05 |
| 社区乞丐 发帖 90 积分 -49 | |
|
怀疑自己的理解能力和楼主表达能力
是5个 还是5位? 5个 1-100 如下: |
|
| 第8楼 namejm | 发表于 2007-01-05 03:33 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
发现很多人都忽略了这样一个细节:%random:~-2% 有可能取到 00 这样的字符串,set /a num=%random:~-2% 虽然可以把 00 字符串数值化,变成0,但是,0却并不是楼主所想要的。
|
|
| 第9楼 tghksj | 发表于 2007-01-05 04:30 |
| 社区乞丐 发帖 90 积分 -49 | |
|
那OK,
%random:~-2%不行就%random:~0,2% 保证前面没0 |
|
| 第10楼 ccwan | 发表于 2007-01-05 04:36 |
| 金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊 | |
|
取得的5个数中有相同的算不算?
|
|
| 第11楼 namejm | 发表于 2007-01-05 04:41 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
按照楼主的说法,5个数中不能出现相同的数。
|
|
| 第12楼 ccwan | 发表于 2007-01-05 04:43 |
| 金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊 | |
|
目前9楼的已发现有这种情况。
|
|
| 第13楼 tghksj | 发表于 2007-01-05 06:18 |
| 社区乞丐 发帖 90 积分 -49 | |
|
OK!!!嵌套递归! 这下不重复了吧???呵呵
[ Last edited by tghksj on 2007-1-4 at 06:11 PM ] |
|
| 第14楼 tghksj | 发表于 2007-01-05 06:44 |
| 社区乞丐 发帖 90 积分 -49 | |
|
我晕~~我傻了,怎么没想起 if not defined
晕晕晕晕晕晕晕晕晕晕晕晕晕晕晕 咦?????????不好使?????????????还是有重复的??! 高人解释下.............. 暂时只有13楼可以了.... [ Last edited by tghksj on 2007-1-4 at 05:53 PM ] |
|
| 第15楼 namejm | 发表于 2007-01-05 06:58 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
看了14楼的代码,发现里面并没有控制随机数是否重复的语句,多测试几次之后,就会发现有重复数值出现,建议参考一下我在6楼帖出来的代码。
|
|
| 1 2 3 4 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |