Ktoś coś jakieś interesujące stronki - najlepiej 'playgroundy' - z algorytmami, problemami itp. do zaimplementowania w ramach ćwiczeń? Może być z focusem na JAVĘ. Nie chodzi o naukę - chodzi o dobrą zabawę ( ͡° ͜ʖ ͡°)

#programowanie #java #algorytmy
  • 14
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Trochę zadanie programistyczne aby porównać mój wynik z tym co wymyślicie.

Pisząc pewien algorytm natrafiłem na potrzebę napisania funkcji, która będzie generowała taki ciąg:
2 2 3 2 2 3 2 2 3 4 2 2 3 2 2 3 2 2 3 4 2 2 3 2 2 3 2 2 3 4 2 2 3 2 2 3 2 2 3 4 5...
f(2) = wypisz 2 razy 2
f(n) = wypisz n razy
  • 52
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Wina_Segmentacji: co Wy macie z tymi elsami jak zaczynacie programować, z tymi klamrami, żeby tylko więcej napisać. Nie ładniej? Nie przejrzyściej? ( ͡° ͜ʖ ͡°)

void seq(int n){
for (int i = 0; i < n; ++i) {
if (n
  • Odpowiedz
Mirki, ważne pytanie:
Miałem w treści zadania: Wypisz wierzchołki grafu w kolejności w jakiej będą przetwarzane w alg. Djikstry

Miałem dość prosty graf, gdzie przejscie bylo jedno. Z wierzchołka połączonego z 4 innymi do jednego z nich (bo najkrótsza droga tędy prowadziła). Najkrotsza droga z A do G

Pytanie, czy PRZETWARZANE oznacza że każdy był sprawdzany, czy oznacza ścieżkę? Ogólnie to wypisałem wszystkie krawędzie (bo przecież djikstra musi wszystkie sprawdzić), bo logicznym dla mnei było,
Rabusek - Mirki, ważne pytanie:
Miałem w treści zadania: Wypisz wierzchołki grafu w ...

źródło: comment_zhCmCZKoga7JiQeIj3P4lVW9oLWAjvIP.jpg

Pobierz
  • 15
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Rabusek: Popatrz na stronkę, do której wysłałem link. Myślę, że jeśli chodzi o przetwarzanie wierzchołka, to z pewnością chodzi o ten, który zdejmujesz ze zbioru Q, dodajesz do zbioru S i sprawdzasz jego sąsiadów. Każda iteracja Dijkstry dotyczy jednego wierzchołka.
Rozumiem, że pewne zamieszanie może spowodować implementacja, np.: jeśli masz w jakiejś strukturze przedstawiającej wierzchołek również informacje, gdzie można z niego dojść i z jaką wagą, to teoretycznie "nie dotykasz"
  • Odpowiedz
@Rabusek:
zaczynasz od wrzucenia wierzchołka początkowego A do kolejki Q. Kolejka zawiera pary (wierzchołek, długość ścieżki) i jest posortowana po długości ścieżki:
Q = (A, 0)

Potem "przetwarzasz" wierzchołek A, pobierając go z kolejki i wrzucając wszystkich jego sąsiadów do kolejki:
Q = (G, 2) (D, 5) (C, 10)
  • Odpowiedz
Cześć, od wczoraj próbuję rozwiązać jeden problem. A mianowicie mam liczbę 32 bitową i tablicę trzy elementową [0,0,0].
Na podstawie danej liczby chciałbym w 2 losowych miejscach umieścić w tablicy jedynkę. Jak się za to zabrać?

Próbowałem coś z modulo, ale w taki sposób łatwo wstawić tylko pierwsza liczbę ze względu na to, że liczba%3, ale przez to że później są dwa miejsca musiałbym zrobić przez 2 = więc nigdy nie wypadnie
  • 31
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@sokytsinolop: Jeśli masz taki problem to rozwiązalbym go inaczej, bo tak masz znaleźć położenie jednego zera tak na prawdę... Ponieważ 0 może być na 3 pozycjach to operacja %3 i masz pozycje 0, pozostałe 2 pozycje wypełniasz 1...
  • Odpowiedz
#programowanie #algorytmy
Hej, jestem w trakcie pisania małego programiku, który miałby znajdować najkrótszą ścieżkę pomiędzy punktami A i B w grafie jednocześnie przechodząc przez wszystkie jego wierzchołki. Potrzebuje podpowiedzi jak byście do tego podeszli. Wiem o istnieniu algorytmów do znajdowania najkrótszych ścieżek pomiędzy punktami w grafie (Bellman, Dijkstra), ale na razie nie do końca potrafię dołożyć do tego twist w postaci przechodzenia przez wszystkie pozostałe punkty. Będę wdzięczny
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Ok, już znalazłem kilka haseł kluczowych, ale posta zostawiam w razie jakby ktoś tego kiedyś szukał.
-Shortest Hamiltonian path
-Problem komiwojażera (traveling salesman problem)
  • Odpowiedz
W 3 odcinku niebezpiecznikowego podcastu "Na Podsłuchu" pokazujemy jak oszukiwać algorytmy, big data i AI, czyli mechanizmy, które coraz częściej rządzą naszym życiem. Radzimy jak taniej latać i spać, zawsze mieć miejsce w taksówce i co zrobić, aby za free dostać 2 audiobooki oraz wyższe oprocentowanie na swoim rachunku (i niższą opłatę za domeny). Nigdy więcej "System nie pozwala" ;)

https://niebezpiecznik.pl/003

#niebezpiecznik #podcast #technologia #algorytmy
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Dlaczego ten kod

int count = 0;
for (int i = N; i > 0; i /= 2) { // tutaj jest chyba O(log(n))
....for (int j = 0; j < i; j++) {
........count += 1;
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@fefler: W pierwszej pętli i będzie wynosiło kolejno:
N, N/2, N/4, N/8 ....
Druga pętla wykona się dokładnie tyle razy ile wynosi i, czyli w sumie liczba obrotów wynosi:
N + N/2 + N/4 + N/8 + ... = N(1 + 1/2 + 1/4 + 1/8 + ...) ~ 2N
  • Odpowiedz
Polecam https://www.youtube.com/watch?v=ywWBy6J5gz8
Patrzyłem na ten kod, chwilę mi zajęło wywnioskowanie o co Ci chodzi, ale jest to całkiem proste.. Mylisz pojęcia, ponieważ zmienna left nie jest stałą o wartości 0, to samo dotyczy zmiennej right, która nie jest zawsze równa a.length -1. Cały sens quick sorta jest właśnie w tym, że gdy posortowana zostanie część tablicy, to póżniej jest ona już pomijana, zmieniają się granice sortowania left (i++) i right(j--). Poprawiając kod
  • Odpowiedz
Na rynku jest wiele stron czy aplikacji zajmujących się rozwiązywaniem równań. Tak jak zaprogramowanie rozwiązywania równania liniowego czy kwadratowego nie jest żadnym problemem, tak systemy te zaskakują wszechstronnością - radzą sobie z różnymi postaciami równań, wykładnikami, logarytmami etc. Stąd moje pytanie: czy istnieje jakaś dostępna dla ogółu biblioteka realizująca to zadanie (obliczenie rozwiązania równania jednej niewiadomej) albo opisany algorytm, który mógłbym spróbować sam zaimplementować? Będę wdzięczny za każdą pomoc ( ͡°
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@frogi16: przeczytałem to 5 razy i nie wiem o co pytasz. Ogólnie to nazywa się metody numeryczne. Rozwiązywanie całek równań różniczkowych itp etc dowolna akademicka książką i masz opisy algosow. A implementacja to małe miki
  • Odpowiedz