Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Suma rand - dzielenie
Forum PHP.pl > Forum > Przedszkole
knypraca
Witam!
Posiadam funkcję rand
  1. if ($mies == '05') {
  2. $min = 50;
  3. $max = 100;
  4. $random = rand($min,$max);
  5. echo " $random";
  6. }

Załóżmy, że random wychodzi 70.
Jak zrobić by suma 70 była podzielona na wszystkie dni miesiąca też randomowo? (nie chodzi mi o 70/31)
Czyli np dzien 1 - 5
dzien 2 - 2
dzien 3 - 7
itd by łączna suma ze wszystkich dni była równa 70.
  1. $max = $_POST['zdychymax'];
  2. $min = $_POST['zdychymin'];
  3. $dni = $_POST['dni'];
  4.  
  5. echo "<tr><td>Dzień miesiąca</td><td>Ilość kg</td></tr>";
  6. for( $x = 1; $x <= $dni; $x++ ) {
  7. $random = rand($min,$max);
  8. echo "<tr><td>$x</td><td>$random kg</td></tr>";
  9. }
rafkon1990
Algorytmów do zaimplementowano jest pełno. Możesz np. wylosować 31 liczb, policzyć ich sumę, gdy suma jest za mała: do najmniejszej liczby dodajesz np. 1. Powtarzasz operacje aż do osiągnięcia wyznaczonej sumy. Gdy suma za duża, to podejmujesz od największej liczby np. 1 aż do osiągnięcia potrzebnej sumy. Po każdej operacji dodania/odejmowania oczywiście licztsz sumę od nowa, w pętli. To jeden z prostszych do zaimplementowania algorytmów.
knypraca
Dziękuję za pomoc smile.gif
Mogłem to zrobić tak ale jednak uznałem, że szybciej będzie najpierw wygenerować tabelkę z losowymi danymi, zliczyć je i podstawić w miejsce gdzie miał być i tak random smile.gif
W sumie to bez różnicy dla mnie co pierwsze będzie randomowo więc obszedłem inaczej.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.