Toplamı Belirli Rastgele Ondalıklı Sayılar Üretmek

<?php
class rastgeleOndalikliSayiOlustur{
	public $sayiolustur = array();
	function __construct($toplam, $kac){
		$i = 0;
		while ($i != $kac) {
			if ($i == $kac - 1) { $this->sayiolustur[count($this->sayiolustur)] = $toplam; } else {
				$this->sayiolustur[count($this->sayiolustur)] = round(lcg_value() * intval($toplam / rand(1, rand(2, $kac - $i))), 2);
				$toplam -= $this->sayiolustur[count($this->sayiolustur) - 1];
			}
			$i++;
		}
	}
}
$r = new rastgeleOndalikliSayiOlustur(125, 6);
print_r($r->sayiolustur);
?>

Çıktısı

Array
(
    [0] => 26.29
    [1] => 11.57
    [2] => 41.69
    [3] => 12.95
    [4] => 14.69
    [5] => 17.81
)