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

Zadatak iz zadace.
WWW:
Idite na Prethodno  1, 2, 3 ... 15, 16, 17, 18  Sljedeće
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
mdoko
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 30. 11. 2002. (22:17:12)
Postovi: (71A)16
Spol: muško
Sarma = la pohva - posuda
199 = 237 - 38
Lokacija: Heriot-Watt University, Edinburgh

PostPostano: 17:30 čet, 4. 4. 2013    Naslov: Citirajte i odgovorite

[quote="frutabella"]Da se samo ubacim s pitanjem kad je Mdoko vec tu:
sta ne ulazi u kolokvij?
(nitko nista ne javlja od studenata, ne znam sta nam je presjek)[/quote]
Mislim da je moja grupa ona koja je najviše napravila, pa ću teško ja biti taj koji može kvalitetno odgovoriti na to pitanje.
frutabella (napisa):
Da se samo ubacim s pitanjem kad je Mdoko vec tu:
sta ne ulazi u kolokvij?
(nitko nista ne javlja od studenata, ne znam sta nam je presjek)

Mislim da je moja grupa ona koja je najviše napravila, pa ću teško ja biti taj koji može kvalitetno odgovoriti na to pitanje.



_________________
Extraordinary claims require extraordinary evidence. – Carl Sagan
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
frutabella
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 09. 10. 2010. (16:35:36)
Postovi: (24E)16
Sarma = la pohva - posuda
-5 = 42 - 47

PostPostano: 17:56 čet, 4. 4. 2013    Naslov: Citirajte i odgovorite

[quote="mdoko"][quote="frutabella"]Da se samo ubacim s pitanjem kad je Mdoko vec tu:
sta ne ulazi u kolokvij?
(nitko nista ne javlja od studenata, ne znam sta nam je presjek)[/quote]
Mislim da je moja grupa ona koja je najviše napravila, pa ću teško ja biti taj koji može kvalitetno odgovoriti na to pitanje.[/quote]


Mislila sam da ste do sad mozda vec razgovarali s ostalim kolegama pa da mozda nesto znate.
mdoko (napisa):
frutabella (napisa):
Da se samo ubacim s pitanjem kad je Mdoko vec tu:
sta ne ulazi u kolokvij?
(nitko nista ne javlja od studenata, ne znam sta nam je presjek)

Mislim da je moja grupa ona koja je najviše napravila, pa ću teško ja biti taj koji može kvalitetno odgovoriti na to pitanje.



Mislila sam da ste do sad mozda vec razgovarali s ostalim kolegama pa da mozda nesto znate.


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


Pridružen/a: 30. 11. 2002. (22:17:12)
Postovi: (71A)16
Spol: muško
Sarma = la pohva - posuda
199 = 237 - 38
Lokacija: Heriot-Watt University, Edinburgh

PostPostano: 18:04 čet, 4. 4. 2013    Naslov: Citirajte i odgovorite

[quote="frutabella"][quote="mdoko"][quote="frutabella"]Da se samo ubacim s pitanjem kad je Mdoko vec tu:
sta ne ulazi u kolokvij?
(nitko nista ne javlja od studenata, ne znam sta nam je presjek)[/quote]
Mislim da je moja grupa ona koja je najviše napravila, pa ću teško ja biti taj koji može kvalitetno odgovoriti na to pitanje.[/quote]


Mislila sam da ste do sad mozda vec razgovarali s ostalim kolegama pa da mozda nesto znate.[/quote]

Koliko je meni poznato, jedna grupa nije obradila nizove stringova.
frutabella (napisa):
mdoko (napisa):
frutabella (napisa):
Da se samo ubacim s pitanjem kad je Mdoko vec tu:
sta ne ulazi u kolokvij?
(nitko nista ne javlja od studenata, ne znam sta nam je presjek)

Mislim da je moja grupa ona koja je najviše napravila, pa ću teško ja biti taj koji može kvalitetno odgovoriti na to pitanje.



Mislila sam da ste do sad mozda vec razgovarali s ostalim kolegama pa da mozda nesto znate.


Koliko je meni poznato, jedna grupa nije obradila nizove stringova.



_________________
Extraordinary claims require extraordinary evidence. – Carl Sagan
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
Shirohige
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 16. 11. 2012. (20:19:56)
Postovi: (ED)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
12 = 15 - 3

