| 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: (3562)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: (3562)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] | 
		 | 
	
	
		 |