Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] losowosc liczb
Forum PHP.pl > Forum > Przedszkole
Tt
Mam dziesiec liczb
1=1
2=6
3=2
4=1
5=2
6=1
7=3
8=2
9=7
10=4

i teraz chce wylosowac 5 liczb z najwiekszym licznikiem po znaku = zeby mialy wiekszy priorytet przed tymi z mniejszym. Dzieki za wasza pomoc
Damonsson
Bardzo fajny pomysł, liczę, że się uda, powodzenia.
ctom
@Damonsson to było dobre smile.gif - sarkazm level 9999

Kshyhoo
Cytat(Tt @ 15.12.2013, 22:18:50 ) *
Mam dziesiec liczb
1=1
2=6
3=2
4=1
5=2
6=1
7=3
8=2
9=7
10=4

i teraz chce wylosowac 5 liczb z najwiekszym licznikiem po znaku = zeby mialy wiekszy priorytet przed tymi z mniejszym. Dzieki za wasza pomoc

Nie wiem, czy dobrze kumam, ale można by to tak:
  1. $t[]=1;
  2. $t[]=6;
  3. $t[]=2;
  4. $t[]=1;
  5. $t[]=2;
  6. $t[]=1;
  7. $t[]=3;
  8. $t[]=2;
  9. $t[]=7;
  10. $t[]=4;
  11.  
  12. rsort($t); // sortuje malejąco
  13.  
  14. for ($i=0; $i<5; $i++) {
  15. echo "$t[$i]<br />";
  16. }

Twoje liczby po znaku = ładujesz do tablicy, sortujesz od największej i wyświetlasz pięć największych. Nie ma tu losowania, bo nie ma z czego losować. Gdyby było więcej liczb, można się pobawić w losowanie...
Tt
Liczby to te pierwsze to po znaku = to priorytet od losowania dzieki za odpowiedz ale to nic nie zmienia potrzebuje losowania liczb uwzgledniajac priorytet
Kshyhoo
:baaasmiley:To w takim razie szukaj rozwiązania pod hasłem "losowanie wg wag". Masz tu przykład:
  1. $t = array(
  2. "pozycja 1"=>1,
  3. "pozycja 2"=>10,
  4. "pozycja 3"=>2,
  5. "pozycja 4"=>2,
  6. "pozycja 5"=>6
  7. );
  8.  
  9. foreach($t as $pozycja=>$waga) {
  10. for($i=0;$i<$waga; $i++) $tab[] = $pozycja;
  11. }
  12.  
  13. srand((double) microtime()*1000000);
  14. shuffle($tab);
  15. echo $tab[0];
Tt
Dzieki to je to
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.