Search
 
 
  Engleski
 
 
 
Open in this window (click to change)
Forum@DeGiorgi: Početna
Forum za podršku nastavi na PMF-MO
Login Registracija FAQ Smajlići Članstvo Pretražnik Forum@DeGiorgi: Početna

Zadatak sa Zabom (zadatak)
WWW:

Moja sarma
 
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 1. godine, preddiplomski studij Matematika -> Programiranje 1 i 2
Prethodna tema :: Sljedeća tema  
Autor/ica Poruka
markotron
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 26. 10. 2008. (12:07:29)
Postovi: (95)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
= 28 - 28
Lokacija: Umag

PostPostano: 9:48 uto, 28. 4. 2009    Naslov: Zadatak sa Zabom Citirajte i odgovorite

Zanima me kod "poznatog" zadatka sa zabom iz skripte, zadatak 2.13, pismeni ispit, 1.9.2004, sta je tocno jedan nacin.

Npr. za n = 4. (pretpostavimo da se zaba nalazi na prvom listu)

sa prvog skace za 3 na cetvrti list ( to je jedan nacin ),

pa sa prvog skace na treci, pa se vraca na prvi, pa na treci.... i tako 16 puta i sedamnaesti put sa prvog lista skoci na cetvrti. ( jel to isto jedan nacin? )

Jer ako se tako gledaju nacini, onda to rekurzivno rjesavanje nama bas smisla.. jer je za n = 6, br nacina = 51546.

Evo i koda: (napomena, zaba se nalazi na prvom listu, ispisuju se i kako je zaba dosla do n-tog lista)

[code:1]

#include <stdio.h>
#include <stdlib.h>

int skokovi[1000], nacin = 1;

int zaba ( int tren, int kraj, int brSkokova )
{
skokovi[brSkokova] = tren;

if ( tren < 1 || tren > kraj || brSkokova > 17 )
return 0;
if ( tren == kraj )
{
int i;
printf ( "\n%d: ", nacin );
for ( i = 0; i <= brSkokova; ++i )
printf ( "%d ", skokovi[i] );
++nacin;
return 1;
}

return zaba ( tren + 2, kraj, brSkokova+1 ) +
zaba ( tren + 3, kraj, brSkokova+1 ) +
zaba ( tren - 2, kraj, brSkokova+1 ) +
zaba ( tren - 3, kraj, brSkokova+1 );
}



int main ( void )
{
int n;
scanf ( "%d", &n );

printf ( "\nBroj nacina: %d\n", zaba ( 1, n, 0 ) );

system ( "PAUSE" );
return 0;
}


[/code:1]


Hvala :D


edit: Izbacio sam varijablu viška :)
Zanima me kod "poznatog" zadatka sa zabom iz skripte, zadatak 2.13, pismeni ispit, 1.9.2004, sta je tocno jedan nacin.

Npr. za n = 4. (pretpostavimo da se zaba nalazi na prvom listu)

sa prvog skace za 3 na cetvrti list ( to je jedan nacin ),

pa sa prvog skace na treci, pa se vraca na prvi, pa na treci.... i tako 16 puta i sedamnaesti put sa prvog lista skoci na cetvrti. ( jel to isto jedan nacin? )

Jer ako se tako gledaju nacini, onda to rekurzivno rjesavanje nama bas smisla.. jer je za n = 6, br nacina = 51546.

Evo i koda: (napomena, zaba se nalazi na prvom listu, ispisuju se i kako je zaba dosla do n-tog lista)

Kod:


#include <stdio.h>
#include <stdlib.h>

int skokovi[1000], nacin = 1;

int zaba ( int tren, int kraj, int brSkokova )
{
    skokovi[brSkokova] = tren;
   
    if ( tren < 1 || tren > kraj || brSkokova > 17 )
        return 0;
    if ( tren == kraj )
    {
        int i;
        printf ( "\n%d: ", nacin );
        for ( i = 0; i <= brSkokova; ++i )
            printf ( "%d ", skokovi[i] );
        ++nacin;       
        return 1;
    }
   
    return zaba ( tren + 2, kraj, brSkokova+1 ) +
           zaba ( tren + 3, kraj, brSkokova+1 ) +
           zaba ( tren - 2, kraj, brSkokova+1 ) +
           zaba ( tren - 3, kraj, brSkokova+1 );
}



int main ( void )
{
    int n;
    scanf ( "%d", &n );
   
    printf ( "\nBroj nacina: %d\n", zaba ( 1, n, 0 ) );
   
    system ( "PAUSE" );
    return 0;
}





Hvala Very Happy


edit: Izbacio sam varijablu viška Smile



_________________
reductio ad absurdum


Zadnja promjena: markotron; 16:35 uto, 28. 4. 2009; ukupno mijenjano 1 put.
[Vrh]
Korisnički profil Pošaljite privatnu poruku MSNM
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3560)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 13:31 uto, 28. 4. 2009    Naslov: Citirajte i odgovorite

Ne razumijem sto te muci. :| Kako bi ti to rijesio nerekurzivno? :-k

Usput, cini mi se da varijable [tt]brSkokova[/tt] i [tt]ptr[/tt] imaju stalno istu vrijednost... cemu dvije varijable? :-k
Ne razumijem sto te muci. Neutral Kako bi ti to rijesio nerekurzivno? Think

Usput, cini mi se da varijable brSkokova i ptr imaju stalno istu vrijednost... cemu dvije varijable? Think



_________________
U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
markotron
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 26. 10. 2008. (12:07:29)
Postovi: (95)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
= 28 - 28
Lokacija: Umag

PostPostano: 16:27 uto, 28. 4. 2009    Naslov: Citirajte i odgovorite

Ma zanimalo me u stvari samo jel tocno broj nacine za n = 6.. cinilo mi se nekako previse.. pa sam mislio da nisam dobro shvatio zadatak..

a naknadno sam dodavao ovo da ispisuje i nacine.. pa nisam obratio paznju na to da imam vec takvu varijablu..
Hvala.
Ma zanimalo me u stvari samo jel tocno broj nacine za n = 6.. cinilo mi se nekako previse.. pa sam mislio da nisam dobro shvatio zadatak..

a naknadno sam dodavao ovo da ispisuje i nacine.. pa nisam obratio paznju na to da imam vec takvu varijablu..
Hvala.



_________________
reductio ad absurdum
[Vrh]
Korisnički profil Pošaljite privatnu poruku MSNM
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3560)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 17:06 uto, 28. 4. 2009    Naslov: Citirajte i odgovorite

Za pismeni iz 1.9.2004. ima rjesenja na sluzbenom webu, pa baci oko tamo (nisam provjeravao sto je unutra, a nakon 4.5 godine ipak se ne sjecam, no mislim da ima i rjesenje zabe ;)).

Ne znam napamet izracunati za [tt]n = 6[/tt], no za ocekivati je neki veliki rezultat, cim imas rekurziju s puno grana (4 u svakom koraku). :)
Za pismeni iz 1.9.2004. ima rjesenja na sluzbenom webu, pa baci oko tamo (nisam provjeravao sto je unutra, a nakon 4.5 godine ipak se ne sjecam, no mislim da ima i rjesenje zabe Wink).

Ne znam napamet izracunati za n = 6, no za ocekivati je neki veliki rezultat, cim imas rekurziju s puno grana (4 u svakom koraku). Smile



_________________
U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
bimar
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 16. 11. 2008. (14:45:25)
Postovi: (61)16
Sarma = la pohva - posuda
11 = 11 - 0
Lokacija: arkadija

PostPostano: 17:32 uto, 28. 4. 2009    Naslov: Citirajte i odgovorite

http://web.studenti.math.hr/~venovako/P2/


pa to je ta žaba ako se ne varam..pa gledaj
http://web.studenti.math.hr/~venovako/P2/


pa to je ta žaba ako se ne varam..pa gledaj


[Vrh]
Korisnički profil Pošaljite privatnu poruku
malena
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 27. 03. 2009. (16:43:42)
Postovi: (62)16
Spol: žensko
Sarma = la pohva - posuda
= 9 - 8
Lokacija: ...

PostPostano: 18:18 uto, 28. 4. 2009    Naslov: Citirajte i odgovorite

sta vas zabica izmucila... pogledaj ovaj kod

[size=9][color=#999999]Added after 30 seconds:[/color][/size]

[code:1]#include <stdio.h>
#include <stdlib.h>

/*zabica*/

long zaba(int polozaj, int korak, int max_koraka, int n){ /*n=broj listova lopoca*/
if((polozaj<1 || polozaj>n)&& korak>0) return 0;
if(korak>max_koraka) return 0;
if(polozaj==n) return 1;
return zaba(polozaj+2, korak+1, max_koraka, n)+zaba(polozaj+3, korak+1, max_koraka, n)+zaba(polozaj-2, korak+1, max_koraka, n)+zaba(polozaj-3,korak+1,max_koraka,n);
}

int main(){
int n;
printf("Broj lopoca=");
scanf("%d", &n);

printf("zaba to moze izvesti na %d nacina.\n", zaba(0, 0, 17, n)); /*stoji na nultom polozaju i nije napravila nijedan korak*/

system("PAUSE");
return 0;
}

[/code:1]

[size=9][color=#999999]Added after 6 minutes:[/color][/size]

P.S. Isprika asistentu s cije je stranice ovo copy paste ali bilo mi je zao kolega koji nikako da uspjesno rijese zadatak... :moze:
sta vas zabica izmucila... pogledaj ovaj kod

Added after 30 seconds:

Kod:
#include <stdio.h>
#include <stdlib.h>

/*zabica*/

long zaba(int polozaj, int korak, int max_koraka, int n){ /*n=broj listova lopoca*/
    if((polozaj<1 || polozaj>n)&& korak>0) return 0;
    if(korak>max_koraka) return 0;
    if(polozaj==n) return 1;
    return zaba(polozaj+2, korak+1, max_koraka, n)+zaba(polozaj+3, korak+1, max_koraka, n)+zaba(polozaj-2, korak+1, max_koraka, n)+zaba(polozaj-3,korak+1,max_koraka,n);
}

int main(){
    int n;
    printf("Broj lopoca=");
    scanf("%d", &n);
   
    printf("zaba to moze izvesti na %d nacina.\n", zaba(0, 0, 17, n)); /*stoji na nultom polozaju i nije napravila nijedan korak*/
   
    system("PAUSE");
    return 0;
}
   


Added after 6 minutes:

P.S. Isprika asistentu s cije je stranice ovo copy paste ali bilo mi je zao kolega koji nikako da uspjesno rijese zadatak... Svidja mi se ta ideja!


[Vrh]
Korisnički profil Pošaljite privatnu poruku
Prethodni postovi:   
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 1. godine, preddiplomski studij Matematika -> Programiranje 1 i 2 Vremenska zona: GMT + 01:00.
Stranica 1 / 1.

 
Forum(o)Bir:  
Ne možete otvarati nove teme.
Ne možete odgovarati na postove.
Ne možete uređivati Vaše postove.
Ne možete izbrisati Vaše postove.
Ne možete glasovati u anketama.
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2002 phpBB Group
Theme created by Vjacheslav Trushkin
HR (Cro) by Ančica Sečan