![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 8.02.2009 Skąd: Wola Filipowska Ostrzeżenie: (0%) ![]() ![]() |
Witam!
W jaki sposób wygenerować zestaw liczb z przedziału np. 1 do 500 tak aby nie powtarzały się? Używam do tego pętli i funkcji rand(), ale niestety liczby dość często się powtarzają. |
|
|
![]()
Post
#2
|
|
![]() Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
-------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Wciskasz do tablicy te liczby i sprawdzasz przez in_array" title="Zobacz w manualu PHP" target="_manual, czy już jest.
Albo poszukaj implementacji wariacji bez powtórzeń. -------------------- ![]() 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! |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 575 Pomógł: 299 Dołączył: 26.03.2009 Ostrzeżenie: (20%) ![]() ![]() |
http://www.google.pl/search?hl=pl&clie...php&spell=1
Ten post edytował Wicepsik 20.06.2009, 17:12:38 -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 444 Pomógł: 79 Dołączył: 26.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
Wciskasz do tablicy te liczby i sprawdzasz przez in_array" title="Zobacz w manualu PHP" target="_manual, czy już jest. Albo poszukaj implementacji wariacji bez powtórzeń. lepiej najpierw wypelnic tablice liczbami i losowac element i wycinac go (kolejne losowania maja miejsce na pozostalych) -------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
a może zrobić tablicę , potem shuffle" title="Zobacz w manualu PHP" target="_manual i wyświetlić pierwsze x znaków
ew. array_rand" title="Zobacz w manualu PHP" target="_manual tylko nie pamiętam czy wyniki mogą się powtarzać ... |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 295 Pomógł: 9 Dołączył: 8.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
lepiej najpierw wypelnic tablice liczbami i losowac element i wycinac go (kolejne losowania maja miejsce na pozostalych) ale tu dochodzi problem tego, że jak wytniesz coś ze środka musisz wszystko przesunąć a to strata czasu i zasobów. Prostym rozwiązaniem jest wylosowanie liczby, i wrzucenie do $tablica[$i] następnie wylosowanie i sprawdzenie z $tablica za pomocą in_array(). jeśli się powtarza losować dalej, jak się nie powtarza wrzucić do tablicy $tablica[$i+1] |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 389 Pomógł: 141 Dołączył: 11.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Kod $los = range(1, 500); //zakres
shuffle($los); //miesza $liczby = array_slice($los, 0, 30); // Ilość liczb do wyświetlenia print_r($liczby); |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 1 575 Pomógł: 299 Dołączył: 26.03.2009 Ostrzeżenie: (20%) ![]() ![]() |
Niestety, twój sposób nie działa ![]()
Kod 1 8 8 7 6 3 4 2 10 9 kodzik
-------------------- |
|
|
![]()
Post
#10
|
|
![]() Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
mt_rand to takie lepsze rand, rzadziej się liczby powtarzają zaraz po sobie czyli 11233.
Wicepsik, z tym array_rand sprawdzałeś , jednak się nie powtarzają ? ![]() |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 1 575 Pomógł: 299 Dołączył: 26.03.2009 Ostrzeżenie: (20%) ![]() ![]() |
mt_rand to takie lepsze rand, rzadziej się liczby powtarzają zaraz po sobie czyli 11233. Wicepsik, z tym array_rand sprawdzałeś , jednak się nie powtarzają ? ![]() Zawsze testuje kody które podaję na forum ![]() -------------------- |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 392 Pomógł: 7 Dołączył: 11.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Może ten skrypt ci podpasuje.
![]()
Ten post edytował Szunaj85 20.06.2009, 21:47:09 -------------------- Jeśli Ci pomogłem wciśnij
![]() ![]() |
|
|
![]()
Post
#13
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
~Szunaj85, gdybyś zerknął nieco wcześniej, zobaczyłbyś że ten kod już jest...
Nie przesadzajmy, już jest tyle rozwiązań, wystarczy... -------------------- ![]() 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! |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 8.02.2009 Skąd: Wola Filipowska Ostrzeżenie: (0%) ![]() ![]() |
Dziękuję wszystkim za pomoc, array_rand jednak dał radę
![]() Pozdrawiam! |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 27.04.2025 - 08:33 |