Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Losowanie liczb i suma tablicy
Forum PHP.pl > Forum > PHP
jamesdio
Mam taką funkcję:

  1. function losuj($ile_zmiennych,$max_sum,$max_num) {
  2. $tab=array();
  3. $suma=0;
  4. for($i=0;$i<$ile_zmiennych;$i++) {
  5. do {
  6. $tab[$i]=rand(0,$max_num);
  7. } while($max_sum<$suma+$tab[$i]+$ile_zmiennych-$i);
  8. $suma+=$tab[$i];
  9. }
  10. return $tab;
  11. }


Losuję w niej liczby gdzie określam następujące zmienne: ile ma być tych liczb ($ile_zmiennych), jaka ma być ich maksymalna suma ($max_sum) i jaka ma być maksymalna wartość pojedynczego losowania ($max_num).
I ta funkcja generalnie mi działa, ale chciałbym dodać jeszcze jeden warunek dotyczący sumy: żeby suma nie była mniejsza niż coś tam ($min_sum). I się zaciąłem w tym miejscu... Jakieś wskazówki?
prz3kus
Jeżeli chcesz min_sum to musisz coś zwarunkować:

1. pętla się wykonuje do czasu aż osiągnie min_sum

or

2. ustalasz ilość pętli,a precyzujesz min_num przy funkcji rand, aby przy losowaniach X dało osiągnąć się minimalną sum_min

or

3. zostawiasz jak masz i jeżeli nie osiągnie sum_min to nakacu dodajesz o brakującą ilość do najmniejszej minimalnej

Wszytko zależy jakie masz założenia, nie da się losować 10 razy po 1 i oczekiwać, że wyjdzie suma nie mniejsza 100 smile.gif
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.