Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] funkcja rand() i sprawdzanie istnienia wygenerowanej liczby, generowanie kilku takich samych liczb
mpps
post
Post #1





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 14.03.2003
Skąd: Szczecin

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


witam,
mam taką zagwozdkę:
  1. <?php
  2. function generate(){
  3. $i = 0;
  4. $maxilliczb = 5;
  5. while($i < $maxilliczb){
  6. echo rand(1, 100);
  7. $i++;
  8. }
  9. }
  10. generate();
  11. ?>

chcę sprawdzić, czy wśród wygenerowanych liczb losowych są takie, które się powtarzają i jeśli się powtarzają, to powtórzyć generowanie (dla uproszczenia wszystkich liczb, bo sprawa by się skomplikowała, gdyby dana liczba powtórzyła się np. ... 5 razy, czyli maksymalną ilość generowanych liczb winksmiley.jpg ).

wydaje mi się, że powinienem dodać wygenerowane liczby do jakiejś tablicy i w niej porównać wyniki, po czym wykonać akcję.

nie bardzo potrafię sobie poradzić z częścią zadania dotyczącą porównania liczb.
może ktoś z Was ma jakiś pomysł?
może się tym pomysłem podzieli? guitar.gif

pozdrawiam
m


--------------------
www.mpps.pl
park maszynowy: apache 2.2.22 | php 5.4.0 | MySQL 5.0.10 | phpMyAdmin 3.5.0 | notepad ++ | pilsner urquell
Go to the top of the page
+Quote Post
nospor
post
Post #2





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




wrzuc zbior liczb z ktorych bedziesz losowal do tablicy (range()), a nastepnie array_rand() - zwraca bez powtarzania


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

"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
b_chmura
post
Post #3





Grupa: Zarejestrowani
Postów: 813
Pomógł: 34
Dołączył: 18.03.2007
Skąd: o stamtąd

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


  1. <?php
  2. $ile  = 5; // ile cyfr
  3. $od = 1; $do = 50; // przedział
  4.  
  5. $range = range($od, $do);
  6. $rand = array_rand($range, $ile);
  7.  
  8. foreach($rand as $key)
  9. {
  10. echo $range[$key].', ';
  11. }
  12. ?>
Go to the top of the page
+Quote Post
mpps
post
Post #4





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 14.03.2003
Skąd: Szczecin

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


bardzo dziękuję za pomoc.

dla usystematyzowania, dlaczego akurat ta tablica i ta funkcja:

range() - tworzy nam tablicę zawierającą przedział elementów
array_rand() - wybiera losowe elementy z tablicy i ma taką właściwość, że dany element może wybrać tylko raz?
nigdzie tego nie znalazłem w opisie funkcji...


--------------------
www.mpps.pl
park maszynowy: apache 2.2.22 | php 5.4.0 | MySQL 5.0.10 | phpMyAdmin 3.5.0 | notepad ++ | pilsner urquell
Go to the top of the page
+Quote Post
b_chmura
post
Post #5





Grupa: Zarejestrowani
Postów: 813
Pomógł: 34
Dołączył: 18.03.2007
Skąd: o stamtąd

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


a szukałeś?

- range
- array_rand
Go to the top of the page
+Quote Post
mpps
post
Post #6





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 14.03.2003
Skąd: Szczecin

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


Cytat(b_chmura @ 6.05.2008, 15:10:28 ) *
a szukałeś?

- range
- array_rand


tak - napisałem, że nie znalazłem takiej informacji w opisie funkcji, a nie opisu funkcji


--------------------
www.mpps.pl
park maszynowy: apache 2.2.22 | php 5.4.0 | MySQL 5.0.10 | phpMyAdmin 3.5.0 | notepad ++ | pilsner urquell
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 Aktualny czas: 22.08.2025 - 03:27