PostPostano: 12:33 ned, 7. 4. 2013    Naslov: Citirajte i odgovorite

Zadatak iz zadaće, Rekurzije 2:

Dobio sam na mail provjeru i piše:
Provjera zad: 1 (netočno za input: 2 6)

Usporedio sam rezultate na stranici za zadaće i svog programa i ispadne isto:

[url]http://img90.imageshack.us/img90/2746/epruveti.png[/url]

Je li problem možda u formatu ispisa?

Moj main:
[code:1]int main(void)
{
int n,p;

scanf("%d", &p);
scanf("%d", &n);

printf("%d", novi(p, n, 1, p));

return 0;
}[/code:1]
Zadatak iz zadaće, Rekurzije 2:

Dobio sam na mail provjeru i piše:
Provjera zad: 1 (netočno za input: 2 6)

Usporedio sam rezultate na stranici za zadaće i svog programa i ispadne isto:

http://img90.imageshack.us/img90/2746/epruveti.png

Je li problem možda u formatu ispisa?

Moj main:
Kod:
int main(void)
{
    int n,p;

    scanf("%d", &p);
    scanf("%d", &n);

    printf("%d", novi(p, n, 1, p));

    return 0;
}


[Vrh]
Korisnički profil Pošaljite privatnu poruku
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3560)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 13:04 ned, 7. 4. 2013    Naslov: Citirajte i odgovorite

Nope. Imas bug koji se iz nekog razloga ne manifestira na tvojoj masini, ali se manifestira na DeGiorgiju.

Hint: Sto ti vraca [tt]novi()[/tt]? Pogledaj sva moguca izvrsavanja i provjeri [tt]return[/tt]-ove.
Nope. Imas bug koji se iz nekog razloga ne manifestira na tvojoj masini, ali se manifestira na DeGiorgiju.

Hint: Sto ti vraca novi()? Pogledaj sva moguca izvrsavanja i provjeri return-ove.



_________________
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.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
Shirohige
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 16. 11. 2012. (20:19:56)
Postovi: (ED)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
12 = 15 - 3

PostPostano: 18:17 pon, 8. 4. 2013    Naslov: Citirajte i odgovorite

Bila je greška kod devetog dana tj. oduzimalo mi je opet one koji su već "umrli", ali sad je kod rađen točno prema uputi, ubacio sam petlju da ispiše za svaki p odmah svih 9 dana (aplikaciji sam naravno "poslao" verziju gdje se učitava p i n):

[url]http://imageshack.us/a/img405/5136/842013100727.png[/url]
[url]http://imageshack.us/a/img838/9407/842013100802.png[/url]
[url]http://imageshack.us/a/img90/9599/842013100837.png[/url]

Ali aplikacija za dz opet kaže: Provjera zad: 1 (netočno za input: 1 3)
:(
Bila je greška kod devetog dana tj. oduzimalo mi je opet one koji su već "umrli", ali sad je kod rađen točno prema uputi, ubacio sam petlju da ispiše za svaki p odmah svih 9 dana (aplikaciji sam naravno "poslao" verziju gdje se učitava p i n):

http://imageshack.us/a/img405/5136/842013100727.png
http://imageshack.us/a/img838/9407/842013100802.png
http://imageshack.us/a/img90/9599/842013100837.png

Ali aplikacija za dz opet kaže: Provjera zad: 1 (netočno za input: 1 3)
Sad


[Vrh]
Korisnički profil Pošaljite privatnu poruku
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3560)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 19:04 pon, 8. 4. 2013    Naslov: Citirajte i odgovorite

To sto si nasao druge greske, ne znaci da ono sto sam ja sugerirao nije greska. Dok to ne sredis, nece ti raditi.
To sto si nasao druge greske, ne znaci da ono sto sam ja sugerirao nije greska. Dok to ne sredis, nece ti raditi.



_________________
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.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
Shirohige
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 16. 11. 2012. (20:19:56)
Postovi: (ED)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
12 = 15 - 3

PostPostano: 22:26 pon, 8. 4. 2013    Naslov: Citirajte i odgovorite

