注册
登录
论坛
搜索
帮助
导航
私人消息 (0)
公共消息 (0)
论坛任务 (0)
系统消息 (0)
好友消息 (0)
帖子消息 (0)
批处理之家
»
BAT求助&讨论
» 批处理如何在某个范围内取随机值,而且在一般情况下不能跟上次的值过于接近?
[新手上路]
批处理新手入门导读
[视频教程]
批处理基础视频教程
[视频教程]
VBS基础视频教程
[批处理精品]
批处理版照片整理器
[批处理精品]
纯批处理备份&还原驱动
[批处理精品]
CMD命令50条不能说的秘密
[在线下载]
第三方命令行工具
[在线帮助]
VBScript / JScript 在线参考
返回列表
发帖
yyykkkyyyy
发短消息
加为好友
yyykkkyyyy
当前离线
UID
43087
帖子
80
精华
0
积分
179
PB
110
技术
23
捐助
0
阅读权限
20
在线时间
359 小时
注册时间
2011-11-1
最后登录
2016-1-16
二级士官
帖子
80
积分
179
技术
23
捐助
0
注册时间
2011-11-1
1
楼
跳转到
»
发表于 2011-12-21 08:20
|
显示全部帖子
我看分5组也不能排除得了某组上限与下一组下限依然差值太小的可能
彻底避免不合格值的方法可以每取一个值后才计算不合格值范围,从总范围内排除后再从中取随机值,虽然麻烦,但绝对有效
TOP
yyykkkyyyy
发短消息
加为好友
yyykkkyyyy
当前离线
UID
43087
帖子
80
精华
0
积分
179
PB
110
技术
23
捐助
0
阅读权限
20
在线时间
359 小时
注册时间
2011-11-1
最后登录
2016-1-16
二级士官
帖子
80
积分
179
技术
23
捐助
0
注册时间
2011-11-1
2
楼
发表于 2011-12-21 12:59
|
显示全部帖子
回复 yyykkkyyyy
再仔细看看4楼这个:
X=(X+2)%5+1
awk 发表于 2011-12-21 10:50
确实我没仔细看,也没必要细看,因为只要说是分组,如果与前次的组相邻的组不排除,就是我在6楼说的情况,如果也要排除相邻组相当于仅从 2~3 组里取值了,显然又过多地排除了,似乎于随机的概率上也不合适,除非说相邻组里也会视情况取一部分,那就和我说的没区别了,只是方法上更具体。
不管是哪种,其实总的思路你我是相同的,就是要从取随机范围里把不合要求的先排除了去取随机值,而不是取了值后判断是否合适。
说实话,楼主的完整要求我都还没看明白,似乎并不在意有相近的值,只是要控制概率不要大了,他自己也会写这代码,也许你提供的思路正是他所需要的
TOP
yyykkkyyyy
发短消息
加为好友
yyykkkyyyy
当前离线
UID
43087
帖子
80
精华
0
积分
179
PB
110
技术
23
捐助
0
阅读权限
20
在线时间
359 小时
注册时间
2011-11-1
最后登录
2016-1-16
二级士官
帖子
80
积分
179
技术
23
捐助
0
注册时间
2011-11-1
3
楼
发表于 2011-12-21 22:14
|
显示全部帖子
本来可能楼主已经有答案了,随机的事嘛也没必要太认真。但看到9楼答的,又想说两句,确实是简捷高效,我没这么具体量化,其实也有过思考,如果老是下一个数往+的方向加的话似乎也不够随机——总是往“递增”方向发展,过限回头继续。还想过可以另取随机值仅决定+- , 但是看到楼主似乎要求不相邻的数里也不允许重复,并在强调概率范围,又还有些话的意思没太明白就没细想了
TOP
返回列表
批处理专区: BAT CMD DOS
BAT求助&讨论
BAT教程&资料
BAT原创&转载
BAT新大陆
BAT转载代码
新手练功
出题挑战
有偿求助
第三方命令行
开源原创工具
iBAT
Take Command
其他脚本区
PowerShell求助&讨论
PowerShell教程&资料
PowerShell原创&转载
VBS求助&讨论
JS / JScript / JavaScript
VBS教程&资料
VBS原创&转载
UNIX/Linux Shell
Python
Perl
网络资源区
电脑技术研讨
精品软件交流
论坛事务区
站务交流
意见反馈
论坛公告
版主申请
交换链接
建站杂谈
活动专区
论坛总版规
[收藏此主题]
[关注此主题的新回复]
[通过 QQ、MSN 分享给朋友]