Added Code for DailyProg
This commit is contained in:
45
www/protected/components/SeededRandom.php
Normal file
45
www/protected/components/SeededRandom.php
Normal file
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by PhpStorm.
|
||||
* User: Mike
|
||||
* Date: 28.05.14
|
||||
* Time: 09:15
|
||||
*/
|
||||
|
||||
class SeededRandom
|
||||
{
|
||||
var $RSeed = 0;
|
||||
|
||||
function seed($s = 0)
|
||||
{
|
||||
$this->RSeed = abs(intval($s)) % 9999999 + 1;
|
||||
$this->get();
|
||||
}
|
||||
|
||||
function seedWithDailySeed()
|
||||
{
|
||||
$this->seed($this->getDailySeed());
|
||||
}
|
||||
|
||||
function get($min = 0, $max = 9999999)
|
||||
{
|
||||
if ($this->RSeed == 0)
|
||||
$this->seed(mt_rand());
|
||||
|
||||
$this->RSeed = ($this->RSeed * 125) % 2796203;
|
||||
|
||||
return $this->RSeed % ($max - $min + 1) + $min;
|
||||
}
|
||||
|
||||
function getRandomElement(array $arr)
|
||||
{
|
||||
return $arr[$this->get(0, count($arr))];
|
||||
}
|
||||
|
||||
function getDailySeed()
|
||||
{
|
||||
$now = getdate();
|
||||
|
||||
return ($now['year'] % 100) * 366 + $now['yday'];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user