Autor Zpráva
sloncz
Profil
Dobrý den, vůbec si nevím rady, takže prosím o radu.
Mám např. číslo 100 v proměnné
$cislo = 100;
a já potřebuji to číslo rozdělit na 4 části, ale tak, aby to nebylo
$c1 = 25;
$c2 = 25;
$c3 = 25;
$c4 = 25;

ale třeba
$c1 = 26;
$c2 = 45;
$c3 = 16;
$c4 = 13;

a po refreshu stránky zase jiné rozdělení, ale součet musí vždy být to $cislo

Předem všem děkuji za rady :)
Alphard
Profil
$in = 100;
$partsCount = 4;

$parts = [];
for ($i = 0; $i < $partsCount-1; $i++)
{
    $parts[$i] = rand(0, $in);
    $in -= $parts[$i];
}
$parts[$partsCount] = $in;

var_dump($parts);
juriad
Profil
Alphard:
Toto sice vrací náhodné čtverice, ale rozhodně ne všechny se stejným rozdělením.
Výběr n-tého čísla totiž závisí na výběru (n-1)-ho. Tedy první prvek bude větší mít větší střední hodnotu než ostatní.
Průměrný výběr totiž vyjde: 50, 25, 12, 13.
Chro
Profil
$celek = 100;
$a = rand(1, (int) ($celek/5));
$b = rand(1, (int) ($celek/4));
$c = rand(1, (int) ($celek/3));
$d = $celek - $a - $b - $c;
Alphard
Profil
juriad [#3]:
Taky jsme měli pravděpodobnost..., ale sloncz žádné konkrétní rozdělení nepožaduje, mluví jen o součtu.

sloncz:
Jestli vám to nevyhovuje, upřesněte zadání. Můžete si ten výsledek třeba promíchat – shuffle().

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: