Varijacije
Prikazujem rezultate 1 do 18 od 18

Tema: Varijacije

  1. #1
    Peruzzi nije na forumu
    је дошао тихо и ушао у легенду...
    Domaćin Peruzzi (avatar)
    Učlanjen
    03.08.2003.
    Pol
    muški
    Lokacija
    Shumadija
    Poruke
    3.924
    Reputaciona moć
    92

    Podrazumevano Varijacije

    Druga stvar (u pauzi dok se hladi modem)

    imam skup znakova {a..z, razmak( ), zarez(,), tacka(.)} (25 znakova)

    treba da odredim koji je broj varijacije (ili kako se to vec strucno zove) znakova u slogu od 4 znaka. npr

    aaaa 1 var
    aaab 2 var
    aaac 3 var
    aaba 26 var
    aabb 27 var
    abaa 626 var

    shvatate na sta mislim?

    moze i kodno uradjeno, svejedno

    probao sam, ubih se, al nikako da nadjem kako...

    Podproblem:
    da li se pravilo moze uopstiti na slog od n znakova sa skupom od m clanova?




  2. #2
    Obećava Nemanja666 (avatar)
    Učlanjen
    27.05.2006.
    Poruke
    99
    Reputaciona moć
    43

    Podrazumevano Re: Varijacije

    Vec je bilo ovako pitanje

  3. #3
    Poznat Garwor (avatar)
    Učlanjen
    27.04.2004.
    Pol
    muški
    Poruke
    7.152
    Reputaciona moć
    121

    Podrazumevano Re: Varijacije

    Zamisli heksadecimalni sistem. Sad zamisli da je osnova sistema 25 (ako sam dobro shvatio) a ne 10, i da ti je svaki znak cifra. Sad uzmes prvi znak sleva i ocitas vrednost (ascii(znak) - ascii(a)) i pomnozis sa 25^3, za drugi isto tako i pomnozis sa 25^2...saberes sve i to je broj varijacije. Mozda dodas 1 jer je aaaa prva a ne nulta, i mozda sam jos ponesto zaboravio, ali to je to u principu.

  4. #4
    Ističe se juznivetar (avatar)
    Učlanjen
    12.02.2005.
    Pol
    muški
    Lokacija
    -
    Poruke
    2.041
    Reputaciona moć
    67

    Podrazumevano Re: Varijacije

    To je kombinatorika, neznam zasto, ali uvijek sam je volio izbjegavati.
    Uglavnom pogledaj malo na netu na tu temu, trebao bi pronaci formulu kojom mozes rijesiti svoj problem. Uglavnom to su uzasno veliki brojevi u pitanju.

  5. #5
    Peruzzi nije na forumu
    је дошао тихо и ушао у легенду...
    Domaćin Peruzzi (avatar)
    Učlanjen
    03.08.2003.
    Pol
    muški
    Lokacija
    Shumadija
    Poruke
    3.924
    Reputaciona moć
    92

    Podrazumevano Re: Varijacije

    snaso sam se. sad lepo sve pretvara kako treba

    samo treba da uradim i obrnut postupak - da pretvori broj u rec
    al dobro, cela noc je preda mnom


  6. #6
    Poznat Garwor (avatar)
    Učlanjen
    27.04.2004.
    Pol
    muški
    Poruke
    7.152
    Reputaciona moć
    121

    Podrazumevano Re: Varijacije

    Pa napisao sam ti gore kako treba da radis, zamisli da je to brojni sistem sa osnovom 25 ili koliko vec znakova imas. Uzmes polazni decimalni broj, delis sa 25^3, nadjes znak koji odgovara celom delu kolicnika, ispises, od polaznog broja oduzmes ceo deo koicnika * 25^3, pa onda delis sa 25^2, itd...

  7. #7
    Peruzzi nije na forumu
    је дошао тихо и ушао у легенду...
    Domaćin Peruzzi (avatar)
    Učlanjen
    03.08.2003.
    Pol
    muški
    Lokacija
    Shumadija
    Poruke
    3.924
    Reputaciona moć
    92

    Podrazumevano Re: Varijacije

    nije meni bio problem prebacivanje iz sistema u sistem nego odredjivanje broja varijacije teksta i obrnuto

    sredio sam sve, jos samo da spojim funkcije kako treba pa cu vam pustim cisto da vidite zbog cega potrosih par KB na serveru za ovu temu


  8. #8
    Iskusan
    Učlanjen
    06.12.2004.
    Poruke
    5.596
    Reputaciona moć
    103

    Podrazumevano Re: Varijacije

    [font=Verdana]To što je Garwor napisao nije prebacivanje iz sistema u sistem već tačno ono što ti treba, ako si dobro objasni šta ti treba.[/font]

  9. #9
    Peruzzi nije na forumu
    је дошао тихо и ушао у легенду...
    Domaćin Peruzzi (avatar)
    Učlanjen
    03.08.2003.
    Pol
    muški
    Lokacija
    Shumadija
    Poruke
    3.924
    Reputaciona moć
    92

    Podrazumevano Re: Varijacije

    ako sam dobro shvatio onda garwor nije u pravu

    ako je recimo slog od 4 znaka - abcd - onda je broj varijacije ovako nesto

    (a-1)*25^3 + (b-1)*25^2 + (c-1)*25 + d

    gde su a,b,c,d broj znaka u uredjenom skupu {a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,r,s,t,u,v,z, ,,,.}

    rade mi tri procedure al jedna nece...



    function TekstuBroj10(var text:string):string;
    function Broj10uTekst(var broj:word):string;
    function Broj10uBroj50(var broj:word):string;
    function Broj50uBroj10(var broj:string):word;

    tekst u dekadni broj je dobro uradjena i radi kako treba

    pretvaranje dekadnog u 50 i 50 u dekadni je isto izvedeno kako treba

    ostaje samo jos dekadni broj u tekst, koja mi je i inace sumnjivai mislim da je greska bas u njoj

    evo je

    function TForm1.Broj10uTekst(var broj:word):string;
    var
    a1,b1,c1,d1:char;
    a,b,c,d:integer;
    begin
    Broj10uTekst:='';
    d:=broj mod 25;
    c:=( trunc((broj-d)/25) mod 25 + 1 ) div 1;
    b:=( trunc(((broj-d)/25 - c + 1)/25) mod 25 + 1 ) div 1;
    a:=trunc( (((broj-d)/25 - c + 1)/25 - b + 1)/25 + 1 );

    if d<23 then d1:=chr(d+96)
    else if d=23 then d1:=' '
    else if d=24 then d1:=','
    else if d=25 then d1:='.';
    if c<23 then c1:=chr(c+96)
    else if c=23 then c1:=' '
    else if c=24 then c1:=','
    else if c=25 then c1:='.';
    if b<23 then b1:=chr(b+96)
    else if b=23 then b1:=' '
    else if b=24 then b1:=','
    else if b=25 then b1:='.';
    if a<23 then a1:=chr(a+96)
    else if a=23 then a1:=' '
    else if a=24 then a1:=','
    else if a=25 then a1:='.';

    Broj10uTekst:=a1+b1+c1+d1;
    end;


    ostale su malo duze (sto ne znaci da su komplikovane nego da me je mrzelo da skracujem kod, nema potrebe, a i ne verujem da bi dalo nekog efektnog rezultata)
    ali ipak cu da ih pustim u sledecem postu


  10. #10
    Peruzzi nije na forumu
    је дошао тихо и ушао у легенду...
    Domaćin Peruzzi (avatar)
    Učlanjen
    03.08.2003.
    Pol
    muški
    Lokacija
    Shumadija
    Poruke
    3.924
    Reputaciona moć
    92

    Podrazumevano Re: Varijacije

    ovo su funkcije koje pretvaraju dekadni u 50 i obrnuto

    function TForm1.Broj10uBroj50(var broj:word):string;
    var
    a,N,N1:word;
    broj1:string;
    begin
    N:=50;
    N1:=1;
    Broj10uBroj50:='';
    broj1:='';
    repeat
    a:=trunc(broj/N1)mod N;
    N1:=N1*N;
    broj1:=broj1 + chr(48+a);
    until trunc(broj/N1)=0;
    Broj10uBroj50:=broj1;
    end;

    function TForm1.Broj50uBroj10(var broj:string):word;
    var
    i:integer;
    suma:word;
    n:word;
    begin
    suma:=1;
    n:=1;
    for i:=1 to Length(broj) do
    begin
    suma:=(ord(broj[i])-48)*n;
    n:=n*50;
    end;
    Broj50uBroj10:=suma;
    end;

    a ovde je funkcija koja izracunava koja je varijacija tekst. ucitava tekst u slogovima po 4 znaka
    moglo je to i krace ali i ovako mi je pregledno (onaj veliki blok sa if se ponavlja vise puta)

    function TForm1.TekstuBroj10(var text:string):string;
    var
    i:integer;
    suma:integer;
    a,b,c,d:char;
    broj:string;

    begin
    i:=1;
    broj:='';
    while i<(Length(text) - Length(text)mod 4) do
    begin
    suma:=1;
    a:=text[i]; b:=text[i+1]; c:=text[i+2]; d:=text[i+3];
    i:=i+4;
    case a of
    ' ':suma:=suma+22*25*25*25;
    ',':suma:=suma+43*25*25*25;
    '.':suma:=suma+45*25*25*25;
    'a'..'z':suma:=suma+(ord(a)-96)*25*25*25;
    end;
    case b of
    ' ':suma:=suma+22*25*25;
    ',':suma:=suma+43*25*25;
    '.':suma:=suma+45*25*25;
    'a'..'z':suma:=suma+(ord(b)-96)*25*25;
    end;
    case c of
    ' ':suma:=suma+22*25;
    ',':suma:=suma+43*25;
    '.':suma:=suma+45*25;
    'a'..'z':suma:=suma+(ord(c)-96)*25;
    end;
    case d of
    ' ':suma:=suma+22;
    ',':suma:=suma+43;
    '.':suma:=suma+45;
    'a'..'z':suma:=suma+(ord(d)-96);
    end;
    broj:=broj+IntToStr(suma)+' ';
    end;

    if Length(text) mod 4 <> 0 then
    if length(text) mod 4 = 1 then
    begin
    suma:=1;
    a:=text[length(text)]; b:=' '; c:=' '; d:=' ';
    case a of
    ' ':suma:=suma+22*25*25*25;
    ',':suma:=suma+43*25*25*25;
    '.':suma:=suma+45*25*25*25;
    'a'..'z':suma:=suma+(ord(a)-96)*25*25*25;
    end;
    case b of
    ' ':suma:=suma+22*25*25;
    ',':suma:=suma+43*25*25;
    '.':suma:=suma+45*25*25;
    'a'..'z':suma:=suma+(ord(b)-96)*25*25;
    end;
    case c of
    ' ':suma:=suma+22*25;
    ',':suma:=suma+43*25;
    '.':suma:=suma+45*25;
    'a'..'z':suma:=suma+(ord(c)-96)*25;
    end;
    case d of
    ' ':suma:=suma+22;
    ',':suma:=suma+43;
    '.':suma:=suma+45;
    'a'..'z':suma:=suma+(ord(d)-96);
    end;
    broj:=broj+IntToStr(suma)+' ';
    end
    else if length(text) mod 4 = 2 then
    begin
    suma:=1;
    a:=text[length(text)]; b:=text[length(text)-1]; c:=' '; d:=' ';
    case a of
    ' ':suma:=suma+22*25*25*25;
    ',':suma:=suma+43*25*25*25;
    '.':suma:=suma+45*25*25*25;
    'a'..'z':suma:=suma+(ord(a)-96)*25*25*25;
    end;
    case b of
    ' ':suma:=suma+22*25*25;
    ',':suma:=suma+43*25*25;
    '.':suma:=suma+45*25*25;
    'a'..'z':suma:=suma+(ord(b)-96)*25*25;
    end;
    case c of
    ' ':suma:=suma+22*25;
    ',':suma:=suma+43*25;
    '.':suma:=suma+45*25;
    'a'..'z':suma:=suma+(ord(c)-96)*25;
    end;
    case d of
    ' ':suma:=suma+22;
    ',':suma:=suma+43;
    '.':suma:=suma+45;
    'a'..'z':suma:=suma+(ord(d)-96);
    end;
    broj:=broj+IntToStr(suma)+' ';
    end
    else if length(text) mod 4 = 3 then
    begin
    suma:=1;
    a:=text[length(text)]; b:=text[length(text)-1]; c:=text[length(text)-3]; d:=' ';
    case a of
    ' ':suma:=suma+22*25*25*25;
    ',':suma:=suma+43*25*25*25;
    '.':suma:=suma+45*25*25*25;
    'a'..'z':suma:=suma+(ord(a)-96)*25*25*25;
    end;
    case b of
    ' ':suma:=suma+22*25*25;
    ',':suma:=suma+43*25*25;
    '.':suma:=suma+45*25*25;
    'a'..'z':suma:=suma+(ord(b)-96)*25*25;
    end;
    case c of
    ' ':suma:=suma+22*25;
    ',':suma:=suma+43*25;
    '.':suma:=suma+45*25;
    'a'..'z':suma:=suma+(ord(c)-96)*25;
    end;
    case d of
    ' ':suma:=suma+22;
    ',':suma:=suma+43;
    '.':suma:=suma+45;
    'a'..'z':suma:=suma+(ord(d)-96);
    end;
    broj:=broj+IntToStr(suma)+' ';
    end;
    TekstuBroj10:=broj;
    end;


  11. #11
    Iskusan
    Učlanjen
    06.12.2004.
    Poruke
    5.596
    Reputaciona moć
    103

    Podrazumevano Re: Varijacije

    [font=Verdana]Obzirom da prvih 22 elemenata ne predstavljaju jedan opseg u okviru ASCII sistema, za pronalaženje vrednosti nekog elementa ne možeš da koristiš ord funkciju ili njen rezultat moraš da modifikuješ u zavisnosti koje elemente iz skupa [a..z] ne koristiš. Najjednostavnije rešenje je da imaš dve funkcije elementToIndex i indexToElement koji će raditi te konverzije.[/font]

  12. #12
    Peruzzi nije na forumu
    је дошао тихо и ушао у легенду...
    Domaćin Peruzzi (avatar)
    Učlanjen
    03.08.2003.
    Pol
    muški
    Lokacija
    Shumadija
    Poruke
    3.924
    Reputaciona moć
    92

    Podrazumevano Re: Varijacije

    jel si shvatio kod?

    jer se i ja cesto pogubim sta je sta

    vidis pametan ti taj pristup, probacu tako sutra pa cu da javim sta ispalo, spava mi se sad, bio sam kod snayke pa me izmucila malo, sta da se radi...


  13. #13
    Iskusan
    Učlanjen
    06.12.2004.
    Poruke
    5.596
    Reputaciona moć
    103

    Podrazumevano Re: Varijacije

    [font=Verdana]Začudilo me je odakle ti samo 25 elemenata u tekstu zadatka kada bi moralo da ih bude 29. Onda je eksplictino navođenje skupa uređenih elementa razrešilo "misteriju". Kod nisam ni pogledao.

    Dakle ovo nije nije ispravno na osnovu postavke zadatka:[/font]
    Kod:
        if d<23 then d1:=chr(d+96)
    
          'a'..'z':suma:=suma+(ord(a)-96)*25*25*25;
    [font=Verdana]Ima na mnogo mesta ovo su samo dva primera.[/font]

  14. #14
    Peruzzi nije na forumu
    је дошао тихо и ушао у легенду...
    Domaćin Peruzzi (avatar)
    Učlanjen
    03.08.2003.
    Pol
    muški
    Lokacija
    Shumadija
    Poruke
    3.924
    Reputaciona moć
    92

    Podrazumevano Re: Varijacije

    auh da.... jer x,y,w,q ne koristim pa zato ima 25 (22 slova i 3 znaka)


  15. #15
    Iskusan
    Učlanjen
    06.12.2004.
    Poruke
    5.596
    Reputaciona moć
    103

    Podrazumevano Re: Varijacije

    [font=Verdana]Da, ali to u prvoj poruci nije bilo jasno objašnjeno.[/font]

  16. #16
    Peruzzi nije na forumu
    је дошао тихо и ушао у легенду...
    Domaćin Peruzzi (avatar)
    Učlanjen
    03.08.2003.
    Pol
    muški
    Lokacija
    Shumadija
    Poruke
    3.924
    Reputaciona moć
    92

    Podrazumevano Re: Varijacije

    dao sam cini mi se skup znakova koji korisim (?)


  17. #17
    Iskusan
    Učlanjen
    06.12.2004.
    Poruke
    5.596
    Reputaciona moć
    103

    Podrazumevano Re: Varijacije

    Citat Original postavio Peruzzi
    {a..z, razmak( ), zarez(,), tacka(.)}
    [font=Verdana]Jesi dao, ali neispravno. Nego, da li sada radi program?
    [/font]

  18. #18
    Peruzzi nije na forumu
    је дошао тихо и ушао у легенду...
    Domaćin Peruzzi (avatar)
    Učlanjen
    03.08.2003.
    Pol
    muški
    Lokacija
    Shumadija
    Poruke
    3.924
    Reputaciona moć
    92

    Podrazumevano Re: Varijacije

    nisam ga jos zavrsio, ima frka sa integralima pa je ovo na cekanju


Slične teme

  1. Zagonetne Varijacije
    Autor Milojko Vasic u forumu Pozorište
    Odgovora: 11
    Poslednja poruka: 06.03.2010., 23:11

Pravila za slanje poruka

  • Ne možete kreirati novu temu
  • Ne možete poslati odgovor
  • Ne možete dodati priloge
  • Ne možete prepraviti svoju poruku
  •