Ten artykuł został stworzony dla starszych wersji GameMakera i może nie być aktualny.

Wstep do algorytmow

Niedziela, 13 Czerwca 2004, 13:35
Czas czytania 3 minuty, 18 sekund
Poprawność całkowita i częściowa algorytmu, złożoność obliczeniowa algorytmu, złożoność czasowa średnia i pesymistyczna oraz rząd funkcji, czyli kilka podstawowych pojęć o algorytmach.
    Treść artykułu powstała przy pomocy skryptu stworzonego przez Panią Dr. Jolantę Koszelew z Politechiniki Białostockiej.

Def:
    Analiza algorytmów to dział informatyki zajmujący się szukaniem najefektywniejszych, poprawnych algorytmów dla danych problemów komputerowych.

----Poprawność całkowita i częściowa algorytmu-----

WP - warunek początkowy - formuła logiczna definiująca dane wejściowe algorytmu.

WK - warunek końcowy - formuła logiczna definiująca dane wyjściowe algorytmu uzyskane dla danych wejściowych spełniających WP.


Def:
    Algorytm A jest częściowo poprawny względem danego warunku WP i danego warunku WK wtedy i tylko wtedy, gdy dla dowolnych danych wejściowych spełniających warunek WP, jeżeli algorytm A zatrzymuje się, to dane wyjściowe algorytmu spełniają warunek WK.

Def:
    Algorytm A jest całkowicie poprawny względem danego warunku WP i danego warunku WK wtedy i tylko wtedy, gdy dla dowolnych danych wejściowych spełniających warunek WP algorytm A zatrzymuje się i dane wyjściowe tego algorytmu spełniają warunek WK.

Też nie przepadam za regółkami i definicjami.. dlatego poniżej zamieszczam przykład.
( Wyjasnienie -> slowa w niawiasach oznaczaja symbole logiczne stosowane w matematyce ktorych nie da sie wyswietlic na stronie).

WP: n>0 ^ n(należy do)N
WK: s=1+3+5+...+n n mod 2(różne od)0(lub) s=1+3+5+...+n-1 ^ n mod 2=0

Algorytm:
kods:=0; i:=1;
while i<>n+2 do
begin
    s:=s + i;
    i:=i+2;
end

    Algorytm jest poprawny częściowo, ale nie całkowicie. Dla n parzystego pętla nie ma stopu, ale dla dowolnego n nieparzystego pętla kończy się po skończonej liczbie kroków i wartość końcowa zmiennej s spełnia WK.

------ Złożoność obliczeniowa algorytmu -------

    Złożoność obliczeniowa algorytmu to nic innego jak ilość zasobów komputerowych, potrzebnych do jego wykonania. Zasoby komputerowe natomiast to czas działania i ilość zajmowanej pamięci.

d - dane wejściowe algorytmu, czyli takie, które spełniają warunek WP.
|d|- rozmiar danych d
Przykład:
A1:
WP: a1, a2, ..., an- ciąg liczb całkowitych (n >0)
WK: Ciąg a1, a2, ..., an posortowany niemalejąco
d - ciąg a1, a2, ..., an liczb całkowitych (n >0)
|d| - n

A2:
WP: a0, a1, ..., an- ciąg liczb rzeczywistych (n >= 0) definiujący współczynniki danego wielomianu W, x- dana liczba rzeczywista
WK: Liczba W(x) &#8211; wartość wielomianu W dla argumentu x
d - ciąg a0, a1, ..., an , ciąg liczb rzeczywistych (n >= 0) definiujący współczynniki danego wielomianu W
|d|- n+1

A3:
WP: t1, t2, ..., tn- ciąg znaków tekstu (n > 0)
w1, w2, ..., wm - ciąg znaków wzorca (n >= m > 0)
WK: p - zmienna logiczna przyjmuje wartość true, gdy wzorzec występuje w tekście, a false, gdy wzorzec nie występuje w tekście.
d - t1, t2, ..., tn- ciąg znaków tekstu (n > 0)
w1, w2, ..., wm - ciąg znaków wzorca (n >= m > 0)
|d|- n, m

Def :
    Operacja elementarna (inaczej operacja dominująca) to operacja charakterystyczna dla danego algorytmu. To taka operacja, że łączna ich liczba jest proporcjonalna do liczby wykonań wszystkich operacji jednostkowych w dowolnej komputerowej realizacji algorytmu.

