网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

毕设2关于随机数-创新互联

今天长见识了,我一直以为想要取0~N-1之间均匀分布的随机数,用rand()%N就可以了。(N不超过RAND_MAX)毕设2关于随机数

事实是在N不大的时候,基本上是均匀分布,但是并不确切。因为rand()产生0-RANDMAX之间的整数,但是RAND_MAX通常不是N的倍数。导致求余数的时候,有些数的概率高那么一点点。

创新互联是专业的霞浦网站建设公司,霞浦接单;提供成都网站制作、做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行霞浦网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

当然当N小的时候,因为RAND_MAX很大(通常是0x7FFF),这个概率的差别很小。比如N=10时,会导致0~7的概率比8~9的概率高0.0000305。

所以当N较大,或者N超过RAND_MAX时,就不能用这个方法啦。在C++的random库里有uniform_int_distribution

    std::default_random_engine generator;
    std::uniform_int_distribution distribution(1,6);

for(int i=0;i<100;++i)
    {
        std::cout<

我也尝试过用boost库中的随机数,但是有意思的是boost库中的uniform_int_distribution看起来不是那么的uniform,我google了一下也还有其他人这么说

下面是boost库中随机1-6的100个数:

5166166242142246666615666135521131645664451362655355533342225512261116555125631431325151233333455655

中间出现连续5个6,连续5个3,都让它显得不那么的随机。所以还是用了标准库里的。


本文标题:毕设2关于随机数-创新互联
链接URL:http://bjjierui.cn/article/cdhsss.html