Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
think_ink Forumaš(ica)
Pridružen/a: 21. 11. 2013. (14:44:12) Postovi: (28)16
Spol:
|
|
[Vrh] |
|
room Forumaš(ica)
Pridružen/a: 03. 11. 2013. (15:41:40) Postovi: (78)16
Spol:
|
Postano: 17:32 čet, 21. 11. 2013 Naslov: |
|
|
Pogledaj si u skripti prof. Šege zadatak 2.3.3. Tablica ti tako treba izgledati, samo što ti umjesto x0x1x2 imaš xyz, t isto ovako pišeš po redovima 0,1,2,..,7. I onda će ti p(t) biti istina za 7,6,5,3,2 (jer su ti brojevi nultočke zadanog polinoma), svi ostali će biti laž. I onda znaš kako napraviti KNF ili DNF i to pojednostaviti. :wink:
Pogledaj si u skripti prof. Šege zadatak 2.3.3. Tablica ti tako treba izgledati, samo što ti umjesto x0x1x2 imaš xyz, t isto ovako pišeš po redovima 0,1,2,..,7. I onda će ti p(t) biti istina za 7,6,5,3,2 (jer su ti brojevi nultočke zadanog polinoma), svi ostali će biti laž. I onda znaš kako napraviti KNF ili DNF i to pojednostaviti.
|
|
[Vrh] |
|
think_ink Forumaš(ica)
Pridružen/a: 21. 11. 2013. (14:44:12) Postovi: (28)16
Spol:
|
Postano: 17:51 čet, 21. 11. 2013 Naslov: |
|
|
[quote="room"]Pogledaj si u skripti prof. Šege zadatak 2.3.3. Tablica ti tako treba izgledati, samo što ti umjesto x0x1x2 imaš xyz, t isto ovako pišeš po redovima 0,1,2,..,7. I onda će ti p(t) biti istina za 7,6,5,3,2 (jer su ti brojevi nultočke zadanog polinoma), svi ostali će biti laž. I onda znaš kako napraviti KNF ili DNF i to pojednostaviti. :wink:[/quote]
Hvala ti puno :D :D
room (napisa): | Pogledaj si u skripti prof. Šege zadatak 2.3.3. Tablica ti tako treba izgledati, samo što ti umjesto x0x1x2 imaš xyz, t isto ovako pišeš po redovima 0,1,2,..,7. I onda će ti p(t) biti istina za 7,6,5,3,2 (jer su ti brojevi nultočke zadanog polinoma), svi ostali će biti laž. I onda znaš kako napraviti KNF ili DNF i to pojednostaviti. |
Hvala ti puno
|
|
[Vrh] |
|
marco ricci Forumaš(ica)
Pridružen/a: 26. 09. 2013. (10:03:55) Postovi: (B)16
Spol:
|
Postano: 19:42 čet, 21. 11. 2013 Naslov: Re: Pomoć oko zadatka |
|
|
[quote="think_ink"]...... t = (xyz)_2 nultočka polinoma
p(t) = (t − 8 )(t − 7)(t − 6)(t − 5)(t − 3)(t − 2)(t + 1)(t + 4),....[/quote]
DNF za 2,3,5,6,7,8 je vise lagano. :D
think_ink (napisa): | ...... t = (xyz)_2 nultočka polinoma
p(t) = (t − 8 )(t − 7)(t − 6)(t − 5)(t − 3)(t − 2)(t + 1)(t + 4),.... |
DNF za 2,3,5,6,7,8 je vise lagano.
Zadnja promjena: marco ricci; 20:05 čet, 21. 11. 2013; ukupno mijenjano 1 put.
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 19:57 čet, 21. 11. 2013 Naslov: Re: Pomoć oko zadatka |
|
|
[quote="marco ricci"][quote="think_ink"]...... t = (xyz)_2 nultočka polinoma
p(t) = (t − 8 )(t − 7)(t − 6)(t − 5)(t − 3)(t − 2)(t + 1)(t + 4),....[/quote]
KNF za 0,1,4 je vise lagano.[/quote]
DNF je lakse pojednostaviti, jer ne treba "izmnoziti" zagrade.
marco ricci (napisa): | think_ink (napisa): | ...... t = (xyz)_2 nultočka polinoma
p(t) = (t − 8 )(t − 7)(t − 6)(t − 5)(t − 3)(t − 2)(t + 1)(t + 4),.... |
KNF za 0,1,4 je vise lagano. |
DNF je lakse pojednostaviti, jer ne treba "izmnoziti" zagrade.
_________________ 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] |
|
Arabella Forumaš(ica)
Pridružen/a: 11. 10. 2013. (12:52:41) Postovi: (10)16
Spol:
|
|
[Vrh] |
|
fireball Forumaš(ica)
Pridružen/a: 07. 10. 2005. (18:49:17) Postovi: (4AB)16
Spol:
Lokacija: s rukom u vatri i nogom u grobu
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 17:52 sub, 4. 1. 2014 Naslov: |
|
|
"Povoljno odabrana baza" se zapravo odnosi na to da ne treba drzati po jednu znamenku u svakom clanu niza, nego ih stane do 9 (jer je [tex]10^9 < 2^31 < 10^{10}[/tex]), pa niz moze biti kraci. Ono sto se trazi je implementacija mnozenja broja (zapisanog kao niz znamenaka) s 3.
Ako se "potencira" u bazi 3 (ili nekoj koja je potencija od 3), postavlja se pitanje prebacivanja u dekadski zapis (za potrebe ispisa).
"Povoljno odabrana baza" se zapravo odnosi na to da ne treba drzati po jednu znamenku u svakom clanu niza, nego ih stane do 9 (jer je [tex]10^9 < 2^31 < 10^{10}[/tex]), pa niz moze biti kraci. Ono sto se trazi je implementacija mnozenja broja (zapisanog kao niz znamenaka) s 3.
Ako se "potencira" u bazi 3 (ili nekoj koja je potencija od 3), postavlja se pitanje prebacivanja u dekadski zapis (za potrebe ispisa).
_________________ 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] |
|
patakenjac Forumaš(ica)
Pridružen/a: 23. 10. 2011. (17:34:05) Postovi: (2F)16
|
|
[Vrh] |
|
Silenoz Forumaš(ica)
Pridružen/a: 15. 10. 2011. (18:45:11) Postovi: (4F)16
Spol:
|
Postano: 0:08 čet, 30. 1. 2014 Naslov: |
|
|
[quote="patakenjac"]Molim vas, može li pomoć oko 4. zadatka grupe B(str 8.) i to tako da složenost bude linearna. Može samo hint, tj raspis polinoma. http://degiorgi.math.hr/prog1/kolokviji/p1-kolokvij-1213-2.pdf
Unaprijed hvala![/quote]
Valjda će ti faktorijela rasti kako ideš kroz polinom. Na vodećem članu je najmanja (jer je n=k). Tako u petlji u kojoj ideš po članovima polinoma istovremeno računaš faktorijelu koja će ti trebati (znači ne ispočetka, nego koristeći prošli rezultat ;) ).
EDIT: Aha, krivo sam grupe pobrojio jer ne piše koja je grupa.
Ako je ovo što mislim da je, pukni rekurziju. Na neku sličnu foru kao što bi s petljom. Prvo si izračunaj koja je faktorijela za 'tu razinu' (dakle za slobodan član, pa ga šalji sa svime što ti treba u argument funkcije za član sa stupnjom 1... itd itd. Kad si na kraju rekurzije, imaš faktorijelu vodećeg člana, računaj sa njime, vrati što ti treba i onda taj rezultat iskorisiš u idućem koraku pa dobiveno vratiš. itd itd.
Nadam se da kužiš što mislim.
Valjda će ti faktorijela rasti kako ideš kroz polinom. Na vodećem članu je najmanja (jer je n=k). Tako u petlji u kojoj ideš po članovima polinoma istovremeno računaš faktorijelu koja će ti trebati (znači ne ispočetka, nego koristeći prošli rezultat ).
EDIT: Aha, krivo sam grupe pobrojio jer ne piše koja je grupa.
Ako je ovo što mislim da je, pukni rekurziju. Na neku sličnu foru kao što bi s petljom. Prvo si izračunaj koja je faktorijela za 'tu razinu' (dakle za slobodan član, pa ga šalji sa svime što ti treba u argument funkcije za član sa stupnjom 1... itd itd. Kad si na kraju rekurzije, imaš faktorijelu vodećeg člana, računaj sa njime, vrati što ti treba i onda taj rezultat iskorisiš u idućem koraku pa dobiveno vratiš. itd itd.
Nadam se da kužiš što mislim.
|
|
[Vrh] |
|
shimija Forumaš(ica)
Pridružen/a: 22. 01. 2007. (18:33:54) Postovi: (138)16
Spol:
Lokacija: Spljit
|
|
[Vrh] |
|
patakenjac Forumaš(ica)
Pridružen/a: 23. 10. 2011. (17:34:05) Postovi: (2F)16
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 10:11 čet, 30. 1. 2014 Naslov: |
|
|
Ako sam dobro razumio, buni te da faktorijele treba racunati "unatrag": [tex]n![/tex], [tex](n-1)![/tex], [tex](n-2)![/tex],...
Ideja: prije petlje izracunaj [tex]n![/tex], a onda ga u svakom koraku dijeli, u prvom s [tex]n[/tex], u drugom s [tex]n-1[/tex], itd.
Ako sam dobro razumio, buni te da faktorijele treba racunati "unatrag": [tex]n![/tex], [tex](n-1)![/tex], [tex](n-2)![/tex],...
Ideja: prije petlje izracunaj [tex]n![/tex], a onda ga u svakom koraku dijeli, u prvom s [tex]n[/tex], u drugom s [tex]n-1[/tex], itd.
_________________ 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] |
|
patakenjac Forumaš(ica)
Pridružen/a: 23. 10. 2011. (17:34:05) Postovi: (2F)16
|
|
[Vrh] |
|
sionjungle Forumaš(ica)
Pridružen/a: 29. 01. 2014. (21:37:23) Postovi: (12)16
|
Postano: 12:10 ned, 22. 3. 2015 Naslov: zadatak |
|
|
Jel se zna možda tko ispravlja koji zadatak na domaćim zadaćama, ili to ide random...imam problem jer mi u aplikaciji stoji da mi je zadatak netočan i da je greška za neki konkretan input, no za taj input meni zadatak radi, uostalom, isprobao san na 15-ak različitih inputa i za svaki mi je program radio. Možda imam neku banalnu grešku tipa jedan razmak ili tako nešto pa mi je zadatak zbog toga nepriznat, pa da me se uputi na to.
Jel se zna možda tko ispravlja koji zadatak na domaćim zadaćama, ili to ide random...imam problem jer mi u aplikaciji stoji da mi je zadatak netočan i da je greška za neki konkretan input, no za taj input meni zadatak radi, uostalom, isprobao san na 15-ak različitih inputa i za svaki mi je program radio. Možda imam neku banalnu grešku tipa jedan razmak ili tako nešto pa mi je zadatak zbog toga nepriznat, pa da me se uputi na to.
|
|
[Vrh] |
|
mdoko Forumaš(ica)
Pridružen/a: 30. 11. 2002. (22:17:12) Postovi: (71A)16
Spol:
Lokacija: Heriot-Watt University, Edinburgh
|
Postano: 12:34 ned, 22. 3. 2015 Naslov: Re: zadatak |
|
|
[quote="sionjungle"]Jel se zna možda tko ispravlja koji zadatak na domaćim zadaćama, ili to ide random...imam problem jer mi u aplikaciji stoji da mi je zadatak netočan i da je greška za neki konkretan input, no za taj input meni zadatak radi, uostalom, isprobao san na 15-ak različitih inputa i za svaki mi je program radio. Možda imam neku banalnu grešku tipa jedan razmak ili tako nešto pa mi je zadatak zbog toga nepriznat, pa da me se uputi na to.[/quote]
Ako se nešto nije promijenilo iz vremena mog asistentovanja, softver ispravlja zadaće uspoređujući outpute na raznim testnim primjerima.
sionjungle (napisa): | Jel se zna možda tko ispravlja koji zadatak na domaćim zadaćama, ili to ide random...imam problem jer mi u aplikaciji stoji da mi je zadatak netočan i da je greška za neki konkretan input, no za taj input meni zadatak radi, uostalom, isprobao san na 15-ak različitih inputa i za svaki mi je program radio. Možda imam neku banalnu grešku tipa jedan razmak ili tako nešto pa mi je zadatak zbog toga nepriznat, pa da me se uputi na to. |
Ako se nešto nije promijenilo iz vremena mog asistentovanja, softver ispravlja zadaće uspoređujući outpute na raznim testnim primjerima.
_________________ Extraordinary claims require extraordinary evidence. – Carl Sagan
|
|
[Vrh] |
|
napolitanka Forumaš(ica)
Pridružen/a: 11. 10. 2014. (07:50:24) Postovi: (A)16
|
Postano: 17:42 ned, 19. 4. 2015 Naslov: |
|
|
Može li me netko pomoći sa ovim zadatkom, uvijek dobijem rezultat koji je za 2 manji od točnog.
[quote]Napišite program koji učitava prirodni broj k < 9, te niz od k različitih dekadskih znamenaka. Ukoliko učitane znamenke nisu različite, program treba ispisati poruku "Greska!" (bez navodnika).
Program treba ispisati sumu svih prirodnih brojeva čije su znamenke iz učitanog niza, te se ne ponavljaju unutar jednog broja.
Na primjer, za k = 2 i učitane brojeve 1 i 3, program ispisuje "48" (jer je 1+3+13+31=48).[/quote]
[code:1]int f(int niz[],int k, int suma,int zadnji)
{
int i;
int p=0;
if(zadnji==k) return suma;
for(i=0;i<k;i++)
{
if(zadnji<=i) p+=f(niz,k,suma*10+niz[i],zadnji+1);
}
return p;
}[/code:1]
poziv:
[code:1] printf("%d",f(niz,k,0,0));[/code:1]
Prvi dio zadatka mi normalno radi (soritram niz i provjerim jesu li susjedni clanovi isti).
Može li me netko pomoći sa ovim zadatkom, uvijek dobijem rezultat koji je za 2 manji od točnog.
Citat: | Napišite program koji učitava prirodni broj k < 9, te niz od k različitih dekadskih znamenaka. Ukoliko učitane znamenke nisu različite, program treba ispisati poruku "Greska!" (bez navodnika).
Program treba ispisati sumu svih prirodnih brojeva čije su znamenke iz učitanog niza, te se ne ponavljaju unutar jednog broja.
Na primjer, za k = 2 i učitane brojeve 1 i 3, program ispisuje "48" (jer je 1+3+13+31=4. |
Kod: | int f(int niz[],int k, int suma,int zadnji)
{
int i;
int p=0;
if(zadnji==k) return suma;
for(i=0;i<k;i++)
{
if(zadnji<=i) p+=f(niz,k,suma*10+niz[i],zadnji+1);
}
return p;
} |
poziv:
Kod: | printf("%d",f(niz,k,0,0)); |
Prvi dio zadatka mi normalno radi (soritram niz i provjerim jesu li susjedni clanovi isti).
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 21:18 ned, 19. 4. 2015 Naslov: |
|
|
[code:1]#include <stdio.h>
int f(int niz[],int k, int suma,int zadnji)
{
int i;
int p=0;
if(zadnji==k) {
printf("%d\n", suma);
return suma;
}
for(i=0;i<k;i++)
{
if(zadnji<=i) p+=f(niz,k,suma*10+niz[i],zadnji+1);
}
return p;
}
int main(void) {
int niz[] = {1,3};
int k = 2;
printf("%d",f(niz,k,0,0));
return 0;
}[/code:1]
Ovo je tvoj kod s dodanim ispisom (i uzidanim nizom, da ne gubimo vrijeme na ucitavanje). Ispis:
[code:1]13
33[/code:1]
Dakle:
1. ponavljas znamenke (33),
2. dozvoljavas prvu znamenku samo na prvo mjesto,
3. uzimas u obzir samo brojeve pune duljine (nema jednoznamenkastih, na primjer).
Kako to rijesiti?
1. Najlakse je dodati jos jedan niz u kojem s 0/1 pamtis koja znamenka je koristena, a koja ne. Alternativno, mozes za svaku novu znamenku provjeravati nalazi li se u trenutnom broju (koji se pogresno zove [tt]suma[/tt]).
2. Kad maknes [tt]if[/tt] u petlji, dozvoljavat ces sve znamenke svuda.
3. Inicijaliziraj [tt]p[/tt] na vrijednost [tt]suma[/tt], umjesto na nulu.
Kod: | #include <stdio.h>
int f(int niz[],int k, int suma,int zadnji)
{
int i;
int p=0;
if(zadnji==k) {
printf("%d\n", suma);
return suma;
}
for(i=0;i<k;i++)
{
if(zadnji<=i) p+=f(niz,k,suma*10+niz[i],zadnji+1);
}
return p;
}
int main(void) {
int niz[] = {1,3};
int k = 2;
printf("%d",f(niz,k,0,0));
return 0;
} |
Ovo je tvoj kod s dodanim ispisom (i uzidanim nizom, da ne gubimo vrijeme na ucitavanje). Ispis:
Dakle:
1. ponavljas znamenke (33),
2. dozvoljavas prvu znamenku samo na prvo mjesto,
3. uzimas u obzir samo brojeve pune duljine (nema jednoznamenkastih, na primjer).
Kako to rijesiti?
1. Najlakse je dodati jos jedan niz u kojem s 0/1 pamtis koja znamenka je koristena, a koja ne. Alternativno, mozes za svaku novu znamenku provjeravati nalazi li se u trenutnom broju (koji se pogresno zove suma).
2. Kad maknes if u petlji, dozvoljavat ces sve znamenke svuda.
3. Inicijaliziraj p na vrijednost suma, umjesto na nulu.
_________________ 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] |
|
pubava Forumaš(ica)
Pridružen/a: 08. 10. 2014. (13:47:07) Postovi: (A)16
|
Postano: 22:49 pon, 8. 6. 2015 Naslov: |
|
|
Može li mi netko objasniti zašto za listu s elementima:
[code:1]
5, 5, "Delnice", 22.3;
6, 6, "Rijeka", 35.8;
2, 2, "Zagreb", 9.2;
10, 10, "Trsce", 5.8;
1, 1, "Cabar", 3.2;
[/code:1]
nakon poziva ove funkcije (novi=odvoji(&first, 50.0)) prilikom ponovnog ispisa stare liste izbacuje samo prvi element, a trebao bi sve?
(za novu listu uredno ispisuje da je prazna)
Radi se o zadatku s prošlogodišnjeg 2. kolokvija; treba prebaciti elemente koji imaju temperaturu veću od neke zadane u novu listu.
[code:1]
element* odvoji(element**first, double t)
{
element *prvi=NULL, *pom, *zadnji, *preth=NULL;
while((*first)->temp >t)
{
if(prvi){
zadnji=zadnji->next=(*first);
(*first)=(*first)->next;
}
else
{
zadnji=prvi=(*first);
(*first)=(*first)->next;
}
}
if(!(*first)) return prvi;
preth=(*first);
pom=preth->next;
while(pom!=NULL)
{
if(pom->temp >t)
{
if(prvi) zadnji=zadnji->next=pom;
else zadnji=prvi=pom;
preth->next=pom->next;
}
else{
preth=pom;
pom=pom->next;
}
}
zadnji->next=NULL;
return prvi;
}
[/code:1]
Može li mi netko objasniti zašto za listu s elementima:
Kod: |
5, 5, "Delnice", 22.3;
6, 6, "Rijeka", 35.8;
2, 2, "Zagreb", 9.2;
10, 10, "Trsce", 5.8;
1, 1, "Cabar", 3.2;
|
nakon poziva ove funkcije (novi=odvoji(&first, 50.0)) prilikom ponovnog ispisa stare liste izbacuje samo prvi element, a trebao bi sve?
(za novu listu uredno ispisuje da je prazna)
Radi se o zadatku s prošlogodišnjeg 2. kolokvija; treba prebaciti elemente koji imaju temperaturu veću od neke zadane u novu listu.
Kod: |
element* odvoji(element**first, double t)
{
element *prvi=NULL, *pom, *zadnji, *preth=NULL;
while((*first)->temp >t)
{
if(prvi){
zadnji=zadnji->next=(*first);
(*first)=(*first)->next;
}
else
{
zadnji=prvi=(*first);
(*first)=(*first)->next;
}
}
if(!(*first)) return prvi;
preth=(*first);
pom=preth->next;
while(pom!=NULL)
{
if(pom->temp >t)
{
if(prvi) zadnji=zadnji->next=pom;
else zadnji=prvi=pom;
preth->next=pom->next;
}
else{
preth=pom;
pom=pom->next;
}
}
zadnji->next=NULL;
return prvi;
}
|
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 23:50 pon, 8. 6. 2015 Naslov: |
|
|
Moguce nesto compiler-specificno. Po meni, taj poziv bi se morao srusiti zbog predzadnje linije u funkciji:
[tt]zadnji-[i][/i]>next=NULL;[/tt]
Posto vrijednost varijable [tt]zadnji[/tt] nije nigdje definirana, dereferenciranje bi trebalo srusiti program, no moguce je da iz nekog razloga (ovisno o compileru i tome sto je program prethodno radio) ta varijabla pokazuje na istu celiju kao i [tt]first[/tt] (i.e., [tt]zadnji == first[/tt]), sto bi objasnilo zasto se program ponasa kako se ponasa.
Moguce nesto compiler-specificno. Po meni, taj poziv bi se morao srusiti zbog predzadnje linije u funkciji:
zadnji->next=NULL;
Posto vrijednost varijable zadnji nije nigdje definirana, dereferenciranje bi trebalo srusiti program, no moguce je da iz nekog razloga (ovisno o compileru i tome sto je program prethodno radio) ta varijabla pokazuje na istu celiju kao i first (i.e., zadnji == first), sto bi objasnilo zasto se program ponasa kako se ponasa.
_________________ 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] |
|
|