Titlul: 262 Free Scris de: ditzone din August 03, 2006, 21:55:13 Aici puteţi discuta despre problema Free (http://infoarena.ro/problema/free).
Titlul: Raspuns: 262 Free Scris de: David si Goliat din 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?
Titlul: Raspuns: 262 Free Scris de: Bondane Cosmin din August 04, 2006, 12:10:55 da : http://info.devnet.ro/articole.php?page=art&art=22&artpage=4
Titlul: Raspuns: 262 Free Scris de: David si Goliat din 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. :D
Titlul: Raspuns: 262 Free Scris de: Bondane Cosmin din 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
:oops: Titlul: Re: 262 Free Scris de: Sima Mihai Cotizo -vechi din 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)... :thumbup:
Titlul: Raspuns: 262 Free Scris de: David si Goliat din August 05, 2006, 13:46:38 eu fac tot o cautare binara si operatiile de info.devnet si iau 100
Titlul: Raspuns: 262 Free Scris de: Bondane Cosmin din 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
Titlul: Raspuns: 262 Free Scris de: David si Goliat din 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 ??
Titlul: Re: 262 Free Scris de: Tiberiu-Lucian Florea din 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. Titlul: Raspuns: 262 Free Scris de: Cosmin Negruseri din August 06, 2006, 17:20:23 Singurele numere care isi pastreaza reprezentarea binara daca sunt dublate sunt -1 si 0 :) deci iti va merge si memset cu -1 tot timpul :)
Titlul: Raspuns: 262 Free Scris de: u-92 din 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.. Titlul: Raspuns: 262 Free Scris de: Cosmin Negruseri din 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.
Titlul: Raspuns: 262 Free Scris de: David si Goliat din August 06, 2006, 22:03:30 acuma m-am lamurit
Titlul: Raspuns: 262 Free Scris de: Bondane Cosmin din August 07, 2006, 11:39:44 hmm mai mult de 40 pcte nu pot scoate ... :-s
nush ce sa modific la cautarea binara ... sigur acol ii ceva gresit Titlul: Raspuns: 262 Free Scris de: Cosmin Negruseri din 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. Titlul: Raspuns: 262 Free Scris de: Bondane Cosmin din August 07, 2006, 13:17:05 10x Cosmin ... mi-o iesit de 100 in sfarsit \:D/ [am observat in al 2-lea articol o optimizare, care mo ajutat sa scot pctj maxim]
Titlul: Raspuns: 262 Free Scris de: Cosmin Negruseri din August 07, 2006, 14:58:07 Ce optimizare ca sunt curios?
Titlul: Raspuns: 262 Free Scris de: Bondane Cosmin din 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 ...
Titlul: Raspuns: 262 Free Scris de: nivan din 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 Titlul: Raspuns: 262 Free Scris de: David si Goliat din August 07, 2006, 18:17:05 pai pentru fiecare mij vezi daca (mij*mij <=nr&&(mij+1)*(mij+1)>n)
atunci mij = sqrt(n) Titlul: Raspuns: 262 Free Scris de: nivan din August 07, 2006, 18:26:53 mersi da deja imi dadusem seama. mersi oricum.
Titlul: Raspuns: 262 Free Scris de: Cosmin Negruseri din August 07, 2006, 18:52:03 Dubios cos_mine :) 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 Titlul: Re: 262 Free Scris de: Valentin Stanciu din 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 :) Titlul: Raspuns: 262 Free Scris de: Cosmin Negruseri din August 07, 2006, 20:01:37 :) Nu prea poti vorbi la overflow la tipuri de date mari :).
Titlul: Raspuns: 262 Free Scris de: Bondane Cosmin din August 07, 2006, 20:41:41 nush ce ii .... da cu mij=(st+dr)/2 nu imi intra in timp shi cu mij=st+(dr-st)/2 ...
Titlul: Raspuns: 262 Free Scris de: Marius Stroe din August 07, 2006, 21:46:56 hmm mai mult de 40 pcte nu pot scoate ... :-s nush ce sa modific la cautarea binara ... sigur acol ii ceva gresit Poate nu ai incercat cu ideea lui Mihai Patrascu. 8) Am uitat sa pun link: http://info.devnet.ro/articole.php?page=art&art=22 Titlul: Raspuns: 262 Free Scris de: David si Goliat din August 07, 2006, 21:53:20 Cat despre ce zice pocaitu nu tre sa faci (mij*mij <=nr&&(mij+1)*(mij+1)>n) Na, eu am scriu prima metoda care mi-a venit in cap si s-a dovedit buna . Mai totdeauna vor exista mai multe solutii la o problema.ci:.................... Chiar si aici ar mai fi loc de ceva optimizari, dar nu prea si-ar mai avea rostul Titlul: Raspuns: 262 Free Scris de: nivan din August 08, 2006, 00:48:49 he he ... hai k mi-o mers :yahoo:
Titlul: Raspuns: 262 Free Scris de: Cosmin Negruseri din August 08, 2006, 13:08:18 S-ar putea cand faci mij+1 iesi din intervalul in care faci cautarea binara si sa obtii rezultate neasteptate.
E important sa cititi cele doua articole pe care le-am zis mai devreme. Titlul: Raspuns: 262 Free Scris de: nivan din August 11, 2006, 18:22:09 in cazul de fata nu se intampla asta. adik, merge cu mij + 1
Titlul: Raspuns: 262 Free Scris de: Cosmin Negruseri din August 11, 2006, 20:58:17 Vorbeam in general despre cum e frumos sa scrii o cautare binara si sa nu mai ai griji, sa nu te gandesti la cazuri. Da voi tot de cazuri imi ziceti :fighting:. Ce sa ii faci :). Cum vreti voi :)
Titlul: Răspuns: 262 Free Scris de: Bozianu Ana din August 31, 2007, 10:26:00 Ce frumos merge extragerea radacinii patrate daca reprezinti numarul in baza 2. Super. :surf:
Titlul: Răspuns: 262 Free Scris de: Andrei Misarca din Octombrie 25, 2008, 19:21:39 Ce frumos merge extragerea radacinii patrate daca reprezinti numarul in baza 2. Super. :surf: Cum se poate afla radicalu unui numar din reprezentarea numarului in baza 2? :) Titlul: Răspuns: 262 Free Scris de: Sima Cotizo din Octombrie 25, 2008, 21:56:32 Probabil se refera la aflarea radicalului prin cautare binara (vezi ideea lui Mihai Patrascu de implementare). Cel putin de asta s-a vorbit in topic.
Titlul: Răspuns: 262 Free Scris de: Ionescu Robert Marius din Octombrie 26, 2008, 10:21:20 Cat va da pentru:
999192934845325420052052502005230001 MS mika ;) Titlul: Răspuns: 262 Free Scris de: Mihai Alex Ionescu din Octombrie 26, 2008, 11:08:12 Cat va da pentru: 999192934845325420052052502005230001 999192934845325419052456116034709688 Titlul: Răspuns: 262 Free Scris de: Andrici Cezar din Noiembrie 21, 2008, 21:29:24 care e solutia pentru numere mari?
Titlul: Răspuns: 262 Free Scris de: Cezar Mocan din Noiembrie 21, 2008, 22:37:41 Pai... ai avea 2 alternative. Ori cauti binar rezultatul (pe numere mari... pentru fiecare m compari daca patratul lui m este mai mare sau mai mic decat numarul dat) sau faci radicalul ca pe foaie (pe asta nu'l mai stiu :-'). Spor :)
Titlul: Răspuns: 262 Free Scris de: Simoiu Robert din Iunie 01, 2010, 19:52:47 Am incercat sa implementez radical de mana, cu cautarea binara a mers, dar iau incorect la testul 3 si 9. Care sa fie problema ? Am facut exact ca pe foaie, am trat orice caz particular.
Titlul: Răspuns: 262 Free Scris de: Vlad Tarniceru din Iunie 01, 2010, 21:44:37 pentru problema asta nu trebuie facuta descompunerea in factori primi a fiecarui factor?
adica avem pasi: 1.descompunerea fiecarei celuli in parte 2.aflarea nr de divizori a nr descompus cu formula: nr div = (puterea_1_la_descompunere+1)*(puterea_2_la_descompunere+1)*...*(puterea_k_la_descompunere+1) 3.daca nr de div e par celula e inchisa,daca nu este deschisa doar ca nu stiu cum sa fac o descompunere pe numere mari astfel incat sa intre in timp... Titlul: Răspuns: 262 Free Scris de: Florian Marcu din Iunie 01, 2010, 22:56:02 Raspunsul e N - radical(N). Trebuie implementata functia radical pe numere mari.
Titlul: Răspuns: 262 Free Scris de: Vlad Tarniceru din Iunie 01, 2010, 22:57:47 aaa acum am inteles :D multumesc mult pentru ajutor :)
o seara(noapte) buna :) Titlul: Răspuns: 262 Free Scris de: Simoiu Robert din Iunie 02, 2010, 17:36:07 Merci de ajutor, am reusit oricum. E mult mai rapid implementat de mana decat cautarea binara.
Titlul: Răspuns: 262 Free Scris de: Socaciu-Cumpanasu Bogdan din Aprilie 02, 2011, 12:54:03 Killed by signal 11(SIGSEGV) ???
Titlul: Răspuns: 262 Free Scris de: Botocan Bogdan din Aprilie 11, 2011, 21:57:41 Raspunsul e N - radical(N). Trebuie implementata functia radical pe numere mari. Asta am vazut-o si eu. Doar ca am o problema: cum declar structura in care retin n-ul? n<10^100 => v[10000000...00] - pana la 100 de zero-uri :-s :-s Titlul: Răspuns: 262 Free Scris de: Mihai-Alexandru Dusmanu din Aprilie 12, 2011, 15:29:46 Raspunsul e N - radical(N). Trebuie implementata functia radical pe numere mari. Asta am vazut-o si eu. Doar ca am o problema: cum declar structura in care retin n-ul? n<10^100 => v[10000000...00] - pana la 100 de zero-uri :-s :-s n < 10 ^ 100 inseamna ca are maxim 100 cifre. Deci vectoru tau trebuie declarat v[101] minim, pentru ca fiecare element al lui va retine o cifra. Titlul: Răspuns: 262 Free Scris de: Botocan Bogdan din Aprilie 12, 2011, 16:44:29 Raspunsul e N - radical(N). Trebuie implementata functia radical pe numere mari. Asta am vazut-o si eu. Doar ca am o problema: cum declar structura in care retin n-ul? n<10^100 => v[10000000...00] - pana la 100 de zero-uri :-s :-s n < 10 ^ 100 inseamna ca are maxim 100 cifre. Deci vectoru tau trebuie declarat v[101] minim, pentru ca fiecare element al lui va retine o cifra. Mersi de raspuns, mi-am dat seama azi dimineata :oops: :aha: Titlul: Răspuns: 262 Free Scris de: Ioan Mihai din Aprilie 17, 2019, 17:05:43 Mie imi da Killed by signal 11 si nush de ce :aha:
|