Algorytmy na poziomie "podstawówki"

0

Cześć. Jestem na studiach I semestru i w ramach zadania domowego mamy zaprezentować (w pseudokodzie lub w jednym z wielu języków programowania) mamy zaprezentować kilka dowolnych algorytmów. Prostych, nie jakichś wyrafinowanych typu quick sort. Sami sobie mamy wymyślić które algorytmy chcemy zaprezentować.

A więc zrobiłem algorytm rekurencyjny wyznaczający ruchy skoczka szachowego tak aby odwiedził każde pole samemu.
Zrobiłem iteracyjnie sprawdzajke problemu 8 queens problem zwracające true/false.
Zrobiłem odwracanie tablicy rekurencyjnie i iteracyjnie. (tak, wiem że są już gotowe funkcje/metody do tego ale właśnie celem ćwiczenia jest wynajdowanie koła na nowo, o to w tym chodzi)
Zrobiłem pseudoalgorytm sprawdzający czy liczba jest liczbą pierwszą.

Chciałbym jeszcze z 2-3 zrobić. Możecie podać jakiś prosty algorytm który mógłbym zrobić? Ogólnie chodzi o to że chciałbym potrafić zrobić to samemu w ogóle nie googlując nic. I nie chciałbym aby było trudniejsze od tych prostych co podałem wyżej.

Proszę o przeniesienie do Newbie jeśli zły dział.

1

Algorytm Euclidesa, squaring exponentiation, sprawdzanie cyklu w linked liście w zerowej pamięci, permutacje, Sito Erastotenesa....

0

Quicksort wyrafinowany :D

Jak pierwszy semetr to zapewne macie sporo matmy może jakieś algorytmy do operacji na macierzach? albo struktury danych drzewa? BST? RBT? B+ masa tego jest jak nie znasz wybierasz jakieś drzewo czytasz jakie musi zasady spełniać i sam wymyslasz np. jak poprawnie wstawiać do niego elementy skoro chcesz samemu pokombinować. Do tego algorytmy grafowe zaczynając od czegoś w rodzaju najkrótszej ściezki, aż po kolorowanie grafu.

0

Prosty to jest schemat Hornera ;)

0
  • greatest common divisor
  • permutations / combinations / variations
  • square and multiply
  • matrix multiplication
  • matrix determinant
0
  • fibonacci z memoizacją
  • top n select - quick select ~O(n)
  • array shuffle O(n)
0

Jeśli chcesz coś oryginalnego, to proszę. Masz dwa elementy o wartości a i b. Możesz je połączyć szeregowo, co da Ci równoważny element o wartości c = a + b, lub równolegle a wtedy takie połączenie jest równoważne odwrotności 1/c=1/a+1/b. Otrzymane połączenie możesz traktować jako element c, który znowu możesz łączyć z innymi na oba sposoby. Napisz algorytm wyznaczający jaka jest potrzebna minimalna liczba n jednakowych elementów o wartości a aby otrzymać wartość c, przy czym a i c są liczbami naturalnymi > 0. Przykład: dla elementów o a = 3 i c = 2 potrzeba n = 3 elementów: 1/c = 1/a + 1/(a+a) = 3/6 => c = 6/3 = 2

0

To ja dorzucę do listy:

  • szybkie potęgowanie
  • dzielenie modulo
0

dla dowolnej funkcji dobieramy dowolne liczby a,b takie ze f(a) < 0 oraz f(b)>0. Obliczaj srednie dla tych liczb dopoki nie trafisz na miejsce zerowe funkcji (z dokladnoscia dajmy na to 0.00000000000001). Rozwiazanie ma dzialac dla dowolnej funkcji, wiec poczytaj o First Order Function. Powodzenia :)

1

Rozwiąż równanie Keplera. Brzmi strasznie, ale jest bardzo proste, na dodatek można je rozwiązać na kilka sposobów.

0
  • merge sort jest bardzo prostym algorytmem
  • bucket sort tak samo
  • kalkulator RPN?

1 użytkowników online, w tym zalogowanych: 0, gości: 1