Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Określony procent wylosowania liczby
Forum PHP.pl > Forum > Przedszkole
Dominator
Witam
Jak napisać skrypt, który ma 10% szans na wylosowanie liczby 50?
Michael2318
Sporo tego w sieci, wystarczy poszukać:
http://forum.php.pl/index.php?showtopic=126356
http://stackoverflow.com/questions/8806006...rcentage-chance
http://forums.phpfreaks.com/topic/161480-s...percent-chance/

EDIT:

Dorzucam też swoją funkcję - http://majkelo.pl/php-losowanie-liczby-z-o...owania,vp15.htm
czyli:

  1. function los_chance($to_chance, $chance, $from, $to)
  2. {
  3. $chance = intval($chance);
  4. $from = intval($from);
  5. $to = intval($to);
  6. $to_chance = intval($to_chance);
  7.  
  8. if ( $chance == 0 )
  9. {
  10. return rand($from, $to);
  11. }
  12.  
  13. $check_chance = rand(0, 100);
  14. $check_chance = ($check_chance <= $chance) ? TRUE : FALSE;
  15.  
  16. if ( $check_chance == TRUE )
  17. {
  18. return rand($from, $to);
  19. }
  20. else
  21. {
  22. return rand(($to_chance+1), $to);
  23. }
  24. }


gdzie:
$to_chance - do jakich liczb procent trafienia się odnosi,
$chance - procent trafienia,
$from - z jakiego przedziału ogólnie liczby mają być losowane,
$to - liczba zamykająca przedział.

Jak to ma działać - przykład:
  1. echo los_chance(7, 10, 0, 150);


Wypluje Ci liczbę, z przedziału 0-150, jednak procent trafienia dla liczb od 0* do 7 wynosi zaledwie 10%.
* - od zera dlatego, że w argumencie funkcji $from to właśnie zero.
timon27
Cytat(Michael2318 @ 15.03.2013, 22:45:29 ) *
Dorzucam też swoją funkcję


Mocno przekobinowałeś, jeśli Dominator chciał ten jeden przypadek to wystarczy mu:
  1. echo rand(50,59);


Michael2318
Cytat(timon27 @ 16.03.2013, 10:56:18 ) *
Mocno przekobinowałeś


Dodałem funkcję bardziej uniwersalną, dzięki czemu może dać dowolny procent dla dowolnych liczb. Jeśli jemu się to nie przyda (a w jakimś stopniu myslę, że na pewno pomoże) to może rozwiąże problem innych osób, które kiedyś trafią tu po wynikach wyszukiwania wink.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.