•astronomy
|
 |
« : Octombrie 07, 2007, 16:02:18 » |
|
Aici puteţi discuta despre problema Dk.
|
|
|
Memorat
|
|
|
|
•Dastas
|
 |
« Răspunde #1 : Octombrie 09, 2007, 17:43:07 » |
|
Voi cum ati rezolvat problema? Eu m-am bazat pe niste lucruri care nu sunt garantate in enuntul problemei...
Exista vreun algoritm care sa se incadreze in timp si pentru 400 000 de numere prime distincte?
|
|
|
Memorat
|
|
|
|
•domino
|
 |
« Răspunde #2 : Octombrie 09, 2007, 17:59:36 » |
|
Exista un algoritm probabilistic numit Miller Rabin. Se gaseste si in Cormen la capitolul de Teoria numerelor.
|
|
|
Memorat
|
|
|
|
•Dastas
|
 |
« Răspunde #3 : Octombrie 09, 2007, 20:22:41 » |
|
Interesant.. eu ma folosisem de algortimul lui Fermat, dar vad ca asta e mai putin probabil sa dea rezultate gresite. O sa implementez si asa, mersi!
|
|
|
Memorat
|
|
|
|
•bogdan2412
|
 |
« Răspunde #4 : Octombrie 09, 2007, 20:27:29 » |
|
Poti precalcula numerele compuse care iti ies prime cu ce-ai facut si sa cauti binar dup-aia. pentru bazele 2, 3, 7 sunt 700 numere ...
|
|
|
Memorat
|
|
|
|
•gcosmin
|
 |
« Răspunde #5 : Octombrie 09, 2007, 20:52:55 » |
|
e teorema lui fermat, nu algoritmul 
|
|
|
Memorat
|
|
|
|
•floringh06
Strain
Karma: 0
Deconectat
Mesaje: 8
|
 |
« Răspunde #6 : Octombrie 16, 2007, 07:25:55 » |
|
salutare... am si eu o intrebare.. am rezolvat problema cu algoritmul miller - rabin si ptr 7 baze iau 80 cu TLE, ptr 6 baze 90 cu TLE si ptr 5 baze deja 70 cu TLE si incorect  bazele le generez aleator cu o functie random, nu e totusi ceva mai optim ? mersi 
|
|
|
Memorat
|
|
|
|
•blasterz
|
 |
« Răspunde #7 : Octombrie 16, 2007, 08:12:24 » |
|
Incearca baze numere prime. eu am folosit 2 3 5 7 si am luat 100
|
|
|
Memorat
|
|
|
|
•pauldb
|
 |
« Răspunde #8 : Octombrie 16, 2007, 08:51:37 » |
|
Bazele 2, 7 si 61 dau 100% rezultatul corect pentru numere mai mici ca 10^9.
|
|
|
Memorat
|
Am zis 
|
|
|
•DITzoneC
|
 |
« Răspunde #9 : Februarie 16, 2008, 15:20:17 » |
|
S-a facut o reevaluare la aceasta problema.
|
|
|
Memorat
|
|
|
|
•gabor_oliviu1991
|
 |
« Răspunde #10 : Aprilie 13, 2008, 20:55:10 » |
|
si daca aplic ciurul lui eratostene, si dupa citesc fiecare element, verific daca e prim, si daka e, incrementez ceva...daka ati putea sa imi dati un contra exemplu...
|
|
|
Memorat
|
|
|
|
•fireatmyself
|
 |
« Răspunde #11 : Aprilie 13, 2008, 21:07:42 » |
|
pana la un miliard sunt muuulte numere prime  cum te-ai gandit sa le stochezi?
|
|
|
Memorat
|
Viata e scurta. Daca nu o putem lungi, macar s-o facem lata.
|
|
|
•gabor_oliviu1991
|
 |
« Răspunde #12 : Aprilie 13, 2008, 21:28:40 » |
|
dar zice ca n<=400.000 ...deci nu cred ca ar fi o problema in a genera ciurul...
|
|
|
Memorat
|
|
|
|
•DITzoneC
|
 |
« Răspunde #13 : Aprilie 13, 2008, 22:03:32 » |
|
Dar mai zice si ca 1 ≤ Xi ≤ 109 deci tu ar trebui sa faci ciurul pana la 10 9.
|
|
|
Memorat
|
|
|
|
•drag0s93
Strain
Karma: 0
Deconectat
Mesaje: 14
|
 |
« Răspunde #14 : Ianuarie 07, 2009, 23:31:00 » |
|
daca folosesc ciurul  ...as lua ceva puncte la problema asta  ? si nu inteleg dc imi da Killed by signal 
|
|
|
Memorat
|
|
|
|
•Prostu
|
 |
« Răspunde #15 : Ianuarie 07, 2009, 23:47:27 » |
|
daca folosesc ciurul  ...as lua ceva puncte la problema asta  ? si nu inteleg dc imi da Killed by signal  In C/C++ elementele unui tablou unidimensional de N elemente sunt indexate de la 0 la N-1. Sa zicem ca tabloul este numit T, daca este accesat T[N], in linux, este returnat semnalul 11.
|
|
|
Memorat
|
|
|
|
•mika17
Strain
Karma: 8
Deconectat
Mesaje: 33
|
 |
« Răspunde #16 : Martie 01, 2009, 06:41:14 » |
|
Am si eu cateva intrebari(si observatii) legate de aceasta problema 1) inainte sa pun conditia daca Nr e 1 atunci fals luam 20p, dupa am ajuns la 90 2) trebuie parsata citirea ? inainte sa parsez luam TLE pe 7 teste. Cu parsare scot max 1.8sec. Totusi ar mai trebui optimizat algoritmu sa intre si fara parsare? 3) E ceva special la testul 1 ? Nu-l iau de nici o culoare edit: am gasit, pe 2 il vedea ca nr compus lol...
|
|
« Ultima modificare: Martie 01, 2009, 10:36:09 de către Mihai Alex Ionescu »
|
Memorat
|
|
|
|
•Bogdan_tmm
|
 |
« Răspunde #17 : Aprilie 09, 2009, 17:41:07 » |
|
|
|
« Ultima modificare: Aprilie 10, 2009, 17:21:58 de către Tarca Bogdan »
|
Memorat
|
|
|
|
•emilianparaicu14
Strain
Karma: -1
Deconectat
Mesaje: 2
|
 |
« Răspunde #18 : Iulie 25, 2009, 15:40:09 » |
|
Am incercat sa folosesc alogritmul baza pe Teorema lui Fermat si ceea ce trebuia sa verific era daca (a^n -a)%n==0 -- unde a=numarul ales la intamplare 1>a>n; iar n numarul pe care il verificam. Problema este ca daca avem de ex. n=200 si a= 50, atunci 50^200 devine cam greu de calculat fara sa iesi din memorie  . Presupun ca iti poti da seama daca (a^n -a)%n==0 fara sa calculezi, dar nu prea stiu cum 
|
|
|
Memorat
|
|
|
|
•toni2007
|
 |
« Răspunde #19 : Iulie 25, 2009, 21:10:30 » |
|
Daca stii cat este restul impartirii lui a la n, atunci poti afla si restul impartirii lui a ^ n la n, ridicand la putere in timp logaritmic.
|
|
|
Memorat
|
|
|
|
•SebiSebi
|
 |
« Răspunde #20 : Aprilie 08, 2012, 12:57:35 » |
|
Folosesc algoritmul probabilistic numit Miller Rabin si iau TLE pe 6 teste ( cu ridicare la putere in timp logaritmic pentru bazele 2,7 si 61 ) . Ce as mai putea optimiza? Multumesc anticipat!
Am reusit in cele din urma, dar cred ca ar trebui marita limita de timp macar pana la 1 sec, oricum in O(n*sqrt(Xi)) nu intra .
|
|
« Ultima modificare: Aprilie 10, 2012, 14:48:24 de către Pirtoaca George Sebastian »
|
Memorat
|
|
|
|
•AlexandruValeanu
|
 |
« Răspunde #21 : Ianuarie 30, 2013, 12:31:07 » |
|
Am si eu o intrebare : ce gresesc la rezolvare de imi da cu orice baza asi alege 30p?
|
|
|
Memorat
|
|
|
|
•repp4radu
|
 |
« Răspunde #22 : Februarie 12, 2013, 20:54:42 » |
|
Cred ca ar trebui marita limita de timp la aceasta problema.
Iau TLE pe un test folosind algoritmul lui Miller-Rabin cu 3 baze, ridicare la putere in timp logaritmic si parsarea citirii.
|
|
|
Memorat
|
|
|
|
•misino
Strain
Karma: 10
Deconectat
Mesaje: 40
|
 |
« Răspunde #23 : Februarie 13, 2013, 10:57:25 » |
|
Fa decat cu doua baze
|
|
|
Memorat
|
|
|
|
•AlexandruValeanu
|
 |
« Răspunde #24 : Martie 31, 2013, 23:36:45 » |
|
Iau 90p cu WA pe primul test in conditiile in care am parsat citirea, am implementat MillerRabin folosind 2 baze ( 2, 61 ). Poate cineva sa-mi spuna unde gresesc sau daca testul 1 are ceva special?
|
|
|
Memorat
|
|
|
|
|