ÐÒ& Posted March 10, 2008 Author Report Posted March 10, 2008 si ce propui)( Quote
phreak Posted March 10, 2008 Report Posted March 10, 2008 mie mi-a gasit peste 40 de mii de numere prime . ce zici faci un vector cu 40 de mii de numere prime de 9 cifre? . Nici eu n-am gasit o solutie pana acum sa fiu sincer. Quote
ÐÒ& Posted March 10, 2008 Author Report Posted March 10, 2008 lasa intrebarile savante.pune si tu ceva mai comestibil. Quote
ÐÒ& Posted March 10, 2008 Author Report Posted March 10, 2008 stii ce e..avea dreptate ala de mai sus.daca scadem dintrun numar superprim o cifra pe aia din dreapta..ramanem cu un numar tot SUPERPRIM..DA FARA O CIFRAcum formezi iar numarul supeprim e mai complicat.defapta la sfarsitul unui nr prim daca adaugi 1 , 3 , 7 , 9 tot prim e.bine hai ca bag alta:ne facem un propgramel in php.si vrem sa masuram in cat trimp ruleaza.ce idee practica am avea:)? Quote
drealecs Posted March 10, 2008 Report Posted March 10, 2008 apelezi time() sau microtime() la inceput si la sfarsit, la care sfarsit faci difenta si o printezi.referitor la intrebarea cu numere prime:se face un arbore. fiecare nod e o cifra. dintr-un nod pleaca de obicei una sau doua ramuri, foarte rar trei, poate chiar niciodata. asadar, pentru un numar chiar si cu 9 cifre nu va fi foarte greu de gasit. cateva milisecunde pentru 9 cifre cred ca sunt in jur de 200 numere.si daca tot vorbim, test!: cine gaseste mai repede cate numere sunt cu 9 cifre? se baga cineva?si... cu intrebarea mea cum ramane? nici un cunoscator? hint: in practica, numerele a si b aleatorii sunt de obicei foarte mari Quote
loki Posted March 10, 2008 Report Posted March 10, 2008 personal as baga un alt php (sa complic putin sa nu modific php-ul initial)<? $time_start = microtime_float();include "phpulmeu.php";$time_end = microtime_float();$time = $time_end - $time_start;echo "Rulat in $time microsecunde\n";?>Nu as folosi time() care e in secunde.Daca am raspuns bine vreau sa dezvolt putin problema (intalnita la un countdown in flash raspandit pe net dar nefinalizat... pe asta am scos primul banut pe primul flash furat ca eram bata in flash):Avem un countdown in flash care isi ia dintr-un php data si ora la care sa se opreasca si zice "Mai sunt 5 zile 3 ore... etc". Php-ul suna cam asa:<?php echo "&time=" . time();?>&year=2008&month=4&day=1&hour=0&min=0?>pentru 1 aprilie.In Flash am folosit conform sursei originale:...server = new LoadVars();server.onLoad = function(ok) { if (!ok) { return trace("Server error! Unable to obtain date from server"); } counter.onEnterFrame = countdown; counter._visible = true; this.time = Number(this.time)*1000-getTimer();};var testDate = new Date();server.load("gettime.php");counter._visible = false;In Internet explorer 6 daca dau F5 se reporneste counterul si nu e bine. Ce am putea face sa functioneze corect in IE?EDIT scriam kile de text, am raspuns 2. Merge intrebarea? Quote
phreak Posted March 10, 2008 Report Posted March 10, 2008 daca adaugi la numarul 3 , 3 o sa ai numarul 33 care nu-i prim. Daca adaug la 53 cifra 1 nu mai e prim , etc . Quote
drealecs Posted March 10, 2008 Report Posted March 10, 2008 Si deci solutia cu numerele superprime . Nu exista de 9 cifre.Scriptul urmator va afisa numerele de 2,3, 4... 8 cifre care sunt superprime. Lucrez in php ca-l stiu mai bine.<?phpset_time_limit(5);$timp0=microtime(1);function eprim($a){$prim=1;for($i=2;$i<=sqrt($a);$i++)if (!($a%$i)) $prim=0;return $prim;};$ar[1]=array(2,3,5,7);for ($i=2;$i<=9;$i++)foreach($ar[$i-1] as $nr)for($j=0;$j<10;$j++)if(eprim($nr*10+$j)) $ar[$i][]=$nr*10+$j;echo "<pre>";print_r($ar);$timp1=microtime(1);echo "</pre>";echo $timp1-$timp0;?>Sa punem si outputul daca tot...:Array( [1] => Array ( [0] => 2 [1] => 3 [2] => 5 [3] => 7 ) [2] => Array ( [0] => 23 [1] => 29 [2] => 31 [3] => 37 [4] => 53 [5] => 59 [6] => 71 [7] => 73 [8] => 79 ) [3] => Array ( [0] => 233 [1] => 239 [2] => 293 [3] => 311 [4] => 313 [5] => 317 [6] => 373 [7] => 379 [8] => 593 [9] => 599 [10] => 719 [11] => 733 [12] => 739 [13] => 797 ) [4] => Array ( [0] => 2333 [1] => 2339 [2] => 2393 [3] => 2399 [4] => 2939 [5] => 3119 [6] => 3137 [7] => 3733 [8] => 3739 [9] => 3793 [10] => 3797 [11] => 5939 [12] => 7193 [13] => 7331 [14] => 7333 [15] => 7393 ) [5] => Array ( [0] => 23333 [1] => 23339 [2] => 23399 [3] => 23993 [4] => 29399 [5] => 31193 [6] => 31379 [7] => 37337 [8] => 37339 [9] => 37397 [10] => 59393 [11] => 59399 [12] => 71933 [13] => 73331 [14] => 73939 ) [6] => Array ( [0] => 233993 [1] => 239933 [2] => 293999 [3] => 373379 [4] => 373393 [5] => 593933 [6] => 593993 [7] => 719333 [8] => 739391 [9] => 739393 [10] => 739397 [11] => 739399 ) [7] => Array ( [0] => 2339933 [1] => 2399333 [2] => 2939999 [3] => 3733799 [4] => 5939333 [5] => 7393913 [6] => 7393931 [7] => 7393933 ) [8] => Array ( [0] => 23399339 [1] => 29399999 [2] => 37337999 [3] => 59393339 [4] => 73939133 ))0.904978990555Scuze daca e prea lung. Multumit phreak?Acum revenim la problema cu (r^a mod p)^b mod p = (r^b mod p)^a mod p ?...Sa vedem macar la ce se foloseste? Quote
loki Posted March 10, 2008 Report Posted March 10, 2008 e mai grea problema, dracu stie cine foloseste.Da-ne un indiciu: e vorba 1) de informatica? 2) de circuite, automatica, microdealea? sau 3) de matematica, algebra, inelul claselor de resturi?(btw un pic de offtopic dar ontopic am vazut o problema prin topicul asta: interschimbarea corecta a 2 numere fara variabila auxiliara, pentru prevenirea depasirilor evitam adunarile si scaderile si se face simplu binar: a=a xor b; b=a xor b; a=a xor b; ) Quote
drealecs Posted March 10, 2008 Report Posted March 10, 2008 pai nu prea am ce indicii sa va dau. decat sa va spun ce eEste vorba de reformulare a teoriei mici a lui fermat.http://en.wikipedia.org/wiki/Fermat's_little_theoremhttp://ro.wikipedia.org/wiki/Mica_teorem%C4%83_a_lui_FermatAcum aflati voi la ce se foloseste. Nu e chiar greu.Alt hint. Domeniu: Securitate.LE:Si daca cauti security in linkuri gasesti pe acolo detalii. Ma asteptam sa stie mai repede careva oricum. Si cum n-ati stiut sa povestim putin:Deci teoria aia care a zis-o Fermat e asa:Daca p este numar prim, orice numar ridicat la puterea p-1 se divide prin p.Ideea e ca Fermat asta nici nu a reusit s-o demonstreze dar ma rog.. e si el cu inventivitatea pe acolo.Si formula asta e o urmare a teoremei lui.Se foloseste la RSA care e bun atat pentru public-key criptografy cat si pentru encriptie:Sa luam un exemplu de encriptie:(r^a mod p)^b mod p = (r^b mod p)^a mod p .... ziceamUtilizatorul A si B trebuie sa comunice criptat fara ca altii care ar asculta convorbirea sa stie ce se vorbesteSe foloseste un r si un p standard asupra caruia utilizatori cad de acord.pas1:A: genereaza un numar aleator mare aB: genereaza un numar aleator mare bpas2:A: calculeaza x=r^a mod pB: calculeaza y=r^b mod ppas3:A: trimite x lui B si primeste yB: trimite y lui A si primeste xpas3:A: calculeaza k1=y^a mod p (adica k1=(r^b mod p)^a mod p)B: calculeaza k2=x^b mod p (adica k2=(r^a mod p)^b mod p)k1=k2 si asta este cheia cu care se vor cripta/decripta mesajele in continuare in discutia lor.Ea nu este vizibila altor utilizatori care ar putea intercepta traficul.Exemplul nostru:r=2p=113pas1:A genereaza 10B genereaza 8pas2:A calculeaza x = 2^10 mod 113 = 1024 mod 113 = 7B calculeaza y = 2^8 mod 113 = 256 mod 113 = 30pas3:se trimit valorile intre utilizatoripas4A calculeaza k1 = y^10 mod 113 = 30^10 mod 113 = 106B calculeaza k2 = x^8 mod 113 = 7^8 mod 113 = 106Si 106 e folosit sa se cripteze mai departe traficulSe presupune ca cineva poate sa intercepteze traficul. El va vedea x adica 7, y adica 30 si va stii standardul r=2 si p=113. Din aceste date nu se poate creea cheia 106.Pentru valorile de exemplu, se poate prin forcebrute foarte simplu. In practica se foloseste p,a si b numare pe 1024 biti sau mai mari. Quote
phreak Posted March 11, 2008 Report Posted March 11, 2008 timpul necesar era 0.1 secunde in problema initiala . N-am inteles tot ce-ai facut tu acolo cu forurile alea . Tu cand gaseai un element in vector la care este adauat j si este prim , il bagai in vector. Faza e ca sunt mai multe elemente j la care merge chestia asta . nu stiu cum ti-a dat rezultatul final , o sa ma mai uit mai tarziu dar lasa asa . Is fericit ca macar am inviat topicu Quote
drealecs Posted March 11, 2008 Report Posted March 11, 2008 timpul necesar era 0.1 secunde in problema initiala . N-am inteles tot ce-ai facut tu acolo cu forurile alea . Tu cand gaseai un element in vector la care este adauat j si este prim , il bagai in vector. Faza e ca sunt mai multe elemente j la care merge chestia asta . nu stiu cum ti-a dat rezultatul final , o sa ma mai uit mai tarziu dar lasa asa . Is fericit ca macar am inviat topicu Legat de faza cu "n-am intelesce-ai facut tu acolo" mi se intampla cam des. Nu prea codez user-frendly, si pe langa asta mai am si metode ciudate.Pai eu acolo am un vector de vectori. am vectorul $ar[1] initial care contine 4 elemente. apoi vectorul $ar[2] care e construit pe baza lui $ar[1]. Adaug la fiecare cate o cifra, il testez si il inserez in $ar[2] si asa mai departe. Daca aici adaugam numai 1, 3, 7 sau 9 era mai bine. Nu ai zis nimic de optimizari asa ca n-am facut.Ma indoiesc sa nu fie corect. M-a mirat si pe mine secunda care a trecut dar am presupus ca e de la calculul daca e numar prim al numerelor mari.Si nu stiu daca l-ai reinviat cat timp nu exista o intrebare curenta... Quote
loki Posted March 11, 2008 Report Posted March 11, 2008 Si nu stiu daca l-ai reinviat cat timp nu exista o intrebare curenta...Pai am pus eu una mai lunguta in penultimul post (legata de un fix pt IE), nu stiam ca a ramas de lucru la numerele prime. Quote
phreak Posted March 11, 2008 Report Posted March 11, 2008 timpul necesar era 0.1 secunde in problema initiala . N-am inteles tot ce-ai facut tu acolo cu forurile alea . Tu cand gaseai un element in vector la care este adauat j si este prim , il bagai in vector. Faza e ca sunt mai multe elemente j la care merge chestia asta . nu stiu cum ti-a dat rezultatul final , o sa ma mai uit mai tarziu dar lasa asa . Is fericit ca macar am inviat topicu Legat de faza cu "n-am intelesce-ai facut tu acolo" mi se intampla cam des. Nu prea codez user-frendly, si pe langa asta mai am si metode ciudate.Pai eu acolo am un vector de vectori. am vectorul $ar[1] initial care contine 4 elemente. apoi vectorul $ar[2] care e construit pe baza lui $ar[1]. Adaug la fiecare cate o cifra, il testez si il inserez in $ar[2] si asa mai departe. Daca aici adaugam numai 1, 3, 7 sau 9 era mai bine. Nu ai zis nimic de optimizari asa ca n-am facut.Ma indoiesc sa nu fie corect. M-a mirat si pe mine secunda care a trecut dar am presupus ca e de la calculul daca e numar prim al numerelor mari.Si nu stiu daca l-ai reinviat cat timp nu exista o intrebare curenta...gata, am inteles . Buna ideea , eu nu intelegeam ca nu prea stiu php si-i destul de stresant cu $ in fata fiecarii variabile Quote
&#208;&#210;& Posted March 11, 2008 Author Report Posted March 11, 2008 ba era =)aia cu timpul..ala de o rezolva..lokipakylokypaki te asteptam Quote
loki Posted March 11, 2008 Report Posted March 11, 2008 Asta era raspunsul:personal as baga un alt php (sa complic putin sa nu modific php-ul initial)<? $time_start = microtime_float();include "phpulmeu.php";$time_end = microtime_float();$time = $time_end - $time_start;echo "Rulat in $time microsecunde\n";?>Nu as folosi time() care e in secunde.Chiar trebuie sa postez raspunsul pentru fiecare in parte? Era tot pe pagina dinainte impreuna cu intrebarea mea si in acelasi post. N-are sens sa repostez.Continuarea postului era intrebarea mea pt urmatorul, sub o forma mai lunga si ca un apropo la time().EDIT bun, am continuat prea repede si parea ca rezolvam ceva acolo: Hai sa repet intrebarea. Pe scurt avem un countdown timer ce afiseaza cate zile/ore/minute sunt pana la un eveniment. Foloseste un php din care citeste ora cu time(). In Mozila merge ok dar in IE daca dai refresh dupa 10 minute el nu iti scade cele 10 minute ci o ia de la capat. Intrebarea e cum se poate rezolva aceasta problema. Quote
drealecs Posted March 11, 2008 Report Posted March 11, 2008 mdapentru php-ul initial trebuie bagate niste headere ca altfel il tine in cacheun exemplu ar fi:header("Cache-Control: no-store, no-cache, must-revalidate");ce intrebari sa va mai pun?... Quote
loki Posted March 11, 2008 Report Posted March 11, 2008 mdapentru php-ul initial trebuie bagate niste headere ca altfel il tine in cacheun exemplu ar fi:header("Cache-Control: no-store, no-cache, must-revalidate");ce intrebari sa va mai pun?...Intr-adevar e de la cache si chiar nu stiam de cache control.Solutia folosita de mine la vremea aia era "server.load("gettime.php?uniqueid="+testDate.getTime());" unde uniqueid era doar o pentru a schimba adresa php-ului spre a pacali browserul....Intreaba, intreaba! Quote
Hertz Posted April 1, 2008 Report Posted April 1, 2008 Vad ca drealecs nu mai are de gand sa intrebe,asa ca pun eu urmatoarea intrebare.Aflarea numarului de atribute în cazul cînd se afiseaza erorile în browser.Sa zicem ca exista urmatoarea vulnerabilitate în aplicatia-web ce utilizeaza SGBD MySQL:http://127.0.0.1/inj.php?id=5'Cum se identifica numarul de atribute si apoi cum se afla tipul lor? Quote
&#208;&#210;& Posted April 1, 2008 Author Report Posted April 1, 2008 Erori de la Php? Quote
Hertz Posted April 2, 2008 Report Posted April 2, 2008 eu nu inteleg ce e numarul de atribute Înainte de a efectua injectarea UNION SELECT ar trebui sa afli numarul de atribute în cererea SQL, tipul fiecarui atribut si denumirea unor tabele de sistem ceea ce se considera greu de realizat în cazurile cînd nu se afiseaza erorile în browser. Cererea UNION SELECT trebuie sa contina acelasi numar de atribute, iar atributele trebuie sa fie de acelasi tip. Sper ca ai prins ideea...Daca nu stie nimeni,pun eu rezolvarea si pun apoi alta intrebare.. Quote
Hertz Posted July 18, 2008 Report Posted July 18, 2008 Reinvii acest thread deoarece e unul din cele mai educative de pe rst si e un joc folositor nu de genul 'inchisoarea' :/.O noua intrebare.Avem o pagina abc.php si una 123.php,iar noi trebuie sa accesam pagina 123.php prin intermediul paginii abc.php.Folosind telnet,cum putem accesa pagina 123.php avand ca referal pagina abc.php ? Quote