Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: 044 Al k-lea termen Fibonacci  (Citit de 16456 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
•Marius
Nu mai tace
*****

Karma: 154
Deconectat Deconectat

Mesaje: 572



Vezi Profilul
« : Ianuarie 04, 2010, 18:56:18 »

Aici puteţi discuta despre problema Al k-lea termen Fibonacci.
Memorat

Faceti lucrurile simplu: pe cat de simplu posibil, dar nu mai simplu.
•Robytzza
De-al casei
***

Karma: -49
Deconectat Deconectat

Mesaje: 129



Vezi Profilul
« Răspunde #1 : Martie 03, 2010, 16:53:22 »

cine imi explica si mie de ce sursa asta ia 100-a :
http://infoarena.ro/job_detail/380187?action=view-source
Cod:
#include<fstream>
using namespace std;
int main()
{
fstream in("kfib.in",ios::in),out("kfib.out",ios::out);
    int x=0,y=1,z,k;
    in>>k;
    while(k--%1332028)z=(x+y)%666013,x=y,y=z;
    out<<x<<endl;
}

aha ms
« Ultima modificare: Martie 03, 2010, 17:36:36 de către Ionescu Robert Marius » Memorat
•klamathix
Echipa infoarena
Nu mai tace
*****

Karma: 733
Deconectat Deconectat

Mesaje: 1.216



Vezi Profilul
« Răspunde #2 : Martie 03, 2010, 17:33:22 »

Numerele Fibonacci sunt periodice modulo m . Cel mai probabil 1332028 este lungimea perioadei pentru m = 666013.
Memorat
•yo_s_canta
Strain


Karma: -2
Deconectat Deconectat

Mesaje: 2



Vezi Profilul
« Răspunde #3 : Martie 08, 2010, 15:48:57 »

Exista formula pentru termenul general la sirul fibonacci (nu ma refer la recurenta)
O explicatie : http://www.ginfo.ro/revista/14_1/mate2.pdf

Memorat
•Cosmin
Echipa infoarena
Nu mai tace
*****

Karma: 351
Deconectat Deconectat

Mesaje: 1.799



Vezi Profilul
« Răspunde #4 : Martie 08, 2010, 16:20:07 »

Nu prea ai ce face cu formula pt problema asta pt ca ti-ar trebui calcule cu numere reale de precizie mare.
Memorat
•SpiderMan
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« Răspunde #5 : Martie 08, 2010, 16:20:59 »

Nu cred ca merge cu numere mari Confused
Memorat
•yo_s_canta
Strain


Karma: -2
Deconectat Deconectat

Mesaje: 2



Vezi Profilul
« Răspunde #6 : Martie 08, 2010, 23:03:50 »

N-am incercat sa implementez... dar banuiesc ca daca folosesti round() o sa dea bine
Memorat
•Cosmin
Echipa infoarena
Nu mai tace
*****

Karma: 351
Deconectat Deconectat

Mesaje: 1.799



Vezi Profilul
« Răspunde #7 : Martie 08, 2010, 23:40:14 »

Ia incearca, ca sa intelegi mai bine ce se intampla.
Memorat
•otilia_s
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 12



Vezi Profilul
« Răspunde #8 : Martie 23, 2010, 12:51:53 »

Puteti sa imi explicati si mie va rog cum functioneaza "1LL" din expresia:
         C[j] = (C[j] + 1LL * A[k] * B[k][j]) % mod;
Presupun ca transforma in long long, pentru cazul in care A[k]*B[k][j] depaseste tipul int. Dar mi-ar placea sa inteleg mai bine ce se intampla cu expresia si in ce context ar mai putea fi folosit. 
Multumesc!  Very Happy
Memorat
•wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #9 : Martie 23, 2010, 13:58:02 »

1LL înseamna valoarea 1 reținută pe 64 de biți. Când înmulțești un long long cu un int, se va face cast la long long. Astfel, dacă vrei să înmulțești două variabile A și B de tip int, iar produsul lor intră doar pe long long, poți face ca mai sus: 1LL * A  * B. O altă varianta ar fi să scrii tu castul de mână: (long long)(A) * B.
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
•otilia_s
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 12



Vezi Profilul
« Răspunde #10 : Martie 23, 2010, 14:28:27 »

Am inteles!  Smile Multumesc!
Memorat
•S7012MY
Nu mai tace
*****

Karma: 26
Deconectat Deconectat

Mesaje: 648



Vezi Profilul
« Răspunde #11 : Iunie 06, 2010, 19:39:49 »

Ar mai fi aici si problema nkbiti
Memorat
•caen1
Client obisnuit
**

Karma: 22
Deconectat Deconectat

Mesaje: 75



Vezi Profilul
« Răspunde #12 : Aprilie 24, 2011, 18:46:04 »

Exista vreun mod prin care sa determini (rapid) perioada in astfel de cazuri, sau metoda simpla nu este practica in timpul unui concurs? Multumesc!
Memorat
•scipianus
Nu mai tace
*****

Karma: 129
Deconectat Deconectat

Mesaje: 345



Vezi Profilul
« Răspunde #13 : Noiembrie 03, 2011, 20:29:00 »

Cred ca este o problema cu timpii la evaluator la problema aceasta,intrucat observ in monitor foarte multe surse de 0.30-0.50kb care implementeaza fibonacci in mod clasic,liniar,surse care iau 100pct,desi se zice ca ar trebui sa ia vreo 20pct  Read This!
Memorat
•klamathix
Echipa infoarena
Nu mai tace
*****

Karma: 733
Deconectat Deconectat

Mesaje: 1.216



Vezi Profilul
« Răspunde #14 : Noiembrie 03, 2011, 21:00:26 »

Cred ca este o problema cu timpii la evaluator la problema aceasta,intrucat observ in monitor foarte multe surse de 0.30-0.50kb care implementeaza fibonacci in mod clasic,liniar,surse care iau 100pct,desi se zice ca ar trebui sa ia vreo 20pct  Read This!

Mnop. Sursele alea se folosesc de periodicitatea numerelor Fibonacci modulo n. Pentru n-ul din problema asta, perioada e mica (2 * n parca ) si poate fi calculata liniar.
Memorat
•NicuCJ
Strain
*

Karma: 6
Deconectat Deconectat

Mesaje: 44



Vezi Profilul
« Răspunde #15 : Aprilie 17, 2013, 14:56:09 »

Merge cu o idee asemanatoare sa faci in timp logaritmic si al k-lea termen fibonacci de 3, 4, 5 s.a.m.d. ?(fib de 3 fiind Fn=Fn-1+Fn-2+Fn-3)
Memorat
•pauldb
Nu mai tace
*****

Karma: 821
Deconectat Deconectat

Mesaje: 1.901



Vezi Profilul
« Răspunde #16 : Aprilie 17, 2013, 14:58:53 »

Da.
Memorat

Am zis Mr. Green
•NicuCJ
Strain
*

Karma: 6
Deconectat Deconectat

Mesaje: 44



Vezi Profilul
« Răspunde #17 : Aprilie 17, 2013, 22:49:22 »

Imi poti spune te rog cum arata matricea fixata pentru fib de 3? Nu gasesc niciun pattern fata de fib de 2.
Memorat
•klamathix
Echipa infoarena
Nu mai tace
*****

Karma: 733
Deconectat Deconectat

Mesaje: 1.216



Vezi Profilul
« Răspunde #18 : Aprilie 17, 2013, 23:12:47 »

Iti spunem duminica la 00:00:00 daca vrei Very Happy.

L.E: Sarumana, Craciun Smile.
« Ultima modificare: Aprilie 18, 2013, 01:25:01 de către Mihai Calancea » Memorat
•deneo
Vorbaret
****

Karma: 185
Deconectat Deconectat

Mesaje: 160



Vezi Profilul
« Răspunde #19 : Aprilie 18, 2013, 00:38:58 »

@Mihai
Cred ca vrei sa zici duminica Tongue
Memorat
•NicuCJ
Strain
*

Karma: 6
Deconectat Deconectat

Mesaje: 44



Vezi Profilul
« Răspunde #20 : Aprilie 18, 2013, 08:18:17 »

Smile) Ok.

L.E.: Am reusit dupa cateva zile de inmultit matrici pe la scoala sa ajung la un rezultat. Parca ma simt mai bine decat daca mi-ati fi trantit rezultatul in fata Smile) Deci, multumesc!
« Ultima modificare: Aprilie 20, 2013, 18:16:31 de către Nicu B. » Memorat
•Andrei1998
De-al casei
***

Karma: 26
Deconectat Deconectat

Mesaje: 112



Vezi Profilul
« Răspunde #21 : Iulie 08, 2013, 21:51:55 »

Am facut si eu problema asta si am luat pe ea 100p, explicatia este foarte bine realizata! (mai ales ca poate fi usor generalizata rezolvarea problemei pentru Fn=aFn-1+bFn-2)  Thumb up
La restrictii scrie ca "0 ≤ K ≤ 1 000 000 000." Cazul k=0 nu se afla in testele problemei desi este particular si multe surse (inclusiv prima pe care am trimis-o) dau raspuns gresit sau se blocheaza pe acest caz. Eu am tratat cazul printr-un simplu if. Cred ca ar trebui incurajata o rezolvare corecta a problemei caci in timpul unui concurs o sursa ce nu trateaza cazul k=0 poate duce la pierderea de puncte valoroase.
Toate cele bune.
Memorat
•Magnvs
Strain


Karma: 56
Deconectat Deconectat

Mesaje: 15



Vezi Profilul
« Răspunde #22 : Iulie 09, 2013, 19:11:22 »

f[-1]= 1 si toate cazurile tale particulare dispar
dar e o idee buna sa fie modificata restrictia in 1<=k<=10^9
Memorat
•sauron
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 1



Vezi Profilul
« Răspunde #23 : Mai 07, 2014, 10:49:46 »

testele dau 100 de puncte la implementarea directa Exclamation
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

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