码迷,mamicode.com
首页 > 其他好文 > 详细

Math.random红包

时间:2017-10-27 16:04:28      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:sum   证明   数学期望   rand   color   最小   ota   一个人   fun   

10元红包,分给5个人:

最小单位是0.01元

随机

将10元分成10×100分(最小的单位)共1000份

然后分配5个盒子(5人分)

每一份都随机往5个盒子里添加(共1000份)

此方法证明Math.random在多次以后区域平均,不适合多次分配

function redBag(money,num){
        //money:总金额 num:人数
       var totalSum=money*100;//拆分成最小单元
       var arr=[];
       for(var i=0;i<num;i++){
           arr[i]=0
       }
        for(var j=0;j<totalSum;j++){
            arr[Math.floor(Math.random()*num)]+=1//将最小份随机分给某一个人
        }
       for(var k=0;k<num;k++){
           console.log(arr[k]/100)//打印出每一份金额
       }
       var tt=0
       for(var n=0;n<num;n++ ){
           tt+=arr[n]//确认总金额用完
       }
       console.log(tt/100)
   }

    redBag(1000,5) //经过测试,金额越大越平均,这叫他喵的数学期望值吧,mmp  

 

Math.random红包

标签:sum   证明   数学期望   rand   color   最小   ota   一个人   fun   

原文地址:http://www.cnblogs.com/carlyin/p/7742855.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!