Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 11:31 čet, 15. 3. 2012 Naslov: |
|
|
Desiti ti se beskonacna rekurzija. Naime, ako nulu uzmes kao prvu znamenku, onda ti je [tt]noviTren[/tt] == [tt]tren[/tt], a detekcija u [tt]dobar()[/tt] ovisi samo o toj vrijednosti. Drugim rijecima, pozivas rekurziju bez da ista izmijenis. Onda, u tom rekurzivnom pozivu, opet dodjes do toga da guras nulu na prvo mjesto itd. dok ne pojedes svu memoriju. Jedan dosta ociti [tt]if[/tt] u for-petlji u funkciji [tt]fja()[/tt] bi trebao rijesiti problem.
Usput, za koristenje funkcije [tt]exit()[/tt] treba staviti [tt]#include <stdlib.h>[/tt].
Desiti ti se beskonacna rekurzija. Naime, ako nulu uzmes kao prvu znamenku, onda ti je noviTren == tren, a detekcija u dobar() ovisi samo o toj vrijednosti. Drugim rijecima, pozivas rekurziju bez da ista izmijenis. Onda, u tom rekurzivnom pozivu, opet dodjes do toga da guras nulu na prvo mjesto itd. dok ne pojedes svu memoriju. Jedan dosta ociti if u for-petlji u funkciji fja() bi trebao rijesiti problem.
Usput, za koristenje funkcije exit() treba staviti #include <stdlib.h>.
_________________ 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] |
|
Sinuhe Forumaš(ica)
Pridružen/a: 05. 08. 2010. (21:55:23) Postovi: (6)16
Spol:
|
|
[Vrh] |
|
kiara Forumaš(ica)
Pridružen/a: 15. 11. 2011. (23:22:57) Postovi: (55)16
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
|
[Vrh] |
|
kiara Forumaš(ica)
Pridružen/a: 15. 11. 2011. (23:22:57) Postovi: (55)16
|
Postano: 10:50 sub, 31. 3. 2012 Naslov: |
|
|
Ok, imam zadatak da ucitam cijeli red - string, i onda radim nesto s pojedinim rijecima. Ne znam tocan broj rijeci prije ucitavanja stringa, ali nakon sto ga ucitam mogu ih prebrojati, ali kako da dodjem do pojedine rijeci, npr tocno do seste rijeci, il sedme?
Ok, imam zadatak da ucitam cijeli red - string, i onda radim nesto s pojedinim rijecima. Ne znam tocan broj rijeci prije ucitavanja stringa, ali nakon sto ga ucitam mogu ih prebrojati, ali kako da dodjem do pojedine rijeci, npr tocno do seste rijeci, il sedme?
|
|
[Vrh] |
|
kkarlo Forumaš(ica)
Pridružen/a: 19. 05. 2010. (08:43:59) Postovi: (1B2)16
Spol:
|
Postano: 11:09 sub, 31. 3. 2012 Naslov: |
|
|
[quote="kiara"]Ok, imam zadatak da ucitam cijeli red - string, i onda radim nesto s pojedinim rijecima. Ne znam tocan broj rijeci prije ucitavanja stringa, ali nakon sto ga ucitam mogu ih prebrojati, ali kako da dodjem do pojedine rijeci, npr tocno do seste rijeci, il sedme?[/quote]
Pa kako izgledaju ti stringovi...vjerojatno ovako:
"nekiznakovi panekiznakovi pa neki znakovi"
poanta je da je prva riječ do prvog razmaka, i onda ides po stringu dok ne dodjes do znaka koji nije razmak...tu pocinje druga rijec...i ona ide do razmaka...pa opet...
Malo blesavo ali mislim da bi trebalo radit...
kiara (napisa): | Ok, imam zadatak da ucitam cijeli red - string, i onda radim nesto s pojedinim rijecima. Ne znam tocan broj rijeci prije ucitavanja stringa, ali nakon sto ga ucitam mogu ih prebrojati, ali kako da dodjem do pojedine rijeci, npr tocno do seste rijeci, il sedme? |
Pa kako izgledaju ti stringovi...vjerojatno ovako:
"nekiznakovi panekiznakovi pa neki znakovi"
poanta je da je prva riječ do prvog razmaka, i onda ides po stringu dok ne dodjes do znaka koji nije razmak...tu pocinje druga rijec...i ona ide do razmaka...pa opet...
Malo blesavo ali mislim da bi trebalo radit...
|
|
[Vrh] |
|
kiara Forumaš(ica)
Pridružen/a: 15. 11. 2011. (23:22:57) Postovi: (55)16
|
Postano: 11:17 sub, 31. 3. 2012 Naslov: |
|
|
Da,znam,ali tako ne mogu naprimjer invertirati samo cetvrtu rijec, a da rijeci budu u normalnom poretku i dalje. Treba mi i duljina rijeci, i od kojeg do kojeg je indeksa, i sve. Moram bas imati samo rijec spremljenu negdje da mogu radit s njom, tako bi bilo najlaksi put, a neznam kako da spremim pojedine rijeci negdje da ih mogu koristit.
Da,znam,ali tako ne mogu naprimjer invertirati samo cetvrtu rijec, a da rijeci budu u normalnom poretku i dalje. Treba mi i duljina rijeci, i od kojeg do kojeg je indeksa, i sve. Moram bas imati samo rijec spremljenu negdje da mogu radit s njom, tako bi bilo najlaksi put, a neznam kako da spremim pojedine rijeci negdje da ih mogu koristit.
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 11:22 sub, 31. 3. 2012 Naslov: |
|
|
Na predavanju se radilo brojanje rijeci. Na isti nacin mozes i ovo, samo kad dodjes do kraja rijeci treba ju i invertirati. Pocetak i kraj pamtis s dvije varijable (kad si na pocetku, zapamtis indeks; kad dodjes na kraj, iskoristis taj upamceni pocetak i sadasnji indeks koji je 1 znak iza kraja, jer kraj detektiras kao prvi [tt]isspace()[/tt]).
Na predavanju se radilo brojanje rijeci. Na isti nacin mozes i ovo, samo kad dodjes do kraja rijeci treba ju i invertirati. Pocetak i kraj pamtis s dvije varijable (kad si na pocetku, zapamtis indeks; kad dodjes na kraj, iskoristis taj upamceni pocetak i sadasnji indeks koji je 1 znak iza kraja, jer kraj detektiras kao prvi isspace()).
_________________ 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] |
|
kiara Forumaš(ica)
Pridružen/a: 15. 11. 2011. (23:22:57) Postovi: (55)16
|
|
[Vrh] |
|
quark Forumaš(ica)
Pridružen/a: 22. 10. 2011. (16:47:39) Postovi: (DA)16
Spol:
|
|
[Vrh] |
|
kkarlo Forumaš(ica)
Pridružen/a: 19. 05. 2010. (08:43:59) Postovi: (1B2)16
Spol:
|
|
[Vrh] |
|
quark Forumaš(ica)
Pridružen/a: 22. 10. 2011. (16:47:39) Postovi: (DA)16
Spol:
|
|
[Vrh] |
|
marsupial Forumaš(ica)
Pridružen/a: 09. 01. 2012. (22:46:33) Postovi: (63)16
Spol:
|
Postano: 23:30 pon, 2. 4. 2012 Naslov: |
|
|
[color=indigo]Kemije Epruvetić, zli znanstvenik, stvorio je novu vrstu virusa "B8KYM" koji živi 5 dana, te se razmnožava za faktor 8 dnevno. Drugim riječima, od jednog virusa dnevno nastane njih 8, a uz njih ostane i on sam ako to nije njegov 5. (posljednji) dan života.
Napišite program koji učitava prirodne brojeve p i n, te ispisuje koliko virusa će biti n-ti dan eksperimenta ako ih nulti dan ima točno p i svi su novi (tj. stari su nula dana i umrijet će tek 5. dan).[/color]
--------->jao.zašto - neznam.nakon 7. dana mi ne valja. do(uključujući) 6. dana je sve ok..
[code:1]#include<stdio.h>
int f(int n, int p)
{
if(n==0) return p;
else if(n==5) return 8*f(n-1,p)+f(n-1,p)-f(n-5,p);
return 8*f(n-1,p)+f(n-1,p);
}
int v(int n, int p)
{
if(n<6) return f(n,p);
return f(n,p)-f(n-5,p)+f(n-6,p);
}
int main()
{
int n, p;
scanf("%d%d", &n, &p);
printf("%d", v(n,p));
return 0;
}
[/code:1]
Kemije Epruvetić, zli znanstvenik, stvorio je novu vrstu virusa "B8KYM" koji živi 5 dana, te se razmnožava za faktor 8 dnevno. Drugim riječima, od jednog virusa dnevno nastane njih 8, a uz njih ostane i on sam ako to nije njegov 5. (posljednji) dan života.
Napišite program koji učitava prirodne brojeve p i n, te ispisuje koliko virusa će biti n-ti dan eksperimenta ako ih nulti dan ima točno p i svi su novi (tj. stari su nula dana i umrijet će tek 5. dan).
--------->jao.zašto - neznam.nakon 7. dana mi ne valja. do(uključujući) 6. dana je sve ok..
Kod: | #include<stdio.h>
int f(int n, int p)
{
if(n==0) return p;
else if(n==5) return 8*f(n-1,p)+f(n-1,p)-f(n-5,p);
return 8*f(n-1,p)+f(n-1,p);
}
int v(int n, int p)
{
if(n<6) return f(n,p);
return f(n,p)-f(n-5,p)+f(n-6,p);
}
int main()
{
int n, p;
scanf("%d%d", &n, &p);
printf("%d", v(n,p));
return 0;
}
|
|
|
[Vrh] |
|
marsupial Forumaš(ica)
Pridružen/a: 09. 01. 2012. (22:46:33) Postovi: (63)16
Spol:
|
Postano: 11:05 uto, 3. 4. 2012 Naslov: |
|
|
..onako kako sam na papiru raspisala, skraćeniji kod bi bio :
[code:1]int v(int n, int p)
{
if(n<6) return f(n,p);
return f(n,p)-f(n-6,p)*8;
} [/code:1]
međutim, na papiru mi je sve točno kao što program u zadaći računa(kada bi pješice računala), no ne mogu doći do problema kad pretočim to u program :/
..onako kako sam na papiru raspisala, skraćeniji kod bi bio :
Kod: | int v(int n, int p)
{
if(n<6) return f(n,p);
return f(n,p)-f(n-6,p)*8;
} |
međutim, na papiru mi je sve točno kao što program u zadaći računa(kada bi pješice računala), no ne mogu doći do problema kad pretočim to u program
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
|
[Vrh] |
|
marsupial Forumaš(ica)
Pridružen/a: 09. 01. 2012. (22:46:33) Postovi: (63)16
Spol:
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 11:46 uto, 3. 4. 2012 Naslov: |
|
|
Imas dvije funkcije, nimalo intuitivno nazvane [tt]f[/tt] i [tt]v[/tt]. Mozes li, molim, objasniti sto bi svaka od njih trebala vracati? Ne formule, nego opis, dakle "broj novih virusa na dan [tt]n[/tt]", "ukupni broj virusa na dan [tt]n[/tt]", "broj latica na tratincici zataknutoj za uho nilskog konja Djure",... :)
Imas dvije funkcije, nimalo intuitivno nazvane f i v. Mozes li, molim, objasniti sto bi svaka od njih trebala vracati? Ne formule, nego opis, dakle "broj novih virusa na dan n", "ukupni broj virusa na dan n", "broj latica na tratincici zataknutoj za uho nilskog konja Djure",...
_________________ 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] |
|
marsupial Forumaš(ica)
Pridružen/a: 09. 01. 2012. (22:46:33) Postovi: (63)16
Spol:
|
Postano: 11:58 uto, 3. 4. 2012 Naslov: |
|
|
ovak.. prva funkcija f mi računa broj virusa na n=0,1,2,3,4,5 dan
funkcija v mi računa broj virusa da dan n=6,..., tako da pozivam funkciju f... jel ima ikakvog smisla?
ovak.. prva funkcija f mi računa broj virusa na n=0,1,2,3,4,5 dan
funkcija v mi računa broj virusa da dan n=6,..., tako da pozivam funkciju f... jel ima ikakvog smisla?
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 12:28 uto, 3. 4. 2012 Naslov: |
|
|
Idejno ima, ali implementacija ti steka. Virusi, kako smo zakljucili, umiru sve dane (ok, osim prvih nekoliko, kad su svi "mladi"). No, to znaci da od nekog trena nadalje, vrijednost funkcije [tt]f[/tt] ovisi i o broju umrlih.
Ono sto ti radis, recimo za 7. dan je:
1. koliko ih ima (ukupno, jer pozivas funkciju [tt]f[/tt]) 7. dan i broj novih 2. dan
2. sedmi dan ih ukupno, po tebi, ima 9 puta vise nego dan prije; ok, umiranje je rijeseno u funkciji [tt]v[/tt], [b]ALI[/b]
3. dan prije, a to je 6. dan, ih ima 9 puta vise nego 5. dan. [color=red]Gdje je ovdje umiranje starih virusa?[/color]
Tebi virusi umiru samo peti i [tt]n[/tt]-ti dan, a izmedju ne. Zato uputa kaze: slozite funkciju za broj novih virusa i funkciju za njihov ukupni broj (oboje na [tt]n[/tt]-ti dan) i te dvije se uzajamno trebaju pozivati. Moze se i obicnom, jednostrukom rekurzijom (dakle, samo jedna funkcija), ali onda treba pazljivo sloziti formule (i vjerojatno ce ispasti nesto sporiji program, ali na tako male [tt]n[/tt]-ove se razlika nece osjetiti).
Aplikacija daje vrlo dobar pregled kako se to racuna. Vi mozete svoje programe modificirati tako da vam ispisuje po svim danima (pozovete funkciju u [tt]for[/tt]-petlji), kao i aplikacija, pa usporedjivati. Naravno, kad dobijete rjesenje za koje mislite da je dobro, visak ispisa trebate maknuti (prije slanja rjesenja aplikaciji).
Idejno ima, ali implementacija ti steka. Virusi, kako smo zakljucili, umiru sve dane (ok, osim prvih nekoliko, kad su svi "mladi"). No, to znaci da od nekog trena nadalje, vrijednost funkcije f ovisi i o broju umrlih.
Ono sto ti radis, recimo za 7. dan je:
1. koliko ih ima (ukupno, jer pozivas funkciju f) 7. dan i broj novih 2. dan
2. sedmi dan ih ukupno, po tebi, ima 9 puta vise nego dan prije; ok, umiranje je rijeseno u funkciji v, ALI
3. dan prije, a to je 6. dan, ih ima 9 puta vise nego 5. dan. Gdje je ovdje umiranje starih virusa?
Tebi virusi umiru samo peti i n-ti dan, a izmedju ne. Zato uputa kaze: slozite funkciju za broj novih virusa i funkciju za njihov ukupni broj (oboje na n-ti dan) i te dvije se uzajamno trebaju pozivati. Moze se i obicnom, jednostrukom rekurzijom (dakle, samo jedna funkcija), ali onda treba pazljivo sloziti formule (i vjerojatno ce ispasti nesto sporiji program, ali na tako male n-ove se razlika nece osjetiti).
Aplikacija daje vrlo dobar pregled kako se to racuna. Vi mozete svoje programe modificirati tako da vam ispisuje po svim danima (pozovete funkciju u for-petlji), kao i aplikacija, pa usporedjivati. Naravno, kad dobijete rjesenje za koje mislite da je dobro, visak ispisa trebate maknuti (prije slanja rjesenja aplikaciji).
_________________ 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] |
|
piccola Forumaš(ica)
Pridružen/a: 30. 11. 2009. (15:39:50) Postovi: (D7)16
|
|
[Vrh] |
|
|