[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
我看分5组也不能排除得了某组上限与下一组下限依然差值太小的可能
彻底避免不合格值的方法可以每取一个值后才计算不合格值范围,从总范围内排除后再从中取随机值,虽然麻烦,但绝对有效

TOP

回复  yyykkkyyyy


再仔细看看4楼这个:
X=(X+2)%5+1
awk 发表于 2011-12-21 10:50



    确实我没仔细看,也没必要细看,因为只要说是分组,如果与前次的组相邻的组不排除,就是我在6楼说的情况,如果也要排除相邻组相当于仅从 2~3 组里取值了,显然又过多地排除了,似乎于随机的概率上也不合适,除非说相邻组里也会视情况取一部分,那就和我说的没区别了,只是方法上更具体。
不管是哪种,其实总的思路你我是相同的,就是要从取随机范围里把不合要求的先排除了去取随机值,而不是取了值后判断是否合适。
说实话,楼主的完整要求我都还没看明白,似乎并不在意有相近的值,只是要控制概率不要大了,他自己也会写这代码,也许你提供的思路正是他所需要的

TOP

本来可能楼主已经有答案了,随机的事嘛也没必要太认真。但看到9楼答的,又想说两句,确实是简捷高效,我没这么具体量化,其实也有过思考,如果老是下一个数往+的方向加的话似乎也不够随机——总是往“递增”方向发展,过限回头继续。还想过可以另取随机值仅决定+- , 但是看到楼主似乎要求不相邻的数里也不允许重复,并在强调概率范围,又还有些话的意思没太明白就没细想了

TOP

返回列表