![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 1.11.2012 Ostrzeżenie: (0%) ![]() ![]() |
Potrzebuję losować liczby z przedziału od 1 do wpisanej z formularza. W wierszu już się nie powtarzają, ale mam problem aby zrobić aby w kolumnie też się nie powtarzały. Mój kod wygląda tak.
Może podpowie ktoś jak to zrobić. Fragment kodu losującego znalazłem na necie (chyba na tym forum) i dobrze się sprawdza. Ten post edytował znajomy1 15.11.2012, 11:15:12 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
A nie prościej byłoby zrobić "od końca"?
1, Wybierasz liczbę. 2. Tworzysz tablicę gotową od 1 do n 3. Mieszasz ją. 4. Wstawiasz jako pierwszy wiersz tablicy. Kolejne kroki są zależne od implementacji... Ja widze conajmniej 2 pomysły. Jeden bardziej kosztowny obliczeniowo, drugi - pamięciowo. Pierwszy: Bierzesz znowu wiersz z danymi i sprawdzasz czy we wszystkich wierszach "powyżej" (z tym samym indeksem kolumny) występuje aktualnie pierwszy w tablicy. Jeśli nie - wkładasz do macierzy i usuwasz go z tablicy oraz przesuwasz się do następnej kolumny. Jeśli jest już "wyżej" to "przekładasz" element na koniec i znów sprawdzasz. Tak do końca wiersza i ostatecznie macierzy ![]() Drugi: Bierzesz i zapisujesz "na boku" co zawiera każda z kolumn (dokładasz element do okreslonej "kolumny" gdy może być włożony na dane miejsce) i porównujesz czy aktualnie pierwszy na liście jest w niej i w razie czego reagujesz odpowiednio Optymalizacje są możliwe. Przypuśćmy możesz zaoszczędzić pamięć poprzez tworzenie kolumny "w locie", a cykle procka zaoszczędzisz poprzez zamianę przesuwania elementu na koniec na różnicę własnej tablicy możliwych do włożenia z kolumną liczb "powyżej". To ostatnie jest warte rozważenia, gdyż im dalsze wiersze, tym liczba prawdopodobnych "nie trafień" (i tym samym przewijań) bedzie do pewnego momentu się mocno zwiększać. -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 1.11.2012 Ostrzeżenie: (0%) ![]() ![]() |
A mógłbyś napisać mi właśnie jak mógłbym sprawdzić czy w danej kolumnie w wierszu powyżej nie ma tej wylosowanej cyfry? Nie wiem właśnie jak mam porównywać te wyniki. Pozdrawiam
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Nie dam gotowego kdu jak to zrobić, bo jest to proste. Wskażę Ci podejście
![]() -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 9.05.2025 - 14:44 |