收藏 分销(赏)

非等概率随机.doc

上传人:pc****0 文档编号:7486432 上传时间:2025-01-06 格式:DOC 页数:5 大小:36KB
下载 相关 举报
非等概率随机.doc_第1页
第1页 / 共5页
非等概率随机.doc_第2页
第2页 / 共5页
非等概率随机.doc_第3页
第3页 / 共5页
非等概率随机.doc_第4页
第4页 / 共5页
非等概率随机.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、非等概率随机 对一序列数字随机时一般都是等概率的,但有时候希望某些数字出现的可能性更高一些。下面是本人实现的一个非等概率随机函数,可以对序列中多个数字设置不同的出现频率。限于编码水平,如有需要改进之处敬请指点./*rand_seting.h*/#ifndef RAND_SETING_H#define RAND_SETING_H#include #include /*随机条件结构:*定义min到max之间个数字出现的频率,默认为1次.*如果希望某些数字出现频率大于1次,则把这些数字存入数字集(由pmore指向),*对应的出现频率存入频率集(由ptms指向),这两个缓冲区由用户定义及设置,*lmo

2、re和ltms分别为对应的缓冲区长度,建议两缓冲区长度相等,允许ltms lmore,*但绝不允许ltms min = min;rt-max = max;rt-pmore = pm;rt-lmore = lm;rt-ptms = pt;rt-ltms = lt;return rt;/*获取随机数,存放在bufret数组中,个数为数组长度bufsz*返回值: 出现非法数据返回-1;否则成功返回,值为获取到随机数的个数(bufsz)*/int rdget(const struct rd_dat *rt, long *bufret, long bufsz)long rval, exmax = 0;l

3、ong i, j, tmp;/ 验证数据的合法性if (rt-min rt-max | rt-lmore != rt-ltms | bufsz pmore = NULL | rt-ptms =NULL | bufret =NULL)return -1;for (i = 0; i lmore; i+)if (rt-pmorei min | rt-pmorei rt-max)return -1;if (rt-ptmsi max - rt-min + 1;for (i = 0; i ltms; i+)exmax += rt-ptmsi - 1;/ 获取bufsz个随机数srand(time(NULL); / 初始化随机数发生器for (i = 0; i min;if (rval max) / 位于min与max之间的随机数bufreti = rval;continue;/ 大于max的随机数(即:出现频率高的数)tmp = rt-max;for (j = 0; j ltms; j+)tmp += rt-ptmsj - 1;if (tmp = rval)bufreti = rt-pmorej;break;return bufsz;#endif

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服