Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Losowanie wagowe w procentach, gdzie każda wartość ma swój procent..
Giluś
post
Post #1





Grupa: Zarejestrowani
Postów: 377
Pomógł: 9
Dołączył: 2.11.2010

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


Hej, potrzebuję zrobić losowanie wagowe.. posiadam takie wartości:

Kod
0.1 = 70%
0.2 = 70%
0.3 = 70%
0.4 = 70%
0.5 = 70%
0.6 = 50%
0.7 = 50%
0.8 = 50%
0.9 = 50%
1.0 = 50%
1.1 = 30%
1.2 = 30%
1.3 = 30%
1.4 = 30%
1.5 = 10%
1.6 = 10%
1.7 = 10%
1.8 = 5%
1.9 = 5%
2.0 = 5%


Znalazłem coś takiego do losowania liczb z przecinkiem:

  1. $min=0.1;
  2. $max=2.0;
  3. $liczba=rand(pow(10,1)*$min,pow(10,1)*$max)/pow(10,1);
  4. echo $liczba;


Ale teraz jak wylosować daną liczbę z odpowiednią jej "wagą" ?


Pozdrawiam i z góry bardzo dziękuje za pomoc (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Giluś
post
Post #2





Grupa: Zarejestrowani
Postów: 377
Pomógł: 9
Dołączył: 2.11.2010

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


Dzięki, za poprawę (IMG:style_emoticons/default/smile.gif)

Troszkę mnie naprowadziłeś, ale to miało wyglądać całkowicie inaczej, zamieszkam kod który raczej działa tak jak należy, ewentualnie jak coś znajdziesz to może poprawić (IMG:style_emoticons/default/smile.gif)
Ale na takiej zasadzie miało to mniej więcej działać (IMG:style_emoticons/default/smile.gif)
  1. <?php
  2.  
  3. $min=0.1;
  4. $max=2.0;
  5. $liczba=rand(pow(10,1)*$min,pow(10,1)*$max)/pow(10,1);
  6.  
  7. $tablica = array();
  8. $tablica['0.1'] = '70';
  9. $tablica['0.2'] = '70';
  10. $tablica['0.3'] = '70';
  11. $tablica['0.4'] = '70';
  12. $tablica['0.5'] = '70';
  13.  
  14. $tablica['0.6'] = '50';
  15. $tablica['0.7'] = '50';
  16. $tablica['0.8'] = '50';
  17. $tablica['0.9'] = '50';
  18. $tablica['1.0'] = '50';
  19.  
  20. $tablica['1.1'] = '30';
  21. $tablica['1.2'] = '30';
  22. $tablica['1.3'] = '30';
  23. $tablica['1.4'] = '30';
  24.  
  25. $tablica['1.5'] = '10';
  26. $tablica['1.6'] = '10';
  27. $tablica['1.7'] = '10';
  28.  
  29. $tablica['1.8'] = '5';
  30. $tablica['1.9'] = '5';
  31. $tablica['2'] = '5';
  32.  
  33. $procent = $tablica[''.$liczba.''];
  34.  
  35. $losuj = rand(1, 100);
  36. if($losuj <= $procent) {
  37. echo $liczba;
  38. }
  39. else {
  40. echo '0.0';
  41. }



Pozdrawiam i z góry dziękuje (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 15.10.2025 - 11:16