Pagini: [1] 2   În jos
  Imprimă  
Ajutor Subiect: 262 Free  (Citit de 19242 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
ditzone
Vizitator
« : August 03, 2006, 21:55:13 »

Aici puteţi discuta despre problema Free.
Memorat
pocaitu
De-al casei
***

Karma: -26
Deconectat Deconectat

Mesaje: 141



Vezi Profilul
« Răspunde #1 : August 04, 2006, 11:24:08 »

 Stie cineva un link unde gasesc operatii cu numere mari , ca la programu meu operatiile astea imi iau o gramada de timp?
Memorat

This is not a signature ! I repeat, this is not a signature !
cos_min
Nu mai tace
*****

Karma: 48
Deconectat Deconectat

Mesaje: 493


live


Vezi Profilul
« Răspunde #2 : August 04, 2006, 12:10:55 »

da : http://info.devnet.ro/articole.php?page=art&art=22&artpage=4
Memorat

vid...
pocaitu
De-al casei
***

Karma: -26
Deconectat Deconectat

Mesaje: 141



Vezi Profilul
« Răspunde #3 : August 05, 2006, 00:09:24 »

mersi ffff mult cos_min . Intradevar erau cam complicate operatiile mele;  le faceam pe siruri de caractere (char) pt ca puteai sa afli lungimea lor dar se pare ca a fost o prostie. Very Happy
Memorat

This is not a signature ! I repeat, this is not a signature !
cos_min
Nu mai tace
*****

Karma: 48
Deconectat Deconectat

Mesaje: 493


live


Vezi Profilul
« Răspunde #4 : August 05, 2006, 10:44:12 »

hmm numa 20 pcte iau (restu TLE)... pt sqrt fac o cautare binara si operatiile pe nr mari le folosesc cele din articolul de pe info.devnet.ro
 Embarassed
Memorat

vid...
Coty
Nu mai tace
*****

Karma: 6
Deconectat Deconectat

Mesaje: 235



Vezi Profilul WWW
« Răspunde #5 : August 05, 2006, 10:47:26 »

incearca sa extragi radicalul "ca pe foaie"... eu iau 70 pe rezolvarea asta, inca am un mic bug... si complexitate o sa iasa O(Nr cifre)...  Thumb up
Memorat
pocaitu
De-al casei
***

Karma: -26
Deconectat Deconectat

Mesaje: 141



Vezi Profilul
« Răspunde #6 : August 05, 2006, 13:46:38 »

eu fac tot o cautare binara si operatiile de info.devnet  si iau 100
Memorat

This is not a signature ! I repeat, this is not a signature !
cos_min
Nu mai tace
*****

Karma: 48
Deconectat Deconectat

Mesaje: 493


live


Vezi Profilul
« Răspunde #7 : August 05, 2006, 16:02:05 »

hmm dak initializez de fiecare data siru cu memset imi iese din timp shi dak nu ii il initializez nu imi merge ... ce pot face? need help
« Ultima modificare: August 05, 2006, 16:29:10 de către cos_min » Memorat

vid...
pocaitu
De-al casei
***

Karma: -26
Deconectat Deconectat

Mesaje: 141



Vezi Profilul
« Răspunde #8 : August 06, 2006, 15:51:12 »

ca tot veni vorba de memset , stie cineva de ce la mine pe calculator nu merge NICIODATA memset-ul decat atunci cand initializez sirul cu 0 ??

« Ultima modificare: August 06, 2006, 22:02:52 de către pocaitu » Memorat

This is not a signature ! I repeat, this is not a signature !
greco
Nu mai tace
*****

Karma: 144
Deconectat Deconectat

Mesaje: 434



Vezi Profilul
« Răspunde #9 : August 06, 2006, 17:00:20 »

memset-ul seteaza fiecare byte la valoarea pe care i-o dai. Pe un vector de char o sa-ti mearga mereu, dar pe un vector de int se seteaza atat primul cat si cel de-al doilea byte cu valoarea. De exemplu, facand memset(v, 1, sizeof(v)) unde v e char, fiecare element o sa fie egal cu 00000001, iar facand memset(v, 1, sizeof(v)) unde v e int, fiecare element o sa fie egal cu 0000000100000001.

Ma rog... asta daca sizeof(int) = 2. Daca sizeof(int) = 4... o sa apara 00000001 de 4 ori.
« Ultima modificare: August 06, 2006, 17:39:22 de către greco » Memorat

Jump in the cockpit and start up the engines
Remove all the wheelblocks there's no time to waste
Gathering speed as we head down the runway
Gotta get airborne before it's too late.
Cosmin
Echipa infoarena
Nu mai tace
*****

Karma: 351
Deconectat Deconectat

Mesaje: 1.799



Vezi Profilul
« Răspunde #10 : August 06, 2006, 17:20:23 »

Singurele numere care isi pastreaza reprezentarea binara daca sunt dublate sunt -1 si 0 Smile deci iti va merge si memset cu -1 tot timpul Smile
Memorat
u-92
Vizitator
« Răspunde #11 : August 06, 2006, 18:15:08 »

memset(A, 0, sizeof(A)) va merge pe orice platforma daca A este de tipul char. daca A este de tip int sa spunem pot aparea surprize, in sensul ca toate elementele lui A nu vor avea valoarea 0 (zero). nu ar trebui sa fie nicio diferenta intre un for si memset, ba chiar sa mearga mai repede for-ul, insa pe un post mai vechi infoa erau facute niste teste si memset rula mai avantajos ca timp.
asa am auzit eu..   
Memorat
Cosmin
Echipa infoarena
Nu mai tace
*****

Karma: 351
Deconectat Deconectat

Mesaje: 1.799



Vezi Profilul
« Răspunde #12 : August 06, 2006, 18:30:47 »

Daca te refereai ca -1 e intreg, el are aceiasi reprezentare binara 111....111 pe oricati biti ar fi reprezentat, deci cred ca merge pe orice platforma la fel.
Memorat
pocaitu
De-al casei
***

Karma: -26
Deconectat Deconectat

Mesaje: 141



Vezi Profilul
« Răspunde #13 : August 06, 2006, 22:03:30 »

acuma m-am lamurit
Memorat

This is not a signature ! I repeat, this is not a signature !
cos_min
Nu mai tace
*****

Karma: 48
Deconectat Deconectat

Mesaje: 493


live


Vezi Profilul
« Răspunde #14 : August 07, 2006, 11:39:44 »

hmm mai mult de 40 pcte nu pot scoate ...  Eh?
nush ce sa modific la cautarea binara ... sigur acol ii ceva gresit
Memorat

vid...
Cosmin
Echipa infoarena
Nu mai tace
*****

Karma: 351
Deconectat Deconectat

Mesaje: 1.799



Vezi Profilul
« Răspunde #15 : August 07, 2006, 12:02:00 »

Uite aici doua tutoriale despre cautarea binara:
http://www.tbray.org/ongoing/When/200x/2003/03/22/Binary

http://www.topcoder.com/tc?module=Static&d1=tutorials&d2=binarySearch

Eu de cand am citit primul articol nu am mai bushit la cautare binara. Ideea e sa iti fixezi un invariant la inceput si atunci e foarte usor sa scrii codul fara sa te mai concentrezi la chestii de +/- 1 si sa nu fi sigur ce se intampla.
Memorat
cos_min
Nu mai tace
*****

Karma: 48
Deconectat Deconectat

Mesaje: 493


live


Vezi Profilul
« Răspunde #16 : August 07, 2006, 13:17:05 »

10x Cosmin ... mi-o iesit de 100 in sfarsit  Dancing [am observat in al 2-lea articol o optimizare, care mo ajutat sa scot pctj maxim]
Memorat

vid...
Cosmin
Echipa infoarena
Nu mai tace
*****

Karma: 351
Deconectat Deconectat

Mesaje: 1.799



Vezi Profilul
« Răspunde #17 : August 07, 2006, 14:58:07 »

Ce optimizare ca sunt curios?
Memorat
cos_min
Nu mai tace
*****

Karma: 48
Deconectat Deconectat

Mesaje: 493


live


Vezi Profilul
« Răspunde #18 : August 07, 2006, 15:03:55 »

optimizare : mij=st+(dr-st)/2 .. dak am pus asta in loc de mij = (st+dr)/2 mi-o mers ...
Memorat

vid...
nivan
Vizitator
« Răspunde #19 : August 07, 2006, 17:34:23 »

dupa ce am facut cautarea binara, am observat ca implementarea ei pe numere HUGE dar intregi (fara virgula), obtine SQRT-ul doar pentru numerele patrate perfecte. De altfel asa e si logic 25*25 = 625 nu cu 626. Daca caut radical din 626 nu va gasi nimic.

O metdoda de a obtine truncul ar fi sa fac operatiile pe numere mari cu virgula. Dar inainte sa ma omor, poate exista o varianta mai simpla si nu-mi dau eu seama acuma.

Ma corectez... nu merge nici pe numere mari cu virgula
« Ultima modificare: August 07, 2006, 17:47:03 de către nivan » Memorat
pocaitu
De-al casei
***

Karma: -26
Deconectat Deconectat

Mesaje: 141



Vezi Profilul
« Răspunde #20 : August 07, 2006, 18:17:05 »

pai pentru fiecare mij vezi daca  (mij*mij <=nr&&(mij+1)*(mij+1)>n)
 atunci mij = sqrt(n)
Memorat

This is not a signature ! I repeat, this is not a signature !
nivan
Vizitator
« Răspunde #21 : August 07, 2006, 18:26:53 »

mersi da deja imi dadusem seama. mersi oricum.
Memorat
Cosmin
Echipa infoarena
Nu mai tace
*****

Karma: 351
Deconectat Deconectat

Mesaje: 1.799



Vezi Profilul
« Răspunde #22 : August 07, 2006, 18:52:03 »

Dubios cos_mine Smile aia nu prea e optimizare ci poate doar schimbare a modului in care scrii codul. O optimizare ar fi sa folosesti in loc de baza 10 o baza de 1000 sau 1000000.
Cat despre ce zice pocaitu nu tre sa faci (mij*mij <=nr&&(mij+1)*(mij+1)>n)
ci:
Cod:
low_end = 0
high_end = 10^100 + 1
 while high_end - low_end > 1
       mid  = (high_end + low_end) / 2
       if mid * mid <= n
             low_end = mid
         else
             high_end = mid

write low_end
invariantul aici este ca low_end <= sqrt(n) si high_end > sqrt(n), vedeti ce usor stim ce valoare trebuie sa ii dam lui high_end si low_end dupa o comparatie, si nu mai apare nici un +-1.
Memorat
svalentin
Nu mai tace
*****

Karma: 88
Deconectat Deconectat

Mesaje: 704



Vezi Profilul
« Răspunde #23 : August 07, 2006, 18:59:47 »

poate lui cos_min ii dadea overflow..
adica poate st+dr iesea din tipul lui de date.. daca calculezi prin st+(dr-st)/2 nu vad unde poate da overflow
.. oricum, nu e optimizare Smile
Memorat
Cosmin
Echipa infoarena
Nu mai tace
*****

Karma: 351
Deconectat Deconectat

Mesaje: 1.799



Vezi Profilul
« Răspunde #24 : August 07, 2006, 20:01:37 »

Smile Nu prea poti vorbi la overflow la tipuri de date mari Smile.
Memorat
Pagini: [1] 2   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines