<?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