Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pomoć (Akermanova funkcija)

[es] :: Pascal / Delphi / Kylix :: Pomoć (Akermanova funkcija)

[ Pregleda: 3774 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

kajla
Milorad Janković
Beograd

Član broj: 445
Poruke: 909
*.72.EUnet.yu



+2 Profil

icon Pomoć (Akermanova funkcija)05.04.2002. u 16:16 - pre 246 meseci
Treba da napišem program za nalaženje Akermanove funkcije iterativnim postupkom (bez korišćenja rekurzije). Akermanova funkcija se definiše na sledeći način:
A(m,n)=
n+1 za m=0 i n>=0
A(m-1,1) za m>=1 i n=0
A(m-1,A(m,n-1)) za m>=1 i n>=1

Ako bi neko malo pomogao...

poz.
 
Odgovor na temu

Riste Pejov
Team Leader/Senior Software Developer @
Ein-Sof ltd Skopje
Skopje, Macedonia

Član broj: 128
Poruke: 571
212.110.78.*

Jabber: richie@bagra.net.mk
ICQ: 154236769
Sajt: riste.softver.org.mk


Profil

icon Re: Pomoć (Akermanova funkcija)06.04.2002. u 19:16 - pre 246 meseci
mislim, da imas greske kod akermanove funkcije,
koliko se ja secam bilo je nekog kvadriranja

samo sto sam napisao Akerman's Function u google i nasao sam ovo:

Akerman's Function
A(i,j) = 2^j for j>=1
A(i,1) = A(i-1,2) for i>=2
A(i,j) = A(i-1, A(i,j-1)) for i,j >= 2

nisam imao vremena proveriti dali je to matematicki isto sa funkcije iz tvoga posta
ali ipak u tvojoj akermanovoj funkciji mozes doci do slucaja kad funkcija nema
resenja.

i jos jedno pitanje, dali je cilj isprintati N t.e. j ?

p.s. mislim da imam resenja ...

pozdrav
People who think they know everything tend to irritate those of us who do.
 
Odgovor na temu

pegazus
Beograd

Član broj: 2413
Poruke: 52
*.ptt.yu



Profil

icon Re: Pomoć (Akermanova funkcija)07.04.2002. u 15:20 - pre 246 meseci

Evo resenje u C-u, valjda ti nece biti problem da ga prevedes u Paskal:
<pre>
#include <stdio.h>
#define DEPTH 1000
int i[DEPTH], j[DEPTH], out[DEPTH], rez;
int akk(int m, int n) {
int cnt = 0;
i[cnt] = m;
j[cnt] = n;
while (cnt >= 0) {
if (cnt>DEPTH-1) {
fprintf (stderr, "Stack Owerflow!");
exit(1);
}
if (out[cnt]) {
if (out[cnt] == 2) {
out[cnt] = 0;
cnt--;
} else if (out[cnt] == 3) {
j[cnt + 1] = rez;
i[cnt + 1] = i[cnt] - 1;
out[cnt] = 2;
cnt++;
}
} else {
if (i[cnt] == 0) {
rez = j[cnt] + 1;
cnt--;
} else if (j[cnt] == 0) {
i[cnt + 1] = i[cnt] - 1;
j[cnt + 1] = 1;
out[cnt] = 2;
cnt++;
} else {
i[cnt + 1] = i[cnt];
j[cnt + 1] = j[cnt] - 1;
out[cnt] = 3;
cnt++;
}
}
}
return rez;
}

int main() {
int m, n;
printf ("Unesite dva prirodna broja:");
scanf ("%d %d", &m, &n);
printf("0K\n");
printf ("\nakk( %d, %d)= %d\n", m,n, akk (m, n));
exit(0);
}


Usput kako da pisem a da mi se kod ne slaze kao obican tekst.
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Pomoć (Akermanova funkcija)

[ Pregleda: 3774 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.