Use a while loop to determine how many Fibonacci numbers are less than 100000.
1 次查看(过去 30 天)
显示 更早的评论
I'm a beginner at matlab learning how to use it in class and this is the problem on an assignment. I currently have
f=ones(1,100);
f(1)=1;
f(2)=1;
x=3
counter = 0
while x < 100000
f(x) = f(x-1) + f(x-2)
x = x + 1
counter = counter + 1
end
I don't know why this isn't working. Can anyone shed some light on my situation?
0 个评论
回答(1 个)
John D'Errico
2021-9-16
编辑:John D'Errico
2021-9-16
What does your test do? That is...
while x < 100000
Answer it tells when the INDEX of the Fibonacci number is less than 100000. Is that the Fibonacci number? NO.
For example, in the sequence,
1, 1, 2, 3, 5, 8,13, 21...
What is the 6th Fibonacci number? It is 8. So the index of the 6th Fibonacci number is 6, but the corresponding Fibonacci number itself is 8. Similarly, the 7th fibonacci number is 13. Thus f(6) == 8, and f(7) == 13 in the sequence you are computing.
In the code you wrote, you are testing to see if the INDEX of that number is less than 100000. In fact, the 100000'th Fibonacci number has a gazillion digits. (Technical, math term there, for one big, godawful number.) Actually, f(100000) is only approximately 10^20898, so only around 21000 digits in the number. But it will overflow in double precision.
So what you want to test is when f(x) finally exceeds 100000. Stop counting when that happens. Be careful to make sure you stop counting just in time.
A good trick using mathematics would be to use the Binet formula to decide how many Fibonacci numbers are less than 100000. You would not even need a loop then, just logs, and some active thinking. Ok, not a lot of thought. Just logs.
By the way, in case you care, the 100000'th Fibonacci number is...
25974069347221724166155034021275915414880485386517696584724770703952
534543511273686265556772836716744754637587223074432111638399473875091030
965697382188304493052287638531334921353026792789567010512765782716356080
730505322002432331143839865161378272381247774537783372999162146340500546
698603908627509966393664092118901252719601721050603003505868940285581036
751176582513683774386849364134573388343651587754253719124105003321959913
300622043630352137565254218239986908485563740801792517616293917549634585
586163007628199160811098365263529954406942842065710460449038056471363460
330005208522777075544467947237090309790190148604328468198579610159510018
506082649192345873133991501339199323631023018641725364771362664750801339
824312317034314529641817900511879573167668349799016820118499077566864568
450662873924856039140476051995500662888263458771894106803700918793650017
330117100283104739474562560914449328213748555738640805798130282666402703
542944121049199958031318768058991865134251759599115205631553377039969410
355182752749199598022575079020377981030899229849963044962558140455170002
502997643221934621653662108418767454282982613982344783665815880408190033
073829395000821320093747154851310272208173054322648669496309879147143629
255542526240439996153269798768075106468190687921182991679644091782718685
617029181022126792674013626504997849688436809752547001310045741864064482
994858725517447466956518791269169932445648176733222571493149677633458466
238303338202397024368594782876418757885729107101337003000942293335972927
791914092128049015459762627910570552481588840517794181929052167695766087
488155678601288183543542923073978101547857013284386127286201766539534449
930019800629538936985500723286651317181135886613537472684585432548981137
176605194616937916884425342594781263103889520479565943807153019112539648
471126389007133628569101551453423329441284357220996286746119420951661002
309740709965531900508158669911445442647882872642845017253320486483194578
920399848938236367456182203750973485668474338872490493370316338265717607
297788917989136673251906232471180372801739215723908227692280772924566627
505383375006926077210593619421268920302567443565378008318306375933345023
502569729065152853271943677560156660399164048825639676930792905029514886
934137991251748566670747175149389790386533381395346848378086126737554383
821108448976538368483182588363399173104558509056638462025014631311831087
429077292622159430204291594740306101839816855066950261973761508571761199
475875722129872053120607918649803615960923395941041186351688548839119185
179061511562752936158490008721501922265117853150892510275280451512386037
921846921215338292871369243215273327141574788295902601571954853164447945
467502858402360002383447905203451080332820138038807089807348326201227952
633606773669875783326254859449060219173688677862411205621098369850197290
177157801120404586491539351157834995461006366357454485082418882790675313
599505192062229760153765297973085881648731173082370598284894044874039320
535929359764541655607954724778620299692329561389719894679422187273605123
365595211331087787582288795975803204596084790245063851941743126163775104
599211024868794963417068620929088930685252348056925998333775103901013166
178123051145719327066291671254465121517468025481903583516889717075706778
656188008220346836321018130262329960275994035799977740462449521145315883
703579044832931500072461734173558055678321534543411700202585608091662941
986374015145695722728369219632295111877625307534025947814482046574602884
855000628069348113982760168555840795421620575435572915106415375929390228
843561207926437055600623679865443824643739469724719459965557955058380348
255978396827760847315302517889517186307227611036305093600742622617173630
586132915440246954329046162586917746305785076749374879923291817501634840
688134655343709975893536074051729094126976575932951568186247471276364688
365517570183534172746626073065104511957628663499228486787805910851189856
535554349587616640164475880286336297040462890970677362565843002353147494
612339120686321466370878446992104275415694109122465685712047172411333784
898167640969249816334211768571503116710400681753031921154156119580425706
586931272762137106974722260296555246110537155545324997508432752001992143
019105053629960070429632978051030666506387862681576587726837451289768507
963663710593809112254288358391941211547737599813019216509521401333060709
873137329265181692268450634439540567298120315463923249817937804691037934
221694952291007930299492375072993250630509428139027930841344730614116433
556147640931044259184813639305423693789765205264563476483182726333715121
120306292338892864879492097378478618848682608046473195392008403983080088
038690495574197562192939221108257663976813610444900247209483403267967688
376213967440757138872928630798218493143438797780887379588968409461434159
271317578365114578289355818599029235343888888465874521308381377794436361
197628390368945957601203165022798579015453447473527069728514545998614229
027372911314637820455162254475353567736227936485450357102086445412089842
350389087702230398493802147348096874333362254491501174117515707045610508
952740002063804979679604026178186644812485472696308234733772455433905198
413087697812765659167642290229481817630757102557933650081522863836344931
380899717850870708636322058690189383777660630060667577324272729292474212
952650007066467227300099561241914091389846752249557907293984956087504566
942177715511073466304566039441362358884436762152739285970722879373559667
239246138274687032178584599482575147454064364609970593161205968415604732
343966524572316503177928338605903883604176914287327357039868033426046700
717173635730911229813069032861371225979370966057751729645282637574340757
922821807443529086696068540217185978911663338638585897362091142484321786
450394791954242081916260885710691104339948014730131008698488664307212167
624731196181907378207665829682807960794822595490363282665780069948568253
005364366748225346037051345036031521542969439918662368576380623512098844
487411386001711736476321260299614085619255997075668278667787323774194444
622753999092910446977164761511186723272386792081333673061819448493966071
233452718565202536436219641987827529788130600803131418170693144682211892
757849782810943677515407101063505537980038422190455084822393869932969266
592211127426981330623000734656284980936366930494468016285537126334126203
784919194986000972008367278766507868863069334189952257683143908324848863
403189401941610369798438333466086767094316436535384309121578155435128520
777208580989020995864496024794919706872307656871092343807195098248144731
578137800806393584187566550985013218828528401849814076907385073695353777
118803885289353476009303385986916082893354211477229365619072762646037260
272393209911878204070674122722581207667290400719242379303309721323641840
939561029959712917998282900095391473824378027790511120309545825328887211
461701334403859396540478061993332245473178034073409025121302172795957538
631581488103929524754109438805550983826276331276067181261710220113561818
007754002275167341441692164249731756213631285882819780057888324545345815
224349372681334339977105125320814783450671398350383329013139459864818202
723220433419309290119078328965692228783374973543015617228291156273294688
148532819221007523736268276431526857354932230280181014496490090155292486
383388856648930022509743436012008143651536253691994467097111269519667257
800618912154402224875646015546328120919458246535574320476442126507906552
082083379760714651275083204871652715774723258872757611283575921325539344
462894332581050286335836692918285668947362235082502949640657986308096143
416968304675951743553132243626642071976084590242630174733922252912483663
164280065528709750519975049130098594680710136023364401644001791886108532
307649917143720544678235972117604651532001630853363193515896458906817223
728123103202718979179512727996560536940321112428465909945563802154613161
062675216338056643943188812681994940055370686976218552318589211009634410
129335357339184596681975398342846968228894600763520316889220020219313183
697575569620611157743058263055358620156378912460312206729339926173783796
251509999354036487314232088739779689089083699962929953919772177965334212
492919783837514600620549673416628334873410110977705358980664981360113955
715843283087139405825352740560810115039079416880791972129331483030726386
786314110384431282159949368243429981887197686376044963425975242568861886
889789808883158650762626048564650043228968561492550639688114044004295038
942458723822335431010786915173283336047792627277656860761777056168740502
577437499837758301438561354272738385897741335269491654839297215195547935
789238667625027453701046609093824496266269353213037445388924792161611888
897020779104485631995148266308028795495464535838663073444237533197122791
588617072896520901498483054359832007713266534072906620167757064096901837
712013068232453334779666605253254908736019614803782415660712716503835822
572892157082093695109958901328594907243061833257552012080900071750220229
497428018234454137119162984499147222541965946822214682606449618392542496
709031040075814888579716722463228870164384039084638567311643081695373267
903031145836805750211196399056151691547085104597005420985717973180155647
414061723341458471112685479298924430013914682891036791792169786165824890
073220335913767065276765213071439853027609884780562169946596554613791749
856597392273794167264953778019920983554278661791231266993747307777305693
244301668393330115545155426568649374921286870491217542459678311329692484
924667442619990339728256748734602011504422287804661243201830161082321839
086547710423982285313165596856880052265714744288233175394565438819286244
326625033453881995900851052113831244918618026244321955404339857228413412
544094117717221568670862917421240531106205228429861992736294062088347548
536451281232796090972139537753600230767656942082199430346487833485444927
135394502245913343746649377016556057633846970629187257454265058794146301
766397604574743110815567470916527087481252671599137932405273046136939611
698925898083119063225107779285620719994594877006118010022961323045882945
584409524966111583428049086438608807964405577636918577437540258968559272
525145634043852178258905995539546274513854544529167610429692679708935800
562345019185714890304184957674008193599732187119574963570959678251710962
647520688908064076514458931328707674541696071079316927042851680934133110
463535062422098103632167719104207861621842137639381946256972867814136363
896201239769104654189568061973231484142245500716172158513213020306841760
872158927020988791089380810459033972765473264169168454456276007595613671
035845756490944306924525320850030910687831575615198475675691912847846546
925586651115579134612724253360836351313421839051771545112284644551360160
135132289485432715047608393075561009087860966638706122786902748318193316
067014849571630047052622282384062668184487883745481319943803876138301288
598852642019922861882084995886408885213525014576153964826474510259025307
431729568996364996157075518558371659353671254485150893629045677366300355
624573747791009879924991469672240414816012895309440154889426137831400878
043114317418580718261851490511387448313584390672289494082582860216502889
272283874264327861686903819605301558944594518087351972460082215293439808
282541261282571572093509853828007385604729109411840060844852353778335033
068619777245018863640703449733664731006020181287928869918618244184539689
947772594821691371336474704531729798092458443611296189975956962409718455
640205114325895918447249209429303016514887130798021023790655365251547802
980594075294405131458075515377948616358799011581920198088796949671874482
241568364635343261602426329347616344581638901638051238941845239734218414
968892623984896486420934098166814947711551770095626690298501015135375998
012725012419711198715265937474847789354887778151929311714311674447738829
410646150287513277094745047639228748906629898415402593508340351420351361
688192482389980277066669163421334243120545073593886166876911881857761181
357713324839652098820859823912986063868228047543624089565229214108598520
373305446259532613402348646892750605268937551484032985420869912210525970
056285767077025676953009789700464089200098521069802954196998021380532957
981594782899344432454915653278452238405512404452082264354206563133107029
407223715527705042634820739844548895892488613976570791454144276535845729
513297190919476944119109667974742626755909538320391696734942613600322630
774286841050400613510521944137781580950057145268460098103521092490400279
580507364369610212411377397171648695254931148050401265683512688295984139
832226763778045006265072417317573952197968907548251993292596498016270686
656580301788774056151671597319273204793762473755058550528396602945669925
221736008740812120142090710419375985717214313380174251415824918247109050
847159772494170493202541652393232332588515888933370971363108925715314177
619783260337501090262840664158013713593565292780884563059517700814439941
146742918503607488523666547448699280832305168157116029118363741479584921
008605289814695477508123388969431528610212027367470499039304170351713421
269234867005666275062290586369118822289031705103054068820969708755453293
694340639812976964780318254516421783473477164710584232385945801830527562
139101869976043058440686657123468696794560441557421000391797583489799358
827518815246759308789281592434921975453876683056846684207754098217812470
533545231947973989533201759886402810588255576980043971205383124594289573
776960018574973352499650135093689259580218638117259065064368821271568157
510217129007659927503702282839639629159732511734185867210234973177659694
542836255193715560091436803293119628425466284031424443706484323903749064
108113007928489557672434812000903098884572709077508736388732996425550504
738125289759629348228789176199207251383093882882925104168376227582040819
189336036538752841167857037209897188329869219278166296758445801749118091
196630481874341550677908639488314892415043004767045279712834822115222028
370628573142441078237925136450866775666228049772113971406216641163247567
842166129614771090188260946773776864061767214842938949766713801227889413
090265535110961183470125651975408070953840609168639369066737866272094294
342642604029021583173450037274625889926220498771211784055633484924903260
035085690993823927772974984135656148307882623633223683807098223460122742
413790364734517359252157547571609342709351929017239549214264906911152715
233381091240428121028937384881673589539345089306977155229891996989038858
832754090443003219868340034702712200201596993716906503305475770953987485
806700244910455048900617271891680313945280361656339415713346372225504775
474607560550241087643821216888489169403712589019484906853797222445620094
838194915327245022762185891695074057949837598210066044819965193601102615
769471762025717020486849146168940684041408335875621183192108380056321445
620189415059457800253187474719116048406779977654148306221790693308538751
292989830095802775541454350587689849441791365358916200987252220490551835
546037065331831767161107380097866252474886914760776644701471930744763024
116603356717655648744405779905319962716329720091094492492164560306188277
729477507647774464525863289191591074442523200829182095180210837003538813
309832158946086801279542247520719241346483349639150948130975414332442092
999307514810779190023461281223301617994299306188005334145506339321393396
468616164169552202164479954172431711657444713641977332048993650747678441
499295480730258564429423817876415064928783617679786771585107842357026402
133880188756019892340568684232155856285086455252583770106205322242449879
906252634840107743224881725586022333020763999338541520153438477254429178
951306370503204449177977523708719582779767996861136265322911186296311646
851599346606934605575459560631558300336976340002766851512938436388860908
283761411577320035275651587459065670254394379311048385713132944906049265
823631089495350900826731544972263966480886180415739778884728921746189741
897217007700098624496537590127270152276345108749069480122106849520630025
190116559635805524291802055869042596852610474128345184667369385800277002
529653563667216198836724282269339503259303909945831686655422346548570208
755046175205218537215672826799034181355206029998953664701065579005321295
413369244724922124363245230428951884617791223380696742339806948872705875
033892283950951352091231092581590069603951563677360671090505662996035718
764232479207528361608055976977787564767672105212223271848214844466312614
875842260926088757643317310232637688648225946912110323677375581221334705
568059580083101274816739620195835980239674144898672768458698193767837571
679367232130815861910459950589709910646869194634480385741438296295471313
721736698361845581445057486761243224515199433621829161914680260911217930
018647880500613516031443500761892134416024880917410512322903571792054979
279709245024799408426961588184426161637800447594782122408732041244211691
998055726491182436619218357147628914258057718717436880003241130087048193
739622950171430900984769272374988759386399425305953316078916188108635059
824445789427993465149159528848697574880258233535716778648268280511408854
297327881977657369660057277001625924043016886599468629837172705958098087
309018201209310034300587965526947880498092054843054676110346547480672906
743997636125924346377199958438628123919854702024148800768808188480878923
915913694632931132768493297772016466417275872591223547844808134333280500
877588552646861195769621722393086937957571658218524162043419723839899327
348034292623407223381551022091012629492497424232716988420232973032601617
905756731112354658902982983131151236076067739689981538122869996420146098
525797936912460163460887623212862056342159014791886321946596374834825642
916162785329482393132294402310432772887681395502133482663886874532592815
878545038909915619496324788550350902893909737189880039990261320158726786
378730956781096253110080544894188579835659020636806996431650339120299443
277267708693052407184165920700961392864019667257500870122181497331336958
096003697517649513500402859262492033981110149532275336218445007443315624
345324842179861083462613458975912348399707518542232816771872159568272432
459108290198863903697845426225669125427470560975679848571366236790238784
781612014779829390805131502581745237735295101652969345627861222411507835
877553733483727644398380820006672147400344663227769189369676128789834889
420946881023084270364528545049667596973188360444967028531906373969163579
809288657199353977234954867871804164014152814894437850362910715178052858
575839877111454742401564164771941163913549354667555935926088492005463846
854030280809364172505836533680934072253108208447235702268098269514261624
512040407115014487478561999228146645658939384880286438223138498523284523
606670458051136796637510392481633361732745472757756368109773445392758275
605974251607054686896577945305216023159398657809748015154149870977780787
053570580084723768924221897503127585271401731176212798987449584061998439
133656802977212087519349885044997139142851580323248230213406303125860726
245416377652345055220510863182853596585207081733927095664450114040551065
790550374177803933516583609045430477214222818168325396136349825252152322
576909202542164096574526180660517779015929028842405999988827536919575401
169546961522704012808575797661547221929256559639918209488946426575122887
663303021337463674492174493516371047257329808328127264681877593565842183
835947027920136639076897417389622525757826639908097926470114075803678505
993818871845600946958332707751261812820153910417739509182441375619999378
192403624695582359241714787027794484431087519018074141102903707060520851
629757983617542510416422448675773507563380188953792631833898559559565278
572279261555244947393636655339045286562154642883431622829211232904518422
125328881014158840616199391950422300598983499665694635801868167170748188
232158486477343867809115646607551753855522244285240494680336922999893007
839000206901215177406964285739301969105009882785230537976379402579689532
951124361667789105855572133817890899454539479159273749586002682378444868
720372434888346168562900978505324970369333619424398028823643235538082080
038757417109692897254998785662530488670330951505184521269449892515963920
794214526065085160523256148619382824898380008150853515646427617008320964
831179444019717801492133453359033366723767192297220699707660554824522474
169277746375221352017162317221376324456991540223954941582274189305899117
469317737765187358500323180144328839163742437958546956912217740989486115
155640466095650945381155209218637115186845625432750478705300069984231401
801694211091059254935961167194576309623288312712683285017603217716804002
496576741869271132155732700499357099423244163870892424275844076512155726
760379247653418089843126769411103131659514294793776706988812496434219332
874043904855382221608370889075982773901842041381978110258545370885867014
506235785139601099874760525354501004393530620724397099764451467909933814
489946446097809577319536049387349500268605645556932242296918156302939224
876064708734311663842054424896287602136502469918930401125131038350856219
080602708666048735858490017042009239297891939381251167984217881152092591
304355723216356608956035143838839390189531662743556099700156997802892363
62349895374653428746875
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!