Close
Duke shfaqur rezultatin -19 deri 0 prej 6
  1. #1
    i/e regjistruar Maska e al5f1nx
    Anëtarësuar
    23-03-2004
    Vendndodhja
    pothuajse se aty ku duhet
    Postime
    92

    Sfida: Gjetja e prodhimit më të madh të pesë numrave të njëpasnjëshëm

    Ne pr-tech u publikua sfida e re e programimit qe mua me duket si nje nga me interesantet deri tani. Nuk e di a e kane pare mod-et (edi :-) ).

    Nqs vihet ketu si kryeteme ma merr mendja se ky postim do fshihet por ia vlen nqs do fillonim ta diskutonim ate argument se coku ka ca mendje te shkatheta ketu ne forum qe vecse kur ia bejne PAM !!!!



    ---------------------------------------------

    Sfida është hapur nga Grupi Teknologjik i Prishtinës. Po e hedhim në forum që anëtarët të mund të diskutojnë zgjidhjet dhe të mësojnë nga eksperienca e njëri-tjetrit. Tema do qëndrojë e mbyllur gjatë kohës që sfida është e hapur dhe zgjidhja juaj nuk duhet bërë publike gjatë kësaj kohe. Kur të skadojë afati i lejuar, tema do hapet dhe pastaj mund të postoni përgjigjet tuaja dhe të diskutoni me anëtarët e tjerë.


    Gjetja e prodhimit më të madh të pesë numrave të njëpasnjëshëm

    Krijuar/Përpiluar nga: Genc DOKO
    Problemi eshte i hapur
    Prej: 11/09/2005 Deri: 25/09/2005

    Në këtë sfidë ju duheni të prodhoni një numër 1,000 shifror. Pas prodhimit ju duheni që të gjeni prodhimin më të madh të pesë numrave të njëpasnjëshëm brenda këtij numri 1,000 shifror që duhet të jetë i prodhuar në mënyrë të rastësishme (Ang: Random Number Generation).

    Për ta shpjeguar natyrën e kësaj sfide, do ta shfrytëzoj rastin e gjetjes të prodhimit më të madh të dy numrave të njëpasnjëshëm brenda një numri 10 shifror. Pra, e marrim numrin: 1818946387. Në këtë numër e shohim që prodhimi më i madh i dy numrave të njëpasnjëshëm është: 8 * 9 = 72. Këta dy numra shihen në vijim: 1818946387. Të njëjtin koncept duheni ta shfrytëzoni për gjetjen e prodhimit më të madh të pesë numrave të njëpasnjëshëm brenda një numri 1,000 shifror.

    Programi le të shkruhet për modin tekstual. Hyrjet mund të futen nga tastiera, apo edhe të lexohen nga skeda. Daljet mund të paraqiten në terminal apo edhe të shkruhen në skedë. Programi të kodohet ashtu që gjatësia e një rreshti mos të kalojë 80 karakterë. Për këtë sfidë, programi mund të shkruhet në C, C++, C#, Java, Visual Basic, VB .NET, Perl, PHP, Scheme/Lisp, Prolog. Nëse dëshironi që programin ta shkruani në ndonjë gjuhë tjetër programuese që nuk është cekur më lartë, atëherë ju lutemi që së pari të na kontaktoni nëpërmjet adresës të shfaqur më poshtë, në mënyrë që të jemi të sigurt se a mundemi ta vlerësojmë programin tuaj në atë gjuhë. Nëse programi juaj përmban më shumë se një skedë atëherë le të arkivohet si tar.gz apo zip dhe si i tillë le të dërgohet në programim ET pr-tech PIKE net.

    Rezultatet dhe kodet e sakta do të paraqiten (1) një javë më së largu pas skadimit të afatit të problemit.

    Nëse keni ndonjë pyetje lidhur me përpilimin e sfidës, na kontaktoni në programim ET pr-tech PIKE net.
    Ndryshuar për herë të fundit nga edspace : 19-09-2005 më 23:51
    Geniality is a state of mind

  2. #2
    mos e luaj; I DEBUAR! Maska e qoska
    Anëtarësuar
    17-05-2004
    Vendndodhja
    tirane
    Postime
    837
    heheh te paska ikur ty intuita :P.

    Per mua zgjidhja eshte mjaft kollaj e zgjidhshme duke perdorur modelin e meposhtem:

    Gjenerimi i numrit me 1000 shifra realizohet duke perdorur enkodimin BCD dmth 4 bit per nje numer te plote(integer) keshtu duke perdorur funksione si random() qe prodhojne numra 32 bit ose 64 bit mund te gjenerojme me hapa jashtezakonisht te reduktuar numrin e kerkuar vetem duke patur pak kujdes pasi numri max qe mund te shprehet ne BCD eshte 1001 = 9. Rezultatin e ruajme ne nje memorie te madhe vetem (ne rastin me te mire) (1000/64)*8 ose (1000/32)*8.
    5 shifrat e para i marrim te invertuara nqs kemi 12345 fillestarin e marrim 54321, kerkesa do 5 numrat e njepasnjeshem me te medhenj dmth max 99999.
    Ne nje 32 bit mund te ruajme 5 numrat qe na kerkohen brenda 20biteve dhe po ti kthejme ne invers keta 5 numrat i gjithe problemi kthehet ne gjetjen e numrit me te madh ne kete vektor.
    Numrat e plote per tu krahasuar gjenden duke rrotulluar majtas numrin fillestar dhe duke shtuar ne bitet 20-17 numrin e ri nga te radhes.

    Ndonje ide tjeter
    Ndryshuar për herë të fundit nga qoska : 15-09-2005 më 13:12

  3. #3
    i/e regjistruar Maska e Gepardi
    Anëtarësuar
    30-10-2002
    Vendndodhja
    Tiranë
    Postime
    169
    Problemi eshte te gjesh 5 numrat e njepasnjeshem prodhimi i te cileve te jete me i madhi nder keta numra.

    Nje zgjidhje jo shume "shkencore" dhe qe te vjen direkt ne mendje mund te ishte kjo:

    Pasi ke gjeneruar numrin 1000 shifror (mund ti fusesh te 1000 shifrat ne 1 vektor) me ane te nje fuksioni random();

    max = 0;
    PER i=1 DERI 995 BEJ
    FILLIM
    prodhimi = nr[i]*nr[i+1]*nr[i+2]*nr[i+3]*nr[i+4];
    NQS prodhimi > max ATH max = shuma
    FUND

    Nje zgjidhje e thjeshte në pseudokod
    Ndryshuar për herë të fundit nga Gepardi : 15-09-2005 më 15:38

  4. #4
    i/e regjistruar Maska e al5f1nx
    Anëtarësuar
    23-03-2004
    Vendndodhja
    pothuajse se aty ku duhet
    Postime
    92
    Citim Postuar më parë nga qoska
    heheh te paska ikur ty intuita :P.

    Per mua zgjidhja eshte mjaft kollaj e zgjidhshme duke perdorur modelin e meposhtem:

    Gjenerimi i numrit me 1000 shifra realizohet duke perdorur enkodimin BCD dmth 4 bit per nje numer te plote(integer) keshtu duke perdorur funksione si random() qe prodhojne numra 32 bit ose 64 bit mund te gjenerojme me hapa jashtezakonisht te reduktuar numrin e kerkuar vetem duke patur pak kujdes pasi numri max qe mund te shprehet ne BCD eshte 1001 = 9. Rezultatin e ruajme ne nje memorie te madhe vetem (ne rastin me te mire) (1000/64)*8 ose (1000/32)*8.
    5 shifrat e para i marrim te invertuara nqs kemi 12345 fillestarin e marrim 54321, kerkesa do 5 numrat e njepasnjeshem me te medhenj dmth max 99999.
    Ne nje 32 bit mund te ruajme 5 numrat qe na kerkohen brenda 20biteve dhe po ti kthejme ne invers keta 5 numrat i gjithe problemi kthehet ne gjetjen e numrit me te madh ne kete vektor.
    Numrat e plote per tu krahasuar gjenden duke rrotulluar majtas numrin fillestar dhe duke shtuar ne bitet 20-17 numrin e ri nga te radhes.

    Ndonje ide tjeter
    Intuitene kam akoma po sikur ke nje cike me lezet te diskutohen keto gjera se perndryshe ku iu pa hajri

    Ideja jote eshte e mire por une do llogjikoja nje cike me thjesht. une zgjidhjen qe degova sot e kam propozuar te scriptuar ne perl. gjuhe qe dallohet per lehtesine ne manipulim dhe casting te variablave. numri random me i madh qe mund te suportohet dhe manipulihet ne perl me rand() ka 256 shifra por kjo nuk garanton nje randomizim shume te besueshem. algoritmi im gjeneron numra random me gjatesi 16 shifra ( optimale per rand() te perl) dhe duke i trajtuar si stringa i lidh derisa te perftoje gjatesine e caktuar. ky algoritem pas testimit me gjeneron sipas kerkeses numra random deri 350.000 shifra ( pa shaka ) peer 3 sec.

    sa per llogaritjen e sekueces pastaj nje algoritem si ai i gepardi eshte mese i mjaftueshem se pse kjo eshte pjesa e thjeshte e sfides.
    Ndryshuar për herë të fundit nga al5f1nx : 15-09-2005 më 16:41
    Geniality is a state of mind

  5. #5
    Programues Softueresh Maska e edspace
    Anëtarësuar
    04-04-2002
    Vendndodhja
    Filadelfia, SHBA
    Postime
    2,573
    Cuna,

    Mos prisni që t'i hap unë temat e sfidave, por hapini edhe vetë. Mjafton që të zbatohen rregullat e Pr-Tech. Gjithashtu mund të krijoni edhe sfidat tuaja sipas dëshirës të cilat besoj se mund të publikohen edhe nga pr-tech.
    Edi

  6. #6
    i/e regjistruar
    Anëtarësuar
    16-11-2005
    Postime
    8,691
    Jam dakord me Gepardin dhe nuk me duket e nevojshme zgjidhja panevojshmerisht komplekse e qoskes(k.i.s.s) dhe sa per bcd etj etj kto llogaritje do ishin ne dem te shpejtesise se programit pervecse ne rast kodimi asm.

    Megjithate menyra me e thjesht dhe intuitive ishte ajo e gepardit.

Tema të Ngjashme

  1. Ndoc Gjetja
    Nga macia_blu në forumin Enciklopedia letrare
    Përgjigje: 29
    Postimi i Fundit: 09-03-2024, 20:25
  2. Sfidë: Mbledhja e numrave romak
    Nga edspace në forumin Arti i programimit
    Përgjigje: 0
    Postimi i Fundit: 16-06-2006, 17:55
  3. Sfida nga Pr-Tech: Mbledhja e dy numrave 256 shifror
    Nga edspace në forumin Arti i programimit
    Përgjigje: 15
    Postimi i Fundit: 18-03-2005, 20:32
  4. Projektbuxheti dhe rritja e prodhimit kombetar
    Nga ganoid në forumin Ekonomi & biznes
    Përgjigje: 6
    Postimi i Fundit: 21-12-2002, 09:03

Regullat e Postimit

  • Ju nuk mund të hapni tema të reja.
  • Ju nuk mund të postoni në tema.
  • Ju nuk mund të bashkëngjitni skedarë.
  • Ju nuk mund të ndryshoni postimet tuaja.
  •