Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Określony procent wylosowania liczby
Dominator
post
Post #1





Grupa: Zarejestrowani
Postów: 565
Pomógł: 15
Dołączył: 11.10.2010

Ostrzeżenie: (20%)
X----


Witam
Jak napisać skrypt, który ma 10% szans na wylosowanie liczby 50?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Michael2318
post
Post #2





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

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


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.

Ten post edytował Michael2318 15.03.2013, 23:41:14
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: 5.10.2025 - 12:27