[quote="vsego"]To sto si nasao druge greske, ne znaci da ono sto sam ja sugerirao nije greska. Dok to ne sredis, nece ti raditi.[/quote]

Spojio sam se preko putty-a na studenta i tamo izveo program i naravno, izbacivao je neke "bijesne" brojke. I problem je stvarno bio u "poziciji" returna i još par detalja. Ugl.

Područje: Rekurzije 2
Provjera zad: 1 (ok)
Zadaća u potpunosti riješena točno!

:)

Hvala na pomoći!


Ko mi kriv što koristim Windowse :roll:
vsego (napisa):
To sto si nasao druge greske, ne znaci da ono sto sam ja sugerirao nije greska. Dok to ne sredis, nece ti raditi.


Spojio sam se preko putty-a na studenta i tamo izveo program i naravno, izbacivao je neke "bijesne" brojke. I problem je stvarno bio u "poziciji" returna i još par detalja. Ugl.

Područje: Rekurzije 2
Provjera zad: 1 (ok)
Zadaća u potpunosti riješena točno!

Smile

Hvala na pomoći!


Ko mi kriv što koristim Windowse Rolling Eyes


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


Pridružen/a: 03. 09. 2012. (15:59:06)
Postovi: (92)16
Sarma = la pohva - posuda
29 = 31 - 2

PostPostano: 20:05 ned, 14. 4. 2013    Naslov: Citirajte i odgovorite

Imam pitanje, dakle, ne treba mi analiza koda (s debuggiranjem ću se rado sam zabavljati :D, a i znam da je kod neoptimiziran. Jako.), nego čisto "primjer" na čemu kôd padne, ja nisam našao nešto razumno, a zadatak mi pada na nekom primjeru koji mi ne stane preko cijelog ekrana kad mi dođe na mail. :D

Zadatak glasi:

Napišite program koji učitava jednu liniju teksta s najviše 14150 znakova. Tom tekstu treba izbrisati svaku 4. riječ, a ostalima izokrenuti redoslijed slova (same riječi ostaju u originalnom poretku). Tako dobiveni tekst treba ispisati.
Možete pretpostaviti da tekst sadrži samo slova i razmake.

Moj glup kod je:

[code:1]#include <stdio.h>
#include <string.h>

void invert(char *s, int start, int end)
{
int i, strlen_s = end - start + 1;

char t;

for (i = 0; i < strlen_s/2; ++i)
{
t = s[start + i];
s[start + i] = s[end - i];
s[end - i] = t;
}
}

int main(void)
{
char s[14150], i, word_cnt = 0, begin, strlen_next, j;

scanf("%[^\n]", s);

for (i = 0; i < strlen(s) && s[i] != '\0'; ++i)
{
if (s[i] == ' ')
{
begin = i+1;
word_cnt++;
}

strlen_next = 0;

if (word_cnt%4 == 3)
for (j = begin; s[j] != ' ' && s[j] != '\0'; ++j)
strlen_next++;

for (j = begin; j < strlen(s) - strlen_next; ++j)
s[j] = s[j + strlen_next];

s[j] = '\0';
}

for (i = 0; i < strlen(s) - 1; ++i)
{
if (s[i] == ' ' && s[i+1] == ' ')
for (j = i; j < strlen(s) - 1; ++j)
s[j] = s[j+1];

s[j] = '\0';
}

int start, end;

for (i = 0; s[i] != '\0'; ++i)
{
j = i-1;

if (s[j] == ' ' || i == 0)
{
if (i == 0)
start = i;
else
start = j+1;

j++;

while (s[j] != ' ' && s[j] != '\0')
j++;

end = j-1;

invert(s, start, end);
}
}

printf("%s", s);

return 0;
}
[/code:1]
Imam pitanje, dakle, ne treba mi analiza koda (s debuggiranjem ću se rado sam zabavljati Very Happy, a i znam da je kod neoptimiziran. Jako.), nego čisto "primjer" na čemu kôd padne, ja nisam našao nešto razumno, a zadatak mi pada na nekom primjeru koji mi ne stane preko cijelog ekrana kad mi dođe na mail. Very Happy

Zadatak glasi:

