Skocz do zawartości

Przeszukaj forum

Pokazywanie wyników dla tagów 'algorytmy'.

  • Szukaj wg tagów

    Wpisz tagi, oddzielając przecinkami.
  • Szukaj wg autora

Typ zawartości


Forum

  • Ogólne
    • Serwis & Regulamin
    • Organizacja
    • Equestria Times
    • Zapisy/Eventy
    • Projekty
    • Na start...
  • My Little Pony
    • Generacje 1-3
    • "Friendship is Magic" (Generacja 4)
    • Generacja 5
    • Equestria Girls
  • Twórczość fanów
    • Opowiadania wszystkich bronies
    • Original/Own Characters - czyli postaci użytkowników
    • Prace graficzne
    • Filmy, muzyka, parodie....
    • Inne...
    • Archiwum Dzieł
  • Kinematografia
    • Filmy i seriale
    • Animacje
  • Orient
    • Anime&Manga
    • Azja
  • Nauka i Technologia
    • Filozofia
    • Motoryzacja
    • Wszystko o komputerach
  • Zakątek Przyrodniczy
    • Wszystko o Naturze
    • Rośliny
    • Zwierzęta
  • Strefa Gracza
    • Multiplayer Online Battle Arena
    • Gry muzyczne
    • Gry Sportowe
    • Gry Strategiczne
    • Sandbox
    • MMORPG i RPG
    • Strzelanki etc.
    • Konsole
    • Steam
    • O grach ogólnie
    • Archiwum gier
  • Wymiar Discorda
    • Nasze zainteresowania
    • Off-topic
    • Humor
    • Książki
    • Muzyka
  • RPG/PBF
    • Organizacja
    • Dungeons & Dragons
    • Neuroshima
    • Świat Mroku
    • Warhammer
    • LGR
    • Arena Magii
  • Inne
    • Forumowe Archiwa
    • Kosz

Kalendarze

  • Zagraniczne
  • Dolnośląskie
  • Kujawsko-Pomorskie
  • Lubelskie
  • Lubuskie
  • Łódzkie
  • Małopolskie
  • Mazowieckie
  • Opolskie
  • Podkarpackie
  • Podlaskie
  • Pomorskie
  • Śląskie
  • Świętokrzyskie
  • Warmińsko-Mazurskie
  • Wielkopolskie
  • Zachodniopomorskie
  • Ogólnopolskie

Szukaj wyników w...

Znajdź wyniki...


Data utworzenia

  • Rozpocznij

    Koniec


Ostatnia aktualizacja

  • Rozpocznij

    Koniec


Filtruj po ilości...

Data dołączenia

  • Rozpocznij

    Koniec


Grupa


Strona www


Yahoo


Jabber


Skype


Facebook


Instagram


Snapchat


Miasto


Zainteresowania


Ulubiona postać

Znaleziono 1 wynik

  1. Przenoszę to z wątku o spotkaniach w Warszawie, żeby nie robić spamu. Na początek ciekawostka, która niszczy system (czyli powinno się spodobać Chemikowi): https://www.destroyallsoftware.com/talks/wat Na ostatnim spotkaniu ktoś coś mówił o rekurencji w trójkącie pascala. Spróbuj tak: /* row - row number, starting from 1, pos - position in a row, starting from 1 */ unsigned long long pascal(int row, int pos) { if ((row < 1) || (pos <1) || (row < pos)) { return 0ul; } if ((pos == 1) || (pos == row)) { return 1ul; } return pascal(row-1, pos-1) + pascal(row-1, pos); } Problem w tym, że czas wykonania tej funkcji będzie posnął wykładniczo i dlatego to nie jest dobre rozwiązanie tego problemu. Hm, może powinienem na to założyć osobny wątek. Odpowiedź: Dziękuję, że piszesz. To ja pytałem o ten Trójkąt Pascala (w realu nazywam się Witek - jestem jedną z nielicznych osób, które były w sobotę u Arpegiusa i to ja męczyłem Ciebie wtedy na meecie w Lisopadzie). Problem polega na tym, że kod ma być w Pythonie lub Logo, a nie w C++. Moja odpowiedź: Po pierwsze napisałem, że to jest tak naprawdę źle, bo za długo będzie liczyć, wielokrotnie wykonując pascal() dla tych samych argumentów. Lepsze rozwiązanie wykorzystuje tablicę trójkątną do memoizacji. Przy czym nawet tego nie kompilowałem, więc pewnie gdzieś jest błąd. Aha i to nie jest odporne na wątki, do tego memory musiałoby być parametrem funkcji pascal_rec. unsigned long long *memory = NULL; // For memoization. static unsigned long long pascal_rec(int row, int pos); // Recursive helper function /* row - row number, starting from 1, pos - position in a row, starting from 1 */ unsigned long long pascal(int row, int pos) { if ((row < 1) || (pos <1) || (row < pos)) { return 0ul; } // Stupid values if ((pos == 1) || (pos == row)) { return 1ul; } // Trivial problem /* An even better solution would be to keep memory, resize it with realloc and fill as needed, but let's keep it simple and stupid. */ memory = calloc(((row-1)*(row-2))/2, sizeof(unsigned long long)); if (memory == NULL) { return 0; } unsigned long long ret = pascal_rec(row-1, pos-1) + pascal_rec(row-1, pos); free(memory); memory = NULL; return ret; } static inline ind(int row, int pos) // Compute index in memory { return (row*(row-1)/2) + (pos-1); } static unsigned long long pascal_rec(int row, int pos) { if (memory[ind(row,pos)] != 0) // Advantage of memoization - cutting off recursive calls on the same arguments as in the past. { return memory[ind(row,pos)]; } if ((pos == 1) || (pos == row)) // Trivial problem { memory[ind(row,pos)] = 1ul; } else { memory[ind(row,pos)] = pascal_rec(row-1, pos-1) + pascal_rec(row-1, pos); // Use recursion, but store intermediate results in memory } return memory[ind(row,pos)]; } Ugh, ale ten edytor tekstu jest toporny. A na inne języki programowania to sam sobie przetłumacz. Tutaj jest tylko idea. To teraz problem ode mnie: Mamy tablicę n-1 elementową z unikatowymi wartościami od 0 do n-1 (albo jak kto woli od 1 do n). To znaczy że są w niej wszystkie liczby z podanego zakresu, za wyjątkiem jednej. Znajdź tę brakującą liczbę.
×
×
  • Utwórz nowe...