Przykłady:

A1 - operacją elementarną jest operacja porównywania elementów sortowanego ciągu albo operacja przestawiania elementów ciągu w czasie sortowania.

A2 - operacją elementarną jest operacja arytmetyczna mnożenia albo operacja arytmetyczna dodawania realizowana w procesie obliczania wartości wielomianu dla danego x.

A3 - operacja porównywania znaków wzorca ze znakami tekstu w procesie sprawdzania, czy wzorzec występuje w tekście.

Za jednostkę złożoności czasowej przyjmuje się wykonanie jednej operacji elementarnej (dominującej). Złożoność czasowa algorytmu jest funkcją rozmiaru danych.

-------Złożoność czasowa średnia i pesymistyczna--------

cdn...
Komentarze (łącznie 3):
gnysek (Pią., 02 Lip. 04, 19:49)
#1

ee... a może od początku...
Albo wiem ja wam opowiem o liczbach zespolonych...

l
lion (Wto., 27 Lip. 04, 16:51)
#2

z Politechniki Białostockiej ??? Nie wiedziałem że w moim mieście są takie mądre ludzie :D

Marmot (Sob., 31 Lip. 04, 22:39)
#3

Widzę że dałeś przykład na pascala :D .

Najnowsze wersje GameMakera:

Stabilna
2024.13.1.193 • 2024.13.1.242
wydana 22 dni temu
LTS
2022.0.3.85 • 2022.0.3.99
wydana 157 dni temu
Beta
2024.1400.0.795 •
2024.1400.0.802
 0.16.1

wydana 10 dni temu
= IDE, = Runtime, = GMRT
Użytkownicy online
1 użytkownik aktywny:
gości: 1,
(~ostatnie 15 minut)
Discord
50 użytkowników online na discordzie:
LeD, Tymon, Carl-bot, p..., Andrzej Apparition, Sevitaus ale też czasami Zyragon, TobiasM (Morgo), Kowu, Kuzyn, OdrzuconyKrakers, 𝕳𝖚𝖌𝖔 𝕲𝖔𝖓𝖝𝖆𝖑𝖊𝖝, m..., Kalor, PhysX ᴺⱽᴵᴰᴵᴬ, r..., 42traviss, Threef, Skini, Chell, PokojowyPatrol, HappyOrange, Pako, Arrekin, Dyno, 🆅🅸🆃🅾74🅼, Deusald, szmalu, pk100, Morro, LadyLush, Marco, Voytec, Ulti, Danieo, bagno, antek, Mtax, 21Lancz, Kandif, l..., Jayu, s..., d..., Add92, Krzysiek1250, Shockah, Nero, 🧁Cupcake🧁, m..., xVANiLL
Shoutbox
gnysek (13:44, 10.04.25)
Za 3-4 miesiące GM przejdzie na wydania "półroczne", więc korzystanie z wersji beta żeby sprawdzić nowości będzie wskazane :P
Adriann (18:09, 08.04.25)
Odpowiadam, dzisiaj :D
Adriann (20:48, 04.04.25)
A kiedy te UI layery mają wejść do normalnej wersji gma?
gnysek (00:38, 11.03.25)
I jak, zobaczyłeś ? :D Trochę im zjechało na publiczny release, ale były już w ostatnich dniach lutego dostępne jak się wie, jak pobrać kandydatów do bety :P
Kuzyn (21:30, 05.03.25)
uwierzę jak zobaczę :P
gnysek (10:35, 18.02.25)
W ciągu 10 dni mają wyjść w końcu Layery UI :D
Wojo (10:25, 27.12.24)
Jak tworzyłeś* ah ta niecną autokorekta (kiedyś też stworzyłem apki na androida w sumie)
Wojo (10:23, 27.12.24)
O siemka baca, czasami myślę o tobie w kontekście tego jak tworzyłem apki na androida. Swoją drogą czasami zapominam, że forum istnieje bo cały ruch teraz utrzymuje się na discordzie, ale pora to zmienić!
Uzjel (20:17, 10.12.24)
Cały ruch przeniósł się na Discorda.
MagnusArias (17:43, 01.12.24)
O matko... a ja tutaj jestem od ponad 15 lat i czasami zaglądam... biernie bo biernie, ale czasem wpadnę
Starsze wpisy znajdziesz w Archiwum.
Ankieta
Ile zarobiłeś do tej pory na grach stworzonych w GM?