Napišite program koji učitava jednu liniju teksta s najviše 14150 znakova. Tom tekstu treba izbrisati svaku 4. riječ, a ostalima izokrenuti redoslijed slova (same riječi ostaju u originalnom poretku). Tako dobiveni tekst treba ispisati.
Možete pretpostaviti da tekst sadrži samo slova i razmake.

Moj glup kod je:

Kod:
#include <stdio.h>
#include <string.h>

void invert(char *s, int start, int end)
{
    int i, strlen_s = end - start + 1;

    char t;

    for (i = 0; i < strlen_s/2; ++i)
    {
        t = s[start + i];
        s[start + i] = s[end - i];
        s[end - i] = t;
    }
}

int main(void)
{
    char s[14150], i, word_cnt = 0, begin, strlen_next, j;

    scanf("%[^\n]", s);

    for (i = 0; i < strlen(s) && s[i] != '\0'; ++i)
    {
        if (s[i] == ' ')
        {
            begin = i+1;
            word_cnt++;
        }

        strlen_next = 0;

        if (word_cnt%4 == 3)
            for (j = begin; s[j] != ' ' && s[j] != '\0'; ++j)
                strlen_next++;

        for (j = begin; j < strlen(s) - strlen_next; ++j)
            s[j] = s[j + strlen_next];

        s[j] = '\0';
    }

    for (i = 0; i < strlen(s) - 1; ++i)
    {
        if (s[i] == ' ' && s[i+1] == ' ')
            for (j = i; j < strlen(s) - 1; ++j)
                s[j] = s[j+1];

        s[j] = '\0';
    }

    int start, end;

    for (i = 0; s[i] != '\0'; ++i)
    {
        j = i-1;

        if (s[j] == ' ' || i == 0)
        {
            if (i == 0)
                start = i;
            else
                start = j+1;

                j++;

            while (s[j] != ' ' && s[j] != '\0')
                j++;

            end = j-1;

            invert(s, start, end);
        }
    }

    printf("%s", s);

    return 0;
}


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


Pridružen/a: 12. 10. 2012. (18:45:05)
Postovi: (5)16
Spol: zombi
Sarma = la pohva - posuda
= 2 - 0

PostPostano: 23:51 ned, 14. 4. 2013    Naslov: Citirajte i odgovorite

Npr. za input
[code:1] prva druga treca cetvrta[/code:1]

vraća
[code:1] avrp agurd acert [/code:1]

pa očito briše razmake gdje nebi trebao :D
Npr. za input
Kod:
    prva druga treca cetvrta


vraća
Kod:
  avrp agurd acert


pa očito briše razmake gdje nebi trebao Very Happy


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


Pridružen/a: 03. 09. 2012. (15:59:06)
Postovi: (92)16
Sarma = la pohva - posuda
29 = 31 - 2

PostPostano: 0:14 pon, 15. 4. 2013    Naslov: Citirajte i odgovorite

U pravu si, nepotrebno sam pretpostavio da je string oblika [tt]rijec-jedan razmak-rijec...[/tt]. :facepalm:

Onda mi je jasno i zasto pada tako da mozete zanemariti gornji post do eventualnog novog problema. :D
U pravu si, nepotrebno sam pretpostavio da je string oblika rijec-jedan razmak-rijec.... O, kuku meni...

Onda mi je jasno i zasto pada tako da mozete zanemariti gornji post do eventualnog novog problema. Very Happy


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


Pridružen/a: 15. 10. 2011. (18:45:11)
Postovi: (4F)16
Spol: zombi
Sarma = la pohva - posuda
= 5 - 3

PostPostano: 6:24 sri, 17. 4. 2013    Naslov: Citirajte i odgovorite

[quote]Zadatak 3:
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]#include <stdio.h>
int zbrojzn(int n, int zbr, int k)
{if (n==0) return 0;
n=zbr*k+zbrojzn(n-1,zbr, k*10+1);
return n;}
int main(void)
{int k, zbr, i, j,zn[10];
zbr=0;
scanf("%d",&k);
for (i=0; i<k;i++)
{scanf("%d",&zn[i]);
}
for (i=0; i<k;i++)
{
for (j=0;j<i;j++)
{if (zn[j]==zn[i])
{printf ("Greska!");
return 0;
}
}
zbr+=zn[i];
}

printf("%d", zbrojzn(k, zbr,1));
return 0;
}[/code:1]
Zašto mi ovo ne radi? Tj radi, ali sajt za zadaće kaže da ne valja.
Citat:
Zadatak 3:
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=4Cool.


