Mirki, potrzebuję pomocy w wymyśleniu algorytmu. Trzy dni nad tym myślę i do niczego sensownego nie doszedłem. Problem jest dość skomplikowany, nie chcę go przedstawiać abstrakcyjnie więc wymyśliłem taki przykład, który pozwala bez problemu zrozumieć o co chodzi.

Dany jest graf spójny, który reprezentuje jakiś duży obszar. Każdy węzeł grafu odpowiada miejscowości, natomiast krawędź między dwoma węzłami oznacza, że miejscowości są bezpośrednio połączone drogą.

W każdej miejscowości może stać szpital, szkoła albo żadne
  • 20
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Onoki: @prusi: Dla samego szpitala ten problem nazywa się problemem minimalnego zbioru dominującego. Już jako taki jest problemem NP-trudnym. Ty chcesz znaleźć dwa rozłączne zbiory dominujące, których suma elementów jest jak najmniejsza, czyli coś jeszcze trudniejszego :). Możesz poczytać o zbiorach dominujących i algorytmach, które je szukają. Dzięki temu wymyślisz coś co rozwiąże twój problem, ale na pewno nie w czasie wielomianowym. Nie ma się jednak co załamywać,
  • Odpowiedz
w sumie to #programowanie #onp #algorytmy

W sumie prędzej czy później musiało to się zdarzyć. Jak odróżnić (w możliwie prosty ale skuteczny sposób) '-' od '-'. Chodzi mi o odróżnienie unarnego minusa (negacji) od odejmowania. A dokładnie chodzi mi o to, czy są na to jakieś sprawdzone metody, do których widocznie nie dotarłem czy trzeba samodzielnie się z tym uporać. Może macie jakieś wskazówki? W sumie
  • 21
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Hej, specjaliści od ekonomii i statystyki. Myślę, że to dość podstawowe dla Was pytanie. Mam zestaw danych historycznych, jak wyliczyć przyszłą tendencję? Przykładowo: ktoś wszedł na stronę 150 razy dwa tygodnie temu, 100 razy w zeszłym tygodniu, 80 razy w tym tygodniu, czy jest jakieś proste do zaimplementowania rozwiązanie mówiące ile wejść będzie w przyszłym tygodniu i czy tendenja jest spadkowa lub wzrostowa? (PS. funkcje liniową z dwóch ostatnich danych sam sobie
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@uirapuru: rzuciłem tak tym wygładzaniem, bo z tego co wiem, nadaje się do badania tendencji i tyle mi wiadomo ;p - dogłębnie zajmowałem się innymi metodami, ale one są trochę zbyt złożone. W sumie, to nie wiem, czy ta jest prostsza, ale może gdzieś istnieje gotowy kod ('exponential smoothing').

Jak Ci specjalnie nie zależy na dokładności, to może po prostu daj linię trendu po najmniejszych kwadratach... zwłaszcza, jeśli nie zamierzasz
  • Odpowiedz
@uirapuru: opisujesz chyba klasyczną MNK. Ale stary naprawdę nie wiem po co ci to, każda metoda, mniej czy bardziej złożona, stanowi ekstrapolację już obecnego trendu i takie prognozy nie maja kolosalnej wartości, chyba ze jestes quantem który na tym zarabia
  • Odpowiedz
Potrzebuję przenieść całkiem spory arkusz Excela (ok 20tyś wierszy x 20 kolumn) do MySQL. Zaprzęgnąłem do tego #php z biblioteką PHPExcel i o ile odczyt tego trwa parę do parunastu sekund o tyle późniejsze zapytanie PDO zarzyna mi pamięć w kompie (2GB). Oczywiście mam odblokowane w php.ini użycie pamięci, bo bez tego to 128MB siada niemal od razu. Odpada przenoszenie Excela bezpośrednio do MySQL, bo muszę porównywać rekordy i robić
  • 25
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

wie ktoś może, jak zrealizować taką strukturę danych (jakieś drzewo), na którym mozna by wykonywać operacje:

* zwiększam obciążenie wszystkich elementów przedziału (a, b) o 1

* zwracam liczbę elementów przedziału (a, b) większych od jakiegoś k (z góry ustalonego)

Operacje
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@kuhar: to właśnie jest z OIa, tyle że zeszłorocznego (i nie ma jeszcze niebieskiej książeczki z rozwiązaniem). Dzięki za podpowiedź, może coś wykminię
  • Odpowiedz
Zna ktoś może jakiś dowód, bądź dobre wytłumaczenie dlaczego największą potęgą dwójki dzieląca x jest: ((x ^ (x-1)) + 1) / 2 lub też x & (-x) ?

Na przykładach działa oczywiście, ale nie czaję tego do końca, jest tego jakieś uzasadnienie, czy po prostu ktoś na to wpadł przypadkowo i się okazało że tak jest?

#programowanie #informatyka #algorytmy
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@piternet:

x & (-x)
bo jak tworzysz liczbe ujemna, to przepisujesz od prawej wszystkie zera do pierwszej jedynki wlacznie, a wiec z 'oryginalnych' bitow zachowa sie po AND wlasnie tylko ta jedynka, a reszta to beda zera

a ta jedynka, to bedzie pierwsza potega dwojki, z ktorej sklada sie
  • Odpowiedz
Siema, potrzebuję pilnie algorytmu. Piszę program, którego celem jest poprawianie źle rozdzielonych/złączonych słów.

Problem wygląda następująco - mam powiedzmy zdanie:

"Zosia ma kota"

Niestety
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Onoki: Wykorzystuję właśnie taki prymitywny algorytm, ale lepszym pomysłem jest jednak dzielenie na sylaby, bo sprawdzenie słowa po literce w cholernie dużym słowniku trwa dość długo. A co do szukania w słowniku to mam zamiar podzielić go na mniejsze, odpowiadajace literom alfabetu.
  • Odpowiedz
@pavlucco: A jakbyś tak wczytał cały słownik do aplikacji i rozpiął go na drzewie binarnym? Zajmowałoby to sporo pamięci (bez znaczenia w dzisiejszych czasach), ale wyszukiwanie byłoby bardzo szybkie.

Nie wiem w jakim języku piszesz, ale w C++ i w Javie są mapy i zbiory oparte na drzewach czerwono-czarnych. Idealne do takiego słownika.
  • Odpowiedz
Mam do napisania program o następującej treści:

"Dany jest zbiór n liczb naturalnych umieszczony w tablicy typu int tab[N]

Proszę napisać funkcję, która zwraca informację, czy jest możliwy podział zbioru n liczb na trzy

podzbiory,
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#algorytmy #programowanie #studbaza #grafy #kiciochpyta #pytanie #pytaniedoeksperta #tagujetogowno

Za pomocą algorytmu Dijkstry da się wyznaczyć najkrótszą ścieżkę między dwoma wierzchołkami grafu. Pytanie czy jest jakiś mądry sposób na znalezienie kolejnej najkrótszej ścieżki między tymi dwoma wierzchołkami - mamy skończoną ilość ścieżek między dwoma wierzchołkami posortowaną malejąco wg kosztu przejścia i ostatnia jest najkrótsza, to ja potrzebuję
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@franczi: Rozwiązanie mam troszkę toporne, ale może Ci pomoże:

Druga najkrótsza ścieżka musi różnić się od najkrótszej ścieżki co najmniej jednym odcinkiem (między dwoma wierzchołkami grafu). Skoro tak, to po wyznaczeniu najkrótszej ścieżki weź tyle grafów ile najkrótsza ma odcinków, z każdego grafu usuń jeden, inny, należący do najkrótszej ścieżki odcinek, dla każdego znajdź najkrótszą ścieżkę za pomocą algorytmu Dijkstry i wybierz najkrótszą z nich. I to będzie ta druga
  • Odpowiedz
Jadąc dzisiaj rano tramwajem na #studbaza zauważyłem plakat z dużym napisem "FFT FOR FREE". Zacząłem rozkminiać po co komu darmowa transformacja Fouriera, ale w porę zauważyłem że pierwsze słowo tego napisu to "FIT", tylko napisane jakąś dziwną czcionką, a całość jest reklamą jakiegoś fitness klubu czy czegoś.

Przy okazji przypomniała mi się ciekawostka opowiedziana przez jednego z wykładowców, która brzmi mniej więcej tak: (można się czepiać bo mało ściśle jest
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Dla mediany z 3 wartości nie da się nic wykombinować. Musisz zrobić zawsze 2-3 porównania (w tym co ty napisałeś jest w pesymistycznym wypadku 6 porównań).

if(a
if(b
return b;

else
  • Odpowiedz
Algorytm pierogowy

Ostatnio podczas przygotować do Wigilii zauważyłem, że zwykle z kawałka ciasta wycina się szklanką jednakowe kółka w sposób raczej na oko. Czy istnieje jakiś algorytm który zapewniłby mi, że z takiej serii wycinania kół zostanie jak najmniej ciasta?

Pozdrawiam :D

#algorytmy #programowanie #informatyka #problem #pierogi
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach