实际中常用一个随机数产生器(分类别概率随机).docxVIP

实际中常用一个随机数产生器(分类别概率随机).docx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实际中常用一个随机数产生器(分类别概率随机).docx

已知一件事物有几种状态,每种状态出现的概率不一样,要求做一个随机数产生器,返回状态值,要求状态值出现的规律,符合输入的概率。 这是小弟上午问我的问题,我们正在做一个工业测试模型,实际的例子是,根据实际情况,某种设备返回的状态概率符合下表: 设备状态百分比112%240%340%47%51%要求写段代码,模拟设备的上述行为。 我下午上班想了一下,花了半个小时为他写了一个随机数产生器,经测试,0bug,呵呵。他现在正在用。 Code: #define?CTonyRandomArea_TOKEN_MAX?100???????????//最大类型数 ?? #define?CTonyRandomArea_TOKEN_AREA_MAX?10000????//类型数组单元数,精确到小数点后两位 ?? //输入最大100个元素的数组,每个数组表示每类占有的百分比,内部自带百分比调整。 ?? //即如果外部输入的数字之和不是整数100,内部会根据百分比,自动调整其比例,使总和=100.0 ?? //然后内部建立10000个单元的类型数组,根据传入的每种类型的比例,在类型数组中批量填充对应的类型值 ?? //总之,类型数组中每种类型的数量,占据的比例正好是输入的百分比 ?? //最后,在0~10000中取随机,然后在对应的类型数组单元中取类型值,即为返回的类型 ?? class?CTonyRandomArea ?? { ?? public: ?? ????CTonyRandomArea(double*?pTokenPercentArray,char?cTokenCount) ?? ????{ ?? ????????m_nTokenCount=cTokenCount; ?? ????????if(CTonyRandomArea_TOKEN_MAXm_nTokenCount) ?? ????????????m_nTokenCount=CTonyRandomArea_TOKEN_MAX; ?? ????????int?i=0; ?? ????????for(i=0;im_nTokenCount;i++) ?? ????????{ ?? ????????????m_dTokenPercentArray[i]=*(pTokenPercentArray+i); ?? ????????} ?? ????????//动态调整内部的值 ?? ????????//有时候试验人员,测得几个状态出现的数字,可能懒得再计算成百分比 ?? ????????//程序帮忙自动计算 ?? ????????double?dNumberCount=0; ?? ????????for(i=0;im_nTokenCount;i++) ?? ????????{ ?? ????????????dNumberCount+=m_dTokenPercentArray[i]; ?? ????????} ?? ????????if(100.0!=dNumberCount) ?? ????????{ ?? ????????????for(i=0;im_nTokenCount;i++) ?? ????????????{ ?? ????????????????m_dTokenPercentArray[i]/=dNumberCount;? ??????????????? m_dTokenPercentArray[i]*=100; ????????????} ?? ????????} ?? ????????//以小数点后两位精度,开始计算在10000个总单元中,每种类型对应的数量。 ?? ????????for(i=0;im_nTokenCount;i++) ?? ????????{ ?? ????????????m_sTokenPercentArray[i]=(short)(m_dTokenPercentArray[i]*100); ?? ????????} ?? ?? ????????//按比例填充类型数组 ?? ????????int?j=0; ?? ????????int?nFillMin=0; ?? ????????int?nFillMax=0; ?? ????????for(i=0;im_nTokenCount;i++) ?? ????????{ ?? ????????????m_cTokenPercentArrayAreaUp[i]=-1; ?? ????????} ?? ?? ????????for(i=0;im_nTokenCount;i++) ?? ??

您可能关注的文档

文档评论(0)

dmz158 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档