Kod:
#include <stdio.h>
int zbrojzn(int n, int zbr, int k)
    {if (n==0) return 0;
    n=zbr*k+zbrojzn(n-1,zbr, k*10+1);
    return n;}
int main(void)
    {int k, zbr, i, j,zn[10];
    zbr=0;
    scanf("%d",&k);
    for (i=0; i<k;i++)
        {scanf("%d",&zn[i]);
        }
    for (i=0; i<k;i++)
        {
      for (j=0;j<i;j++)
            {if (zn[j]==zn[i])
                {printf ("Greska!");
                return 0;
                }
            }
        zbr+=zn[i];
   }

    printf("%d", zbrojzn(k, zbr,1));
    return 0;
    }

Zašto mi ovo ne radi? Tj radi, ali sajt za zadaće kaže da ne valja.


[Vrh]
Korisnički profil Pošaljite privatnu poruku
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3560)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 6:52 sri, 17. 4. 2013    Naslov: Citirajte i odgovorite

Zato sto si si nastimao za neki mali primjer (vjerojatno ovaj iz zadace) i ocekujes da radi i za vece.

Basically, tvoj program racuna [tex]zbr + 11zbr + 111zbr + \dots[/tex] (rekurzija ti za to uopce ne treba). Nemam nista protiv, ali dokazi (matematicki) zasto bi ta formula bila dobra.

Recimo, za brojeve 1, 2, 3:
[tex]1+2+3+12+13+21+23+31+32+123+132+213+231+312+321 = 1470[/tex],
a tebi ispada
[tex]1\cdot(1+2+3) + 11\cdot(1+2+3) + 111\cdot(1+2+3) = 738[/tex].
Zato sto si si nastimao za neki mali primjer (vjerojatno ovaj iz zadace) i ocekujes da radi i za vece.

Basically, tvoj program racuna [tex]zbr + 11zbr + 111zbr + \dots[/tex] (rekurzija ti za to uopce ne treba). Nemam nista protiv, ali dokazi (matematicki) zasto bi ta formula bila dobra.

Recimo, za brojeve 1, 2, 3:
[tex]1+2+3+12+13+21+23+31+32+123+132+213+231+312+321 = 1470[/tex],
a tebi ispada
[tex]1\cdot(1+2+3) + 11\cdot(1+2+3) + 111\cdot(1+2+3) = 738[/tex].



_________________
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.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
Silenoz
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 15. 10. 2011. (18:45:11)
Postovi: (4F)16
Spol: zombi
Sarma = la pohva - posuda
= 5 - 3

PostPostano: 7:11 sri, 17. 4. 2013    Naslov: Citirajte i odgovorite

[quote="vsego"]Zato sto si si nastimao za neki mali primjer (vjerojatno ovaj iz zadace) i ocekujes da radi i za vece.

Basically, tvoj program racuna [tex]zbr + 11zbr + 111zbr + \dots[/tex] (rekurzija ti za to uopce ne treba). Nemam nista protiv, ali dokazi (matematicki) zasto bi ta formula bila dobra.

Recimo, za brojeve 1, 2, 3:
[tex]1+2+3+12+13+21+23+31+32+123+132+213+231+312+321 = 1470[/tex],
a tebi ispada
[tex]1\cdot(1+2+3) + 11\cdot(1+2+3) + 111\cdot(1+2+3) = 738[/tex].[/quote]
Hvala, nisam išao za tim.
Zapravo formula bi bila zbr +(n-1)*(11*zbr+111*zbr..).
Jesam u pravu? Ili na četveroznamenkastima ima još više kombnacija?
Kako bih onda rekurzijom trebao rješavati? Makar, ovo mi se čini daleko najjednostavnije i najbrže izbršeno (osim ako 'genijalac' kao ja ne zafrkne formulu).
vsego (napisa):
Zato sto si si nastimao za neki mali primjer (vjerojatno ovaj iz zadace) i ocekujes da radi i za vece.

Basically, tvoj program racuna [tex]zbr + 11zbr + 111zbr + \dots[/tex] (rekurzija ti za to uopce ne treba). Nemam nista protiv, ali dokazi (matematicki) zasto bi ta formula bila dobra.

