- 3
- 0
- 约 5页
- 2017-08-09 发布于重庆
- 举报
非等概率随机.doc
非等概率随机
??? 对一序列数字随机时一般都是等概率的,但有时候希望某些数字出现的可能性更高一些。下面是本人实现的一个非等概率随机函数,可以对序列中多个数字设置不同的出现频率。限于编码水平,如有需要改进之处敬请指点.
/****************************rand_seting.h********************************/#ifndef RAND_SETING_H#define RAND_SETING_H#include stdlib.h#include time.h/*?*????随机条件结构:?*????定义min到max之间个数字出现的频率,默认为1次.?*????如果希望某些数字出现频率大于1次,则把这些数字存入数字集(由pmore指向),?*????对应的出现频率存入频率集(由ptms指向),这两个缓冲区由用户定义及设置,?*????lmore和ltms分别为对应的缓冲区长度,建议两缓冲区长度相等,允许ltms lmore,?*????但绝不允许ltms lmore,因为这将导致尾部数据读取非频率集缓冲区.?*?*????如:对1到20之间的数字随机,希望3出现的频率为5; 7为10; 15为20;其余数字为默认值1?*????则结构的设置为:?*????min = 1; max = 20;?*????pmore指向的缓冲区为 {3, 7, 15} lmore = 3?*????ptms指向的缓冲区为 {5, 10, 20} ltms = 3(建议为此值,但也可以大于3)?*????当根据这个条件产生随机数时,随机区间为:20+(5-1)+(10-1)+(20-1) = 52?*????3被随机到的概率为: 5/52?*????7被随机到的概率为: 10/52?* 15被随机到的概率为: 20/52?* 其它数字的概率则为: 1/52 ?*/struct rd_dat{? ?? long ????min;????// 起始值?????long ????max;????// 终止值?????long ????*pmore;????// 高频率数字集?????long ????lmore;????// 数字集长度?????long ????*ptms;????// 高频率数字对应的频率集(出现次数)?????long ????ltms;????// 频率集长度};/*?*????结构初始化?*????返回值:结构指针?*/struct rd_dat *rdinit(struct rd_dat *rt, long min, long max, ????????????????long *pm, long lm, long *pt, long lt){????rt-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;????long ????i, j, tmp;?????????// 验证数据的合法性?????if (rt-min rt-max || rt-lmore != rt-ltms || bufsz 1){??????????return -1;?????}?????if (rt-pmore == NULL || rt-ptms ==NULL || bufret ==NULL){??????????return -1;?????}?????for (i = 0; i rt-lmore; i++){??????????if (rt-pmore[i] rt-min || rt-pmore[i] rt-max){???????????????return -1;??????????}??????????if (rt-ptms[i] 1){???????????return -1;??????????}?????}?????// 获取扩展最大值?????exmax = rt-max
您可能关注的文档
- 隐蔽外墙保温.doc
- 隐蔽工程验收单桥桩.doc
- 隐蔽工程验收项目内容.doc
- 隧道台车拆装作业指导书.doc
- 隧道平导洞施工作业指导书.doc
- 隧道水泥混凝土路面.doc
- 雅尔塞中心校体育节会秩序册.doc
- 雅思写作中的口语经—话题准备.doc
- 雅思写作词汇最让人头痛的事.doc
- 雅思口语话题之一艺术.doc
- JJG 543-2026心电图机检定规程.pdf
- 《JJG 543-2026心电图机检定规程》.pdf
- GB/T 47045-2026乘用车车载信息优先级的确定方法.pdf
- 《GB/T 12668.2-2025调速电气传动系统 第2部分:一般要求 交流调速电气传动系统额定值的规定》.pdf
- 中国国家标准 GB/T 12668.2-2025调速电气传动系统 第2部分:一般要求 交流调速电气传动系统额定值的规定.pdf
- 中国国家标准 GB/T 31487.1-2025直流融冰装置 第1部分:系统设计.pdf
- GB/T 12668.2-2025调速电气传动系统 第2部分:一般要求 交流调速电气传动系统额定值的规定.pdf
- GB/T 31487.1-2025直流融冰装置 第1部分:系统设计.pdf
- 《GB/T 31487.1-2025直流融冰装置 第1部分:系统设计》.pdf
- 《GB/T 31418-2025道路交通信号控制系统术语》.pdf
原创力文档

文档评论(0)