亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

發一個隨機紅包,40塊錢給10個人。每個人最多6塊錢。怎么分?用javascript怎么寫???

發一個隨機紅包,40塊錢給10個人。每個人最多6塊錢。怎么分?用javascript怎么寫???

發一個隨機紅包,40塊錢給10個人。每個人最多6塊錢。怎么分?用javascript怎么寫???
查看完整描述

6 回答

已采納
?
ahao430

TA貢獻35條經驗 獲得超41個贊

Divide(10,40,6);

function?Divide(p,m,a){
	/*傳入人數,總金額,單人上限*/
	var?arr=[];
	nm=m*100;
	na=a*100;
	/*乘100,便于運算*/
	l=p;
	/*每次遍歷后剩余人數*/
	for(i=0;i<p-1;i++){
		l--;
		arr[i]=roll(nm,l);
		/*傳入剩余金額及人數*/
		nm-=arr[i];
		/*剩余金額*/
	}
	arr[p-1]=nm;
	/*最后一個人不用分*/
	if(arr[p-1]>na){
		return?Divide(p,m,a);
	}
	/*最后一個人如超過上限,重新分*/
	return?arr.map(function(v,i,arr){
		return?v=v/100;
	});
	/*分好了,每個數重新除以100,輸出結果*/

	/*定義隨機函數,傳入剩余金錢和人數*/
	function?roll(o,l){
		var?b=o-l;
		/*每個人至少分1分錢*/
		var?Max=Math.min(na,b);
		return?Math.ceil(Math.random()*Max);
	}
}


查看完整回答
3 反對 回復 2016-07-25
?
nickylau82

TA貢獻128條經驗 獲得超67個贊

仔細想了一下,其實需要增加的邏輯判斷就是剩余的人數*6要大于剩余金額。否則就需要重新計算本次發的紅包。但是這個就不是真隨機了。。。太不公平了。。。

查看完整回答
反對 回復 2016-07-25
?
偶爾喝個小酒

TA貢獻5條經驗 獲得超1個贊

用隨機數每次生成的都小于6

查看完整回答
反對 回復 2016-07-25
  • 6 回答
  • 4 關注
  • 3284 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號