Recimo, za brojeve 1, 2, 3:
[tex]1+2+3+12+13+21+23+31+32+123+132+213+231+312+321 = 1470[/tex],
a tebi ispada
[tex]1\cdot(1+2+3) + 11\cdot(1+2+3) + 111\cdot(1+2+3) = 738[/tex].

Hvala, nisam išao za tim.
Zapravo formula bi bila zbr +(n-1)*(11*zbr+111*zbr..).
Jesam u pravu? Ili na četveroznamenkastima ima još više kombnacija?
Kako bih onda rekurzijom trebao rješavati? Makar, ovo mi se čini daleko najjednostavnije i najbrže izbršeno (osim ako 'genijalac' kao ja ne zafrkne formulu).


[Vrh]
Korisnički profil Pošaljite privatnu poruku
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3560)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 10:17 sri, 17. 4. 2013    Naslov: Citirajte i odgovorite

Ne znam koja je formula niti ima li je (u nekom razumnom obliku). Ako tvrdis da je neka formula ispravna, zdravo je to dokazati. Znam da postoji nerekurzivno rjesenje, ali ne znam napamet koje je (a ne mozga mi se sad o tome).

Poanta zadatka je ionako da se vjezbaju rekurzije, no nitko ti nece prigovarati ako to uspjesno izbjegnes (kinda beats the purpose, ali isto se moze reci i za rjesavanje zadace nakon kolokvija za koji te ona priprema).

Ima jos jedan detalj koji bi mogao biti problem: rezultat moze biti solidno velik broj. Vjerojatno bi [tt]long[/tt] bio s(p)retniji izbor od [tt]int[/tt].

Sto se tice primjera za 4, ovo sam nabrzinu skucao u PERLu:
[code:1]$ perl -e '$br=1234;$br=join"",reverse sort split//,$br;$s=0;foreach$x(1..$br){next if$x=~/[^$br]/||$x=~/(.).*\1/;$s+=$x;}print"$s\n";'[/code:1]
U osnovi, kod kaze "trci od 1 do 4321, preskoci sve koji imaju znamenku razlicitu od 1,2,3, ili dvije iste znamenke, a ono sto ostane zbroji". Za 123 radi korektno, a cini mi se da je i za ovo ok, a tu vraca [b]73660[/b]. Tvoja formula bi vratila
[tex](1 + 2 + 3 + 4) + (4-1) \cdot (11 \cdot (1 + 2 + 3 + 4) + 111 \cdot (1 + 2 + 3 + 4) + 1111 \cdot (1 + 2 + 3 + 4)) = 37000[/tex].
Dakle, koju god formulu da koristis, ako ti ne radi, dokazi matematicki da bi trebala raditi, pa cemo onda traziti gresku u kodu. Ili jednostavno napisi korektnu rekurziju koja prolazi kroz sve takve brojeve.
Ne znam koja je formula niti ima li je (u nekom razumnom obliku). Ako tvrdis da je neka formula ispravna, zdravo je to dokazati. Znam da postoji nerekurzivno rjesenje, ali ne znam napamet koje je (a ne mozga mi se sad o tome).

Poanta zadatka je ionako da se vjezbaju rekurzije, no nitko ti nece prigovarati ako to uspjesno izbjegnes (kinda beats the purpose, ali isto se moze reci i za rjesavanje zadace nakon kolokvija za koji te ona priprema).

Ima jos jedan detalj koji bi mogao biti problem: rezultat moze biti solidno velik broj. Vjerojatno bi long bio s(p)retniji izbor od int.

Sto se tice primjera za 4, ovo sam nabrzinu skucao u PERLu:
Kod:
$ perl -e '$br=1234;$br=join"",reverse sort split//,$br;$s=0;foreach$x(1..$br){next if$x=~/[^$br]/||$x=~/(.).*\1/;$s+=$x;}print"$s\n";'

