php微信多人紅包(隨機以及平均分配)

先說要點:
1、隨機分配的 隨機範圍一定要算好。
2、由於精確到0.01;所以rand取隨機數的時候要*100.
3、最後那個人直接把餘額包起來就可以了。


/*
	 * $money紅包金額
	 * $num人數
	 * $type爲0是平均分配,不爲0則爲隨機分配
	 * $flag標識符
	 */
	function check($money, $num, $type) {
		$min = 0.01;
		$max = 200;
		$rand_money = 0;
		$flag = true;
		if ($money > $max) {
			echo "金額不能大於200";
			$flag = false;
		}
		if ($money < $min * $num) {
			echo "每個紅包不能低於0.01";
			$flag = false;
		}
		if ($flag) {
			Red_Packet ( $money, $num, $type );
		}
	}
	function Red_Packet($money, $num, $type) {
		$min = 0.01;
		if ($type) {
			for($i = 1; $i < $num; $i ++) {
				$rand_money = ($money - $min * ($num - $i)) / ($num - $i); // 隨機範圍
				
				$red_packet = rand ( $min * 100, $rand_money * 100 ) / 100;
				$money = $money - $red_packet;
				// var_dump($red_packet);
				echo '第' . $i . '個紅包:' . $red_packet . ' 元<br>';
			}
			echo '第' . $num . '個紅包:' . $money . ' 元<Br>'; // 最後那個直接獨自一個紅包
		} else {
			$money = $money / $num;
			echo '每個紅包爲' . $money . ' 元<br>';
		}
	}
	check ( 10, 10, 1 );
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章