Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: losowa kolejność liczb
Forum PHP.pl > Forum > PHP
escaflowne
Witam!

Mam pewien problem, którego za *** nie mogę rozgryźć. Potrzebuję skryptu, który generował by liczby losowo, ale bez powtórzeń. Próbowałem z rand() ale zwraca liczby z powtórzeniami. Krótko mówiąc. Skrypt, jeżeli dostanie zadanie wygenerowania w losowej kolejności liczby od 1 do 50, to ma mi zwrócić 50 liczb, ułożonych losowo, gdzie każda liczba pojawi się tylko raz. :cry:
kicaj
uniqid(); :PPP

Manual
www.php.net/uniqid
scanner
1. utwórz tablicę 50-ciu pustych elementów.
2. wylosuj liczbę.
3. sprawdź czy liczba znajduje się w tablicy.
4. jeśli tak, idź do 2.
5. zapisz liczbę do tablicy.
6. zwiększ wskaźnik tablicy o jeden.
7. jesli wstaźnik <= 50 idź do 2
8. kup mi piwo.

P.S. Uczyli mnie tego w 6 klasie podstawówki chyba...
[fisher]
Kod
for($i=0;$i<=50;$i++){

    $tablica[]=$i;

}



shuffle($tablica);



for($i=0;$i<count($tablica);$i++){

    echo $tablica[$i]."<br>";

}


shuffle() tasuje tablice (oczywiscie bez powtarzania elementow)
uboottd
Cytat
1. utwórz tablicę 50-ciu pustych elementów.
2. wylosuj liczbę.
3. sprawdź czy liczba znajduje się w tablicy.
4. jeśli tak, idź do 2.
5. zapisz liczbę do tablicy.
6. zwiększ wskaźnik tablicy o jeden.
7. jesli wstaźnik <= 50 idź do 2
8. kup mi piwo.

P.S. Uczyli mnie tego w 6 klasie podstawówki chyba...


Przy takim algorytmie mozesz sie tego piwa nie doczekac do u*** smierci. Wystarczy mala zlosliwosc ze strony funkcji przypadkowej...
scanner
To dlatego, że ja mało piwa piję, to mi nie zależy. Przykład [fisher]'a jest bardzo fajny smile.gif
escaflowne
Może nieco ściślej:

Istnieje baza danych, z tablicą zawierająca linki do stron. Potrzebuję funkcji, która wyciągała by dane z bazy danych, a następnie, w sposób nie posortowany, wyrzucała je na ekran. A jak zrobię F5, to ma mi jeszcze raz wyświetlić wyniki, ale w innej niż poprzednio kolejności.
[fisher]
Cytat
Może nieco ściślej:

Istnieje baza danych, z tablicą zawierająca linki do stron. Potrzebuję funkcji, która wyciągała by dane z bazy danych, a następnie, w sposób nie posortowany, wyrzucała je na ekran.


zrob to na poziomie samej bazy, bedzie raz szybciej a dwa prosciej


dodaj do zapytania klauzule

Kod
order by rand()


i to wszystko
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.