U osnovi, kod kaze "trci od 1 do 4321, preskoci sve koji imaju znamenku razlicitu od 1,2,3, ili dvije iste znamenke, a ono sto ostane zbroji". Za 123 radi korektno, a cini mi se da je i za ovo ok, a tu vraca 73660. Tvoja formula bi vratila
[tex](1 + 2 + 3 + 4) + (4-1) \cdot (11 \cdot (1 + 2 + 3 + 4) + 111 \cdot (1 + 2 + 3 + 4) + 1111 \cdot (1 + 2 + 3 + 4)) = 37000[/tex].
Dakle, koju god formulu da koristis, ako ti ne radi, dokazi matematicki da bi trebala raditi, pa cemo onda traziti gresku u kodu. Ili jednostavno napisi korektnu rekurziju koja prolazi kroz sve takve brojeve.



_________________
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.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
Vishykc
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 23. 10. 2010. (14:38:08)
Postovi: (6A)16
Spol: muško
Sarma = la pohva - posuda
= 17 - 12
Lokacija: Zagreb

PostPostano: 22:37 sub, 27. 4. 2013    Naslov: Citirajte i odgovorite

Pozdrav, rijesavam sad ovo od prije :D Napišite program koji učitava prirodni broj n ≤ 17 i niz od n cijelih brojeva. Program treba kreirati donjetrokutastu matricu M reda n kojoj se učitani brojevi nalaze na dijagonali (redom kojim su učitani), a za elemente ispod dijagonale vrijedi:
Mi,j=(−3Mi−1,j−6Mi,j+1) mod 304195,
gdje mod označava nenegativni ostatak pri dijeljenju lijevog broja s desnim.
Program treba ispisati elemente posljednjeg retka matrice M (ispisane brojeve odvojite razmakom). Malo sam se igrao din. alokacijom visedim. polja pa me zanima jel tu greska ili to zbuni verifikatora. Ne mogu naci drugdje gresku: Hvala!

[code:1]#include <stdio.h>
#include <stdlib.h>

#define MOD 304195


int main(){
int n, **M, i, j, ostatak;

scanf("%d", &n);

M = (int **) malloc(n * sizeof(int *));

for(i = 0; i < n; ++i){
M[i] = (int *) malloc(n * sizeof(int));
}

for(i = 0; i < n; ++i) scanf("%d", &M[i][i]);

for(i = 0; i < n; ++i){
for(j = i - 1; j >= 0; --j){
ostatak = (M[i - 1][j] - 6 * M[i][j + 1]) % MOD;
while(ostatak < 0) ostatak += MOD;

M[i][j] = ostatak;
}
}

for(j = 0; j < n - 1; ++j) printf("%d ", M[n - 1][j]);
printf("%d", M[n - 1][n - 1]);

for(i = 0; i < n; ++i) free(M[i]);
free(M);

return 0;
}
[/code:1]
Pozdrav, rijesavam sad ovo od prije Very Happy Napišite program koji učitava prirodni broj n ≤ 17 i niz od n cijelih brojeva. Program treba kreirati donjetrokutastu matricu M reda n kojoj se učitani brojevi nalaze na dijagonali (redom kojim su učitani), a za elemente ispod dijagonale vrijedi:
Mi,j=(−3Mi−1,j−6Mi,j+1) mod 304195,
gdje mod označava nenegativni ostatak pri dijeljenju lijevog broja s desnim.
Program treba ispisati elemente posljednjeg retka matrice M (ispisane brojeve odvojite razmakom). Malo sam se igrao din. alokacijom visedim. polja pa me zanima jel tu greska ili to zbuni verifikatora. Ne mogu naci drugdje gresku: Hvala!

Kod:
#include <stdio.h>
#include <stdlib.h>

#define MOD 304195


int main(){
    int n, **M, i, j, ostatak;

    scanf("%d", &n);

    M = (int **) malloc(n * sizeof(int *));

    for(i = 0; i < n; ++i){
       M[i] = (int *) malloc(n * sizeof(int));
    }

    for(i = 0; i < n; ++i) scanf("%d", &M[i][i]);

    for(i = 0; i < n; ++i){
        for(j = i - 1; j >= 0; --j){
            ostatak = (M[i - 1][j] - 6 * M[i][j + 1]) % MOD;
            while(ostatak < 0) ostatak += MOD;

            M[i][j] = ostatak;
        }
    }

    for(j = 0; j < n - 1; ++j) printf("%d ", M[n - 1][j]);
    printf("%d", M[n - 1][n - 1]);

    for(i = 0; i < n; ++i) free(M[i]);
    free(M);

    return 0;
}



_________________
U matematici se sve smije, osim pogriješiti!
[Vrh]
Korisnički profil Pošaljite privatnu poruku
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3560)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 23:18 sub, 27. 4. 2013    Naslov: Citirajte i odgovorite

Meni se cini da ti fali [tt]-3*[/tt] u formuli.
Meni se cini da ti fali -3* u formuli.



_________________
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.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
Gino
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 11. 09. 2008. (10:54:06)
Postovi: (370)16
Sarma = la pohva - posuda
-29 = 108 - 137
Lokacija: Pula

PostPostano: 23:22 sub, 27. 4. 2013    Naslov: Citirajte i odgovorite

Nije ti greska u alokaciji.

ostatak = (M[i - 1][j] - 6 * M[i][j + 1]) % MOD;

U ovoj formuli gore, fali *(-3) na prvi clan, ukoliko si u tekstu prije napisao dobru formulu.

Sto se tice ovoga:

while(ostatak < 0) ostatak += MOD;

ja bih to ipak napravio prije uzimanja modula (dakle, maknuo bih onaj %MOD gore, napravio taj while i onda uzeo MOD)..
Nije ti greska u alokaciji.

ostatak = (M[i - 1][j] - 6 * M[i][j + 1]) % MOD;

U ovoj formuli gore, fali *(-3) na prvi clan, ukoliko si u tekstu prije napisao dobru formulu.

Sto se tice ovoga:

while(ostatak < 0) ostatak += MOD;

ja bih to ipak napravio prije uzimanja modula (dakle, maknuo bih onaj %MOD gore, napravio taj while i onda uzeo MOD)..



_________________
Mario Berljafa
[Vrh]
Korisnički profil Pošaljite privatnu poruku
Vishykc
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 23. 10. 2010. (14:38:08)
Postovi: (6A)16
Spol: muško
Sarma = la pohva - posuda
= 17 - 12
Lokacija: Zagreb

PostPostano: 0:25 ned, 28. 4. 2013    Naslov: Citirajte i odgovorite

Hvala vam, bilo je -3 u formuli :D
Hvala vam, bilo je -3 u formuli Very Happy



_________________
U matematici se sve smije, osim pogriješiti!
[Vrh]
Korisnički profil Pošaljite privatnu poruku
Silenoz
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 15. 10. 2011. (18:45:11)
Postovi: (4F)16
Spol: zombi
Sarma = la pohva - posuda
= 5 - 3

PostPostano: 22:04 ned, 28. 4. 2013    Naslov: Citirajte i odgovorite

[quote="Gino"]Nije ti greska u alokaciji.

ostatak = (M[i - 1][j] - 6 * M[i][j + 1]) % MOD;

U ovoj formuli gore, fali *(-3) na prvi clan, ukoliko si u tekstu prije napisao dobru formulu.

Sto se tice ovoga:

while(ostatak < 0) ostatak += MOD;

ja bih to ipak napravio prije uzimanja modula (dakle, maknuo bih onaj %MOD gore, napravio taj while i onda uzeo MOD)..[/quote]
Ako to napraviš prije modula onda ti ni ne treba modul, jer ćeš odmah dobiti ostatak dijeljenja. Ali to je sporija opcija jer ko zna koliko oduzimanja može raditi.
Gino (napisa):
Nije ti greska u alokaciji.

ostatak = (M[i - 1][j] - 6 * M[i][j + 1]) % MOD;

U ovoj formuli gore, fali *(-3) na prvi clan, ukoliko si u tekstu prije napisao dobru formulu.

Sto se tice ovoga:

while(ostatak < 0) ostatak += MOD;

ja bih to ipak napravio prije uzimanja modula (dakle, maknuo bih onaj %MOD gore, napravio taj while i onda uzeo MOD)..

Ako to napraviš prije modula onda ti ni ne treba modul, jer ćeš odmah dobiti ostatak dijeljenja. Ali to je sporija opcija jer ko zna koliko oduzimanja može raditi.
[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.
Idite na Prethodno  1, 2, 3 ... 15, 16, 17, 18  Sljedeće
Stranica 16 / 18.

 
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