Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Funkcja losująca, ale nie wszystkie liczby z przedziału.
Forum PHP.pl > Forum > Przedszkole
Szunaj85
Mam taki problem...
Żeby wylosować liczbę z jakiegoś przedziału wystarczy np. użyć funkcji rand() lub mt_rand().
To akurat nie jest problem. Jednak ja chcę napisać skrypt losoujący liczbę z przedziału -10, 10...
  1. mt_rand(-10, 10)
..., ale oprócz liczb -3, -2, -1, 0, 1, 2, 3. Jak coś takiego zrobić?
koderrr
dodajesz instrukcje warunkowa if
jesli wylosowana liczba nie odpowiada twoim wymaganiom to losujesz jeszcze raz : D

Szunaj85
Oczywiście mi też podobne rozwiązanie jako pierwsze przyszło do głowy. Ja jednak się zastanawiałem czy już w samej funkcji losującej nie dałoby się takiej reguły napisać. worriedsmiley.gif
Spawnm
http://pl2.php.net/array_rand
i tablica bez tych -3 itp.
sada
(2*(floor (rand (0.01,1.99)))-1) da liczbę 1 lub -1
floor(rand(4.01,10.99)) da liczby od 4 do 10
(2*(floor (rand (0.01,1.99)))-1)*floor(rand(4.01,10.99)) powinno dać co trzeba

i poniższy kod to udowadnia:

  1. <?php
  2. for($i=1;$i<100;$i++){
  3. $x=(2*(floor (rand (0.01,1.99)))-1)*floor(rand(4.01,10.99));
  4. echo $x.'<br />';
  5. }
  6. ?>
  7.  
Szunaj85
Sada właśnie o tego typu rozwiązanie mi chodziło. Wielkie dzięki i oczywiście POMÓGŁ dla ciebie. yahoo.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.