$max = 1500; $hour = [8,9,10,11,12,13,14,15,16,17,18,19,20,21,22];
może tak
for($i=0; $i<15;$i++){ $hour[$i] =[8+$i,http://www.php.net/rand(0,1500)]; }
$i=-1; $count=http://www.php.net/count($hour); $l=[]; foreach($hour as $h) { $l[]=http://www.php.net/rand(1, $max - http://www.php.net/array_sum($l) -($count - $i++)); }
@olszam - jest problem, ponieważ suma tych wartości nie jest równa 1500
Przepraszam, że zrozumiałem..
Żle napisałem, chodzi o to aby wartości w tablicy dla danej godziny nie przekraczały maksymalnej wartości, ale jednocześnie wszystkie godziny były jej sumą
@nospor - mylisz się. Zrozumiałem dokładnie, tak jak było napisane pierwotnie. Czyli "tak, aby razem nie przekraczały liczby maksymalnej".
Mój kod to spełnia. Po dojściu warunku dodatkowego "jednocześnie wszystkie godziny były jej sumą", wystarczy niewielka zmiana w kodzie, by ostatni element był różnicą.
@mmmmmm napisales po poscie:
"jest problem, ponieważ suma tych wartości nie jest równa 1500"
ze zrozumiales a nadal sie odnosiles do pierwszego posta mimo ze w kolejnym byl UPDATE
Ja rozumiem ze twoj post kod byl odpowiedzia na pierwszy post. Chodzi o kolejne posty autora i twoj.
Ale nie zrozum mnie zle. Ja naprawde nie mialem na mysli nic zlego wspominajac o tobie. Ot chcialem pokazac autorowi jak bardzo miesza i ludzie podaja rozwiazania nie na to co chcial
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)