
Pozdrawiam.
<?php /** * Klasa do oszukanego ;) losowania :) * @author ElemeK */ class CheatRand { protected $n = 0; protected $sum = 0; protected $srednia; protected $min; protected $max; protected $p; /** * Tworzymy nowy obiekt losujący. * * @param int $min dolny przedział zakresu losowania * @param int $max górny przedział zakresu losowania * @param int $srednia wartość oczekiwana :) */ public function __construct($min, $max, $srednia) { $this -> srednia = $srednia; $range = $max - $min; $sp = $srednia - $min; if ($srednia > $range/2) { $this -> p = 1 - 1 / ($range / ($range - $srednia)); } else { $this -> p = 1 / ($range / $srednia); } } /** * Losowanie wartości z przedziału zadanego przy tworzeniu obiektu. * * @return int losowa wartość z zadanego przedziału. */ $this -> n++; } else { } $this -> sum += $x; return $x; } /** * Aktualna wartość średnia od początku losowań. * * @return float */ public function avg() { return $this -> sum / $this -> n; } } /* Przykład zastosowania */ /* Nowy obiekt oszukanego losowania :) */ $rnd = new CheatRand($od = 1, $do = 10, $srednia = 2); /* drukuj sto wartości losowych. */ for ($i = 0; $i < 100; $i++) { } /* sprawdź wartość średnią */ ?>