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

Rastav broja na pribrojnike (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
Dick Long
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 10. 05. 2006. (13:50:57)
Postovi: (22)16
Spol: muško
Sarma = la pohva - posuda
-4 = 5 - 9
Lokacija: Zagreb

PostPostano: 18:12 ned, 9. 9. 2007    Naslov: Rastav broja na pribrojnike Citirajte i odgovorite

Zadan je prirodni broj n. Nadite na koliko se razliˇcitih naˇcina broj n moˇze prikazati kao
zbroj pribrojnika (koji su, takoder, prirodni brojevi), uz uvjete da u zbroju bude najviˇse
12 pribrojnika i da je razlika susjednih pribrojnika najviˇse 5. Poredak pribrojnika u zbroju
nije bitan, tj. moˇzete smatrati da pribrojnici ne padaju (ili ne rastu). Problem rijeˇsite
rekurzivnom funkcijom. Obavezno napiˇsite kako izgleda poziv te funkcije za zadani n.
Napomena: Funkcija, uz argument n, smije primati i dodatne argumente. Nije dozvoljeno
koriˇstenje polja, lista, te globalnih i static varijabli.


to je zadatak iz 1. kolokvija...:)
i ne znam ga rijesit...jel ima koja dobra dusa..:)
Zadan je prirodni broj n. Nadite na koliko se razliˇcitih naˇcina broj n moˇze prikazati kao
zbroj pribrojnika (koji su, takoder, prirodni brojevi), uz uvjete da u zbroju bude najviˇse
12 pribrojnika i da je razlika susjednih pribrojnika najviˇse 5. Poredak pribrojnika u zbroju
nije bitan, tj. moˇzete smatrati da pribrojnici ne padaju (ili ne rastu). Problem rijeˇsite
rekurzivnom funkcijom. Obavezno napiˇsite kako izgleda poziv te funkcije za zadani n.
Napomena: Funkcija, uz argument n, smije primati i dodatne argumente. Nije dozvoljeno
koriˇstenje polja, lista, te globalnih i static varijabli.


to je zadatak iz 1. kolokvija...Smile
i ne znam ga rijesit...jel ima koja dobra dusa..Smile


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


Pridružen/a: 10. 05. 2006. (13:50:57)
Postovi: (22)16
Spol: muško
Sarma = la pohva - posuda
-4 = 5 - 9
Lokacija: Zagreb

PostPostano: 21:34 ned, 9. 9. 2007    Naslov: Citirajte i odgovorite

zadatak rijesen..:)
zahvale vedranu č:)
pravi si:)
ak koga zanima rjesenje...nek ostavi post...pa cu skopirat..:)
zadatak rijesen..Smile
zahvale vedranu čSmile
pravi si:)
ak koga zanima rjesenje...nek ostavi post...pa cu skopirat..Smile


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


Pridružen/a: 10. 05. 2006. (13:50:57)
Postovi: (22)16
Spol: muško
Sarma = la pohva - posuda
-4 = 5 - 9
Lokacija: Zagreb

PostPostano: 21:50 ned, 9. 9. 2007    Naslov: Citirajte i odgovorite

#include<stdio.h>
#include <math.h>
int f(int n,int k, int z){
int a1=0,a2=0,a3=0,a4=0,a5=0,a6=0,s1=0,i;

if (n<0) return (0);
if (n==0) return (1);
if (k==0) return (0);
if (z>0) {
a1=f(n-z,k-1,z);
if(z>1)a2=f(n-z+1,k-1,z-1);
if(z>2)a3=f(n-z+2,k-1,z-2);
if(z>3)a4=f(n-z+3,k-1,z-3);
if(z>4)a5=f(n-z+4,k-1,z-4);
if(z>5)a6=f(n-z+5,k-1,z-5);
return (a1+a2+a3+a4+a5+a6);

}

if (z=-1){
for(i=1;i<=n;i++){
s1+=f(n-i,k-1,i);

}
return s1;
}

}

int main(){

int n,k;
scanf("%d",&n);


k=f(n,12,-1);


printf("%d",k);
scanf("%%");
return 0;
}


eto...fino i radi..:)
vedrane svaka cast...(bivsi asistent iz rp1)
#include<stdio.h>
#include <math.h>
int f(int n,int k, int z){
int a1=0,a2=0,a3=0,a4=0,a5=0,a6=0,s1=0,i;

if (n<0) return (0);
if (n==0) return (1);
if (k==0) return (0);
if (z>0) {
a1=f(n-z,k-1,z);
if(z>1)a2=f(n-z+1,k-1,z-1);
if(z>2)a3=f(n-z+2,k-1,z-2);
if(z>3)a4=f(n-z+3,k-1,z-3);
if(z>4)a5=f(n-z+4,k-1,z-4);
if(z>5)a6=f(n-z+5,k-1,z-5);
return (a1+a2+a3+a4+a5+a6);

}

if (z=-1){
for(i=1;i<=n;i++){
s1+=f(n-i,k-1,i);

}
return s1;
}

}

int main(){

int n,k;
scanf("%d",&n);


k=f(n,12,-1);


printf("%d",k);
scanf("%%");
return 0;
}


eto...fino i radi..Smile
vedrane svaka cast...(bivsi asistent iz rp1)


[Vrh]
Korisnički profil Pošaljite privatnu poruku
DarkOne™24/7®
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 22. 11. 2004. (05:46:52)
Postovi: (A7)16
Sarma = la pohva - posuda
-2 = 5 - 7
Lokacija: zg

PostPostano: 22:24 uto, 11. 9. 2007    Naslov: Citirajte i odgovorite

[quote="Dick Long"]


eto...fino i radi..:)
vedrane svaka cast...(bivsi asistent iz rp1)[/quote]

mogo si i meni zahvaliti kaj sam ga natipkao i poslao tebi preko meeba.. :)) lol
Dick Long (napisa):



eto...fino i radi..:)
vedrane svaka cast...(bivsi asistent iz rp1)


mogo si i meni zahvaliti kaj sam ga natipkao i poslao tebi preko meeba.. :)) lol



_________________
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.
[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail AIM YIM MSNM
ekatarina
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 25. 11. 2007. (19:22:50)
Postovi: (161)16
Spol: žensko
Sarma = la pohva - posuda
30 = 47 - 17

PostPostano: 23:38 uto, 29. 4. 2008    Naslov: Citirajte i odgovorite

Može li netko pojasniti ovaj gore primjer?
Barem za početak, što je točno z=-1?

Znam da je naporno raspisivati, pa bih vas onda molila, ako je netko riješavao rekurzije iz lanjskih kolokvija da poneki kod nalijepi ovdje. Mislim da bi pomoglo mnogima..
Može li netko pojasniti ovaj gore primjer?
Barem za početak, što je točno z=-1?

Znam da je naporno raspisivati, pa bih vas onda molila, ako je netko riješavao rekurzije iz lanjskih kolokvija da poneki kod nalijepi ovdje. Mislim da bi pomoglo mnogima..


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


Pridružen/a: 01. 10. 2006. (18:41:07)
Postovi: (E5)16
Spol: žensko
Sarma = la pohva - posuda
22 = 34 - 12

PostPostano: 10:20 sri, 30. 4. 2008    Naslov: Citirajte i odgovorite

Nasa funkcija izgleda ovako: int f(int n,int k, int z) gdje je n broj koji trebamo rastaviti na max k pribrojnika,a z nam je zadnji pribrojnik koji smo dodali (u postupku ih zapravo oduzimamo, pa gledamo jesmo li dosli do 0). Na samom pocetku, zadnji pribrojnik nam je nedefiniran, pa ga i postavimo na neku nemogucu vrijednost, npr. -1. U tom prvom krugu, moguci pribrojnici nam mogu biti svi od 1 do n, pa zato i imamo tu petlju for(i=1;i<=n;i++) s1+=f(n-i,k-1,i);
U slucaju da smo vec oduzeli neki 'potencijalni' pribrojnik, sljedeci pribrojnici nam mogu biti u rangu [z,z-5] (uvjet zadatka). Svaki put kad pozivamo funkciju,mijenjamo argumente funkcije i to tako da n-u oduzmemo potencijalni pribrojnik, k smanjimo za 1 (jer smo upravo dodali jedan pribrojnik), a na 3.mjesto stavimo zadnji pribrojnik koji smo stavili).
Pocetnu uvjeti rekurzije su: ako smo oduzeli previse (tj. n se ne moze prikazati kao suma tih pribrojnika), to nije dobar nacin, pa rekurzija vraca 0. Ako smo prekoracili broj pribrojnika (to znaci da nam se k spustio na 0), to isto nije dobro, pa rekurzija vraca 0. I ono sto zapravo zelimo, ako je k dobar, i n=0, sto znaci da se moze prikazati kao suma potencijalnih pribrojnika, rekurzija vrati 1.

Jel jasnije?!
Nasa funkcija izgleda ovako: int f(int n,int k, int z) gdje je n broj koji trebamo rastaviti na max k pribrojnika,a z nam je zadnji pribrojnik koji smo dodali (u postupku ih zapravo oduzimamo, pa gledamo jesmo li dosli do 0). Na samom pocetku, zadnji pribrojnik nam je nedefiniran, pa ga i postavimo na neku nemogucu vrijednost, npr. -1. U tom prvom krugu, moguci pribrojnici nam mogu biti svi od 1 do n, pa zato i imamo tu petlju for(i=1;i⇐n;i++) s1+=f(n-i,k-1,i);
U slucaju da smo vec oduzeli neki 'potencijalni' pribrojnik, sljedeci pribrojnici nam mogu biti u rangu [z,z-5] (uvjet zadatka). Svaki put kad pozivamo funkciju,mijenjamo argumente funkcije i to tako da n-u oduzmemo potencijalni pribrojnik, k smanjimo za 1 (jer smo upravo dodali jedan pribrojnik), a na 3.mjesto stavimo zadnji pribrojnik koji smo stavili).
Pocetnu uvjeti rekurzije su: ako smo oduzeli previse (tj. n se ne moze prikazati kao suma tih pribrojnika), to nije dobar nacin, pa rekurzija vraca 0. Ako smo prekoracili broj pribrojnika (to znaci da nam se k spustio na 0), to isto nije dobro, pa rekurzija vraca 0. I ono sto zapravo zelimo, ako je k dobar, i n=0, sto znaci da se moze prikazati kao suma potencijalnih pribrojnika, rekurzija vrati 1.

Jel jasnije?!



_________________
Meni mama neda da.... Pričam sa dječacima... meni mama neda to-A što?-Jer kaže da je opasno!
[Vrh]
Korisnički profil Pošaljite privatnu poruku
ekatarina
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 25. 11. 2007. (19:22:50)
Postovi: (161)16
Spol: žensko
Sarma = la pohva - posuda
30 = 47 - 17

PostPostano: 12:05 sri, 30. 4. 2008    Naslov: Citirajte i odgovorite

Je, puno ti hvala! :karma:
Je, puno ti hvala! karma++


[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