Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
markotron Forumaš(ica)
Pridružen/a: 26. 10. 2008. (12:07:29) Postovi: (95)16
Spol:
Lokacija: Umag
|
Postano: 9:48 uto, 28. 4. 2009 Naslov: Zadatak sa Zabom |
|
|
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
edit: Izbacio sam varijablu viška
_________________ reductio ad absurdum
Zadnja promjena: markotron; 16:35 uto, 28. 4. 2009; ukupno mijenjano 1 put.
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
|
[Vrh] |
|
markotron Forumaš(ica)
Pridružen/a: 26. 10. 2008. (12:07:29) Postovi: (95)16
Spol:
Lokacija: Umag
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 17:06 uto, 28. 4. 2009 Naslov: |
|
|
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 ).
Ne znam napamet izracunati za n = 6, no za ocekivati je neki veliki rezultat, cim imas rekurziju s puno grana (4 u svakom koraku).
_________________ 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.
|
|
[Vrh] |
|
bimar Forumaš(ica)
Pridružen/a: 16. 11. 2008. (14:45:25) Postovi: (61)16
Lokacija: arkadija
|
|
[Vrh] |
|
malena Forumaš(ica)
Pridružen/a: 27. 03. 2009. (16:43:42) Postovi: (62)16
Spol:
Lokacija: ...
|
Postano: 18:18 uto, 28. 4. 2009 Naslov: |
|
|
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...
|
|
[Vrh] |
|
|