Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> mt_rand(), Liczby zmiennoprzecinkowe.
tiramizu
post 5.06.2006, 22:38:55
Post #1





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 14.07.2005

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


Mam takie proste pytanko. Chcę generować losowo liczby z zakresu X, Y. Używam do tego funkcji mt_rand(). Pytanie jest takie, czy jest możliwość wybrania losowo jakiś liczb z jakiegoś przedziału. Ale chodzi mi o liczby zmiennoprzecinkowe ? Domyślnie dla mt_rand() jest typ int. Czy jest możliwośc zrobić coś takiego dla liczb zmiennoprzecinkowych ?
Go to the top of the page
+Quote Post
nospor
post 5.06.2006, 22:46:00
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




widze ze juz pozno i pokombinowac sie nie chce winksmiley.jpg
  1. <?php
  2. $zm = (float)(mt_rand(10,20).'.'.mt_rand(0,100));
  3. echo $zm;
  4. ?>

Prosze poprawic tytul o znacznik zgodnie z zasadami forum przedszkole


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
erix
post 5.06.2006, 22:47:21
Post #3





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Nie wiem za bardzo...
Do glowy przychodzi mi wygenerowanie wiekszej liczby, np. 12345678, konwersja na string, wstawienie w pewnym miejscu kropki (123.45678) i konwersja na float.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
cyphelf
post 5.06.2006, 23:09:12
Post #4





Grupa: Zarejestrowani
Postów: 68
Pomógł: 1
Dołączył: 27.03.2006

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


Najlepiej będzie wylosować liczbę, a następnie rzutować ją na przedział od 0 do 1 przez podzielenie jej przez maksymalną wartość liczby losowej. Wtedy mając losową liczbę z tego przedziału jesteśmy w stanie rzutować to na dowolny inny przedział.

Na przykład tu wylosujemy liczbę zmiennoprzecinkową z przedziału (-1,1):

Zmieniąjąc wartości zmiennych $start i $koniec można otrzymać dowolne losowe liczby.

  1. <?php
  2.  
  3. $start = -1;
  4. $koniec = 1;
  5.  
  6. $rand = mt_rand()/mt_getrandmax();
  7.  
  8. echo ($rand*($koniec-$start))+$start;
  9. ?>


Jeśli chcemy wylosować liczbę z przedziału od 0 do 1 to wystarczy to zrobić tak:

  1. <?php
  2.  
  3. ?>


--------------------
lorem ipsum : polska społeczność zend framework
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 20.07.2025 - 11:34