czwartek, 27 marca 2014

Anagramy

Anagram – nazwa wywodząca się od słów greckich: ana- (nad) oraz grámma (litera), oznacza wyraz, wyrażenie lub całe zdanie powstałe przez przestawienie liter bądź sylab innego wyrazu lub zdania, wykorzystujące wszystkie litery (głoski bądź sylaby) materiału wyjściowego. W czasopismach szaradziarskich pojawiają się zadania polegające na odgadnięciu wykreskowanego anagramu na podstawie wierszowanego komentarza, a także anagramy rysunkowe polegające na ułożeniu hasła z wszystkich liter właściwego określenia rysunku.
Najprostszy anagram to poukładanie liter w odwrotnej kolejności, np. kebabbabek. Przykładem jednego z prostych przestawień jest zamiana sylab w wyrazie ranty, dająca anagram: tyran. Przestawiając pojedyncze litery możemy otrzymać np. anagram narty.




środa, 26 marca 2014

Problem plecakowy - programowanie zachłanne

Dyskretny problem plecakowy jest jednym z najczęściej poruszanych problemów optymalizacyjnych. Nazwa zagadnienia pochodzi od maksymalizacyjnego problemu wyboru przedmiotów, tak by ich sumaryczna wartość była jak największa i jednocześnie mieściły się w plecaku. Przy podanym zbiorze elementów o podanej wadze i wartości, należy wybrać taki podzbiór by suma wartości była możliwie jak największa, a suma wag była nie większa od danej pojemności plecaka.
Problem plecakowy często przedstawia się jako problem złodzieja rabującego sklep – znalazł on N towarów; j–ty przedmiot jest wart c_{j} oraz waży w_{j}. Złodziej dąży do zabrania ze sobą jak najwartościowszego łupu, przy czym nie może zabrać więcej niż B kilogramów. Nie może też zabierać ułamkowej części przedmiotów (byłoby to możliwe w ciągłym problemie plecakowym).

wtorek, 25 marca 2014

Algorytmy w tekstach

Palindrom (gr. palindromeo – biec z powrotem) – wyrażenie brzmiące tak samo czytane od lewej do prawej i od prawej do lewej. Przykładem palindromu jest: Kobyła ma mały bok. Współcześnie palindromy pełnią funkcję gry słownej. Prawdopodobnie tak było również i w przeszłości, choć pewne znaleziska sugerują, że palindromy mogły też mieć znaczenie magiczne.



poniedziałek, 17 marca 2014

SORTOWANIE PRZEZ SCALANIE; SORTOWANIE SZYBKIE


Sortowanie przez scalanie


Metoda sortowania przez scalanie zaliczana jest do algorytmów wykorzystujących porównania. Jednocześnie jednak jest to metoda wykorzystująca ‘’dziel i zwyciężaj’ .



W tej metodzie wyróżniamy dwa etapy:


PODZIAŁ
- Faza wykonywana jest rekurencyjnie , polega na podzieleniu ciągu na podciągi zawierające jedną wartość


SCALANIE
- realizowana jest podczas łączenia podciągów i polega na scalaniu ich, z jednoczesnym sortowaniem


Wynika stąd, że głównym celem jest tutaj scalenie dwóch uporządkowanych ciągów w jeden posortowany




Sortowanie Szybkie

Metoda sortowania szybkiego jest oparta na następującej własności: jeśli w tablicy T [0…n-1] istnieje element o indeksie k taki, że wszystkie elementy o mniejszych numerach mają wartość mniejszą od T [k], to aby uzyskać posortowany ciąg, wystarczy osobno posortować elementy tablicy T[0…k-1] i T[k+1…n-1]

W każdym kolejnym kroku...


Powtarzane są te same czynności, zmienia się tylko fragment ciągu, na którym wykonujemy określone operacje. Indeks pierwszego wyrazu oznaczamy jako lewy, ostatniego – prawy.
  


Realizacje każdego
 kroku algorytmu należy rozpocząć od wybrania wyrazu ŚRODKOWEGO , którego wartość wyznaczamy : srodek – T [(lewy+prawy/2].Znajdowanie wyrazów w ciągu do zmiany rozpoczynamy od wyrazów skrajnych : LEWY i PRAWY, a dalej przesuwamy się w stronę wyrazu środkowego SRODEK. Szukamy z lewej strony elementu T [i] mniejsze/równe srodek, a z prawej elementu T[j] większy/równy srodek. Po znalezieniu pary spełniającej podane warunki wykonujemy zamianę elementów T[i] z T[j]. Czynności te powtarzamy tak długo, aż indeksy I i J się spotkają, dochodząc z obsu stron do elementu srodek.






piątek, 7 marca 2014

Sortowanie ciągów liczbowych

Sortowanie – jeden z podstawowych problemów informatyki. Polega na uporządkowaniu zbioru danych względem pewnych cech charakterystycznych każdego elementu tego zbioru. Szczególnym przypadkiem jest sortowanie względem wartości każdego elementu, np. sortowanie liczb, słów itp.
Algorytmy sortowania są stosowane w celu uporządkowania danych, umożliwienia stosowania wydajniejszych algorytmów (np. wyszukiwania) i prezentacji danych w sposób czytelniejszy dla człowieka.
Jeśli jest konieczne posortowanie zbioru większego niż wielkość dostępnej pamięci, stosuje się algorytmy sortowania zewnętrznego.

Wyróżniamy:
-Sortowanie bąbelkowe;-Sortowanie przez wybieranie;-Sortowanie przez zliczanie ;-Sortowanie przez wstawianie;-Sortowanie kubełkowe;




niedziela, 2 marca 2014

Monotoniczność ciągu liczbowego

Monotoniczność:
Ciągi: malejące, rosnące, nierosnące, niemalejące noszą wspólną nazwę ciągów monotonicznych . Przyjęto również nazywać ciągi malejące lub rosnące ściśle monotonicznymi, ciągi zaś niemalejące lub nierosnące - monotonicznymi w szerszym sensie
Aby zbadać monotoniczność ciągu o danym wyrazie ogólnym, należy zbadać znak różnicy an+1 - an. Jeśli jest ona dodatnia wtedy ciąg jest rosnący, jeśli ujemna ciąg jest malejący, a jeśli równa 0, to ciąg jest stały.


an = n2:   1, 4, 9, 16, 25, ... - ciąg rosnący
an = 3 - n:   2, 1, 0, -1, -2, ... - ciąg malejący

2. C++