escaflowne
5.05.2003, 16:45:35
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
5.05.2003, 16:55:07
uniqid(); :PPP
Manual
www.php.net/uniqid
scanner
5.05.2003, 16:56:58
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]
5.05.2003, 22:35:17
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
6.05.2003, 10:04:58
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
6.05.2003, 10:25:18
To dlatego, że ja mało piwa piję, to mi nie zależy. Przykład [fisher]'a jest bardzo fajny
escaflowne
7.05.2003, 11:28:59
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]
7.05.2003, 11:33:05
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.