Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Suma rand - dzielenie
knypraca
post 20.11.2016, 16:06:25
Post #1





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 9.11.2014

Ostrzeżenie: (0%)
-----


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. }
Go to the top of the page
+Quote Post
trueblue
post 20.11.2016, 16:16:41
Post #2





Grupa: Zarejestrowani
Postów: 6 767
Pomógł: 1824
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


http://stackoverflow.com/questions/7289136...with-sum-of-100


--------------------
Go to the top of the page
+Quote Post
rafkon1990
post 20.11.2016, 16:22:57
Post #3





Grupa: Zarejestrowani
Postów: 37
Pomógł: 9
Dołączył: 14.09.2016
Skąd: Śląskie

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
knypraca
post 20.11.2016, 16:45:59
Post #4





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 9.11.2014

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 12.06.2024 - 14:53