Gelişmiş Rastgele Sayılar Üretme Sınıfı

<?php
	class Rast {
		protected $sonuc, $ciz, $mikro, $sn, $f, $m, $tam;
		public function gele($sayi2=100,$sayi1=0,$sayi=0, $mutlak=true, $ciz=false) {
			$sayi2++;
			$this->ciz = microtime();
			list($this->mikro, $this->sn) = explode(" ", $this->ciz);
			$this->ciz = ' - '.$this->ciz;
			$this->f = '';
			$this->m = 1;
			if ($sayi > 0) {$sayi2--; $this->f = '.'.$this->gele(pow(10, $sayi));}
			if ($ciz === false) { $this->ciz = '';}
			if ($mutlak === false) { $this->m = $this->gele(2) == 0 ? -1 : 1; }
			$this->mikro = pow($this->mikro, 2) + $this->mikro +41; // according sayi2 Euler's formula
			$this->sn = pow($this->sn, 2) + $this->sn +41;
			$this->tam = strlen($sayi2) +substr($this->mikro, 0, 2) +2;
			$this->sonuc = sprintf("%.{$this->tam}f", ($this->mikro/$this->sn));
			$this->sonuc = ((((substr($this->sonuc, (strlen($sayi2) > 3 ? (5+strlen($sayi2))*(-1) : -5)) % ($sayi2-$sayi1)) + $sayi1).$this->f)*$this->m).$this->ciz;
			return $this->sonuc;
		}
	}
	$rast = new Rast();
		echo $rast->gele(5);//0 ile 5 arası rastgele pozitif sayılar
		echo "<br>";
		echo $rast->gele(15, 4);//4 ile 15 arası rastgele pozitif sayılar
		echo "<br>";
		echo $rast->gele(15, 0, 3);//0 ile baslanyan ve virgülden sonra 3 haneli sayı
		echo "<br>";
		echo $rast->gele(15, 4, 3);//4 ile baslanyan ve virgülden sonra 3 haneli sayı
		echo "<br>";
		echo $rast->gele(15, 0, 0, false);//0
		echo "<br>";
		echo $rast->gele(15, 0, 3, false);//0
		echo "<br>";
		echo $rast->gele(15, 9, 0, false);//9 veya -9
		echo "<br>";
		echo $rast->gele(15, 9, 0, false, true);//9 veya -9
		echo "<br>";
		echo $rast->gele(15, 9, 0, true, true);//9 ile 15 arası sayı - mikrozaman ve zamandamgası
		echo "<br>";
		echo $rast->gele(15, 0, 3, false, true);//0
		echo "<br>";

?>

Çıktısı

0
15
0.405
4.856
0
0
-9
-9
13 - 0.70984500 1528384271
0

 

Sizin Değerli Görüşlerinize İhtiyacımız Var.