2024. április 23., kedd

Gyorskeresés

Contest: Fibonacci

Írta: | Kulcsszavak: programozás verseny . Fibonacci

[ ÚJ BEJEGYZÉS ]

Egy állásinterjún elhangzott kérdésből szeretnék versenyt csinálni. A feladat egyszerű: Fibonacci számokat kell kiszámolni.

A Fibonacci szabályát mindenki ismeri:
F(0)=0
F(1)=1
.
.
F(n)=F(n-1)+F(n-2), ha n>1

Felmerült kérdésre a válasz: a verseny lényege, hogy minél elborultabb, esetlegesen a feladatra kevésbé alkalmas programozási nyelven beírj egy pár soros algoritmust, ami működik. Nem célpont a konkrét eredmény megadása, azt bárki ki tudja majd számolni.

Remélem, hogy több olvasóból is előjön a vad programozó és elég agyhalott megoldásokat dobáltok be :)
Nekem van kettő, lássuk a többit!

Hozzászólások

(#1) radi8tor


radi8tor
MODERÁTOR

Spoiler tag aktiválva van a topikban. A megoldásodat [SP] [/SP] tagek közé írd.

[ Szerkesztve ]

⭐ Stella

(#2) föccer


föccer
nagyúr

Egyébként mi a verseny lényege? Ki tudja nagyobb n-re megadni? Van kalkulátor bőven a neten, vannak közte elég gyorsak is.

n=15000-re:

291822482420491383023640722369 851320223096265571182877461713 873515662445807918312889571855 821855443057170018915544140673 813139288992006519445420511522 501871839129697256085064947056 503909529854158932872201875201 399667128848417938314849451512 802519608086882325973494186047 943825115976917118393747504392 653368245937172941708303615511 146935651190005282029885911226 536421189857229602343636615695 140578412064630184957031169425 874381333306782199854518478703 841243438559001961942476419716 049431461398852068937496532702 484782377830430826364213278925 308508324548001557934936077715 514003588518801124904399346785 982147238302911095788047085464 245153506338016606869623553997 201937064220291622262717935478 025996550369392041093778032074 384777894575577730784603840997 734212200063565793584625139684 812761944262176275894005530397 852274226740655837551277936672 171617001321643902022543217117 598529992970057551787943572171 175262896613570929057258741106 916372769543386513808605761180 117908598498291361651232480538 443534644654670726403907179033 403137082918197548872138930407 712383444587069543878099029827 149351809059228918890195150384 534077018404146215681472025875 766068729891987655254387174101 578844808330116467762851448877 551666381233277937168228261933 825327063991083857110325908301 124913866766410407664110857341 740006694083885057251407118017 956908937617974357670780833995 973404755793454757776213733933 029325002162671790383725810839 223584319727751444653619212527 722891833631252126032466161374 535014881501151749654706541818 597978747418538032722002387577 920489415566750682533898528506 816103770475941974258377364464 028425400330064280519208784541 012452161205695725205041539841 970590789521162391228925401795 412007542598085259331162119721 670589149176624709160010542989 389222845796197446399950310050 433418993561165953330953890003 973920583345715846005717958242 843226091661882659750717437634 079361927711565054620110900859 791636070975947216677546937719 120729784085519260932298476005 771546795769572874895866055415 216307971471417092972554541855 505020004439200930435915484847 842032966882300127147403897272 623099204582004595855388008043 208297987914915116669232439687 141874091429449369803550137870 515211430996672030442878917572 368229803748388547623511882793 891824184310125594622681166495 348957518944579596891586338978 004451701726457285040154971265 350898519194486525672226125702 900165135675283777194258607147 558727730735917052683469304395 667759708808549114652270141375 757746104161123946766798505252 272809475428608094228095982727 180568782673409167756185330034 888406210901420617854377956953 894417451404316156563779507774 067824149279372027410313468586 412958654870462174116992864773 003643628242809835583529038699 017950482636291373580733702623 336843189654244749920987627356 390455941019925558579489437021 325631214072903083225239344023 351966531835713254402702444405 165631589535469628719114302631 638580677411935571507343153437 251699725486090759357166647574 912872185956444977488361348357 624590401512055582842699604622 014302583314067673695981346203 233466378796897692478813098509 881242360797278617948316663931 666162574107570737272044374680 294118782065306140908611007655
976683548980000

[ Szerkesztve ]

Építésztechnikus. Építőmérnök.

(#3) föccer válasza föccer (#2) üzenetére


föccer
nagyúr

Itt van n=20000-re. Jó szórakozást a többihez. Ez elvileg 4719 karakter.

253116232373236124224015500352 060729176635648580248527895192 984199131278176054131523015342 346375883163744348821921103768 903367353146274288532972407155 518761802693163044919315892277 133164230203033197109868923578 084347825850277920029363565189 748330968604286099636444351455 877215604369140415581957298497 175427851311248798589271822959 332948357853141914880538028162 426090036299355691663861393997 707468501618825858431232913952 639355809684081297042295241855 899185577230688244257485558923 716521991223820131118474907513 732298765604986630536691373492 442582268133896650746385518023 628358240986119921232383594789 114376541491334500845602200945 570421089163779191126547516776 970447733485910982259005377493 297846565102385144792060131010 628895789430159250206156052813 120307277867749144342092182259 070991044861732915613535546462 089178845956608157282488951429 635067095082420824517066760172 641709112799999994114991301042 453204688195828540946846321189 758221507543651558401629787457 218390794925728626160861240137 963948471310113812040467173219 045132788143320102518402754169 612411446348866535938587091033 147615666588945983209271030415 963701970729798841784876701108 542527187558800867142249143400 511528833434383777879228238357 673634141441024899408156483020 236382050419007450456661251596 513466568328935618872754946373 283007581185157496155866927884 736327987059532009984467687945 719643253597335712830539029047 134948025875181289031477972350 810422952516174064398442397865 963823307446310036650057197723 450846471007810258130482323543 651814507448282481299651161416 193331338988963093532013950707 599210056107753402820725757425 770627820130830264263467811259 109184308266572169711783872643 176674115874355429886456099325 554760849668685018580465979021 712242653513325337142225068448 611345734182791162551712881544 732595854791211324236720199067 223068130881919594101615600196 195470024157655375073768155225 684542115938685839943345004590 397516708425287684884808591015 694160329342406779309727112880 681751490653165240776311830816 237703346320351465753121041314 919121359545528038763103066559 458918360157534002717299722248 908163114472887362180552864876 851136894863952297553904699539 570768893897884708462158647352 954667895822625504238999871814 130305503606077200388777303842 236691382039774855079317816722 019334601743002413449614114599 189622774184251571899789862726 991823692045349394665827387047 326452311913376544765329502288 642917494265301465652190946961 318498367143146593496548942551 598106754608734234835072420758 354443610729408763797502514784 625452693844243564492823102786 870139481909113291239747571378 759361275836481268755672514645 664687891216927421920970816667 866815218494157859020195314403 051938192227325266665267171752 631860667675455617037935095634 209545561278020219992261539278 557248174791343556086699543257 868097124396686811001658139569 631092251980368583746079535838 461801721546812288044225234368 454723366850231323932835267131 813060424746045213412183330528 439872643857378779849961276093 946242792291765926304633308400 720805663199685631553969823402 295345221150567562915363786725 269505692534522008402007161122 057570084126830263899527284216 099421963268457536418016099188 488509185825999629962714861445 669666141274504051998157554380 484746399742232656389704380373 297039748847164490618331014469 124364914954239469152497202393 519063367282730611652571288295 910843421165246562114470201533 665745953213402691521450996087 743059584428758535029023454756 457484875311028110154593154722 581176344171021745297966817802 528646015832465885290410579247 246810899613547663721205750819 217691090042282696952343898533 206759709345402192407710178421 593653963880862442012145971828 605940182361421321432600427047 175280272562581095378771389884 614425690983511637123501952701 318020403016760156706426857382 069794886898263090416468516178 308807650696431730370970857405 274720440528278596560467767419 256985191864365183575524267029 361285192069673232054556228611 033214006591275155111013491625 623788484400136636665405507972 198581671480395242930155809696 820226169883709609037786301779 702048804482662881746286685432 135678730563565357761987798799 811366792895484097202283350570 858756190202341139891582348762 729796894762141691281636751612 509656370517422046063985768397 1213093125

Építésztechnikus. Építőmérnök.

(#4) Blindmouse válasza radi8tor (#1) üzenetére


Blindmouse
senior tag

a,b,c=0,1,100
while c:a,b,c,d=b,a+b,c-1,print(a)

booring.

3440x1400@120Hz #ultrawidemasterrace #gloriouspcgamingrace

(#5) Vladi


Vladi
nagyúr
LOGOUT blog

"A Fibonacci szabályát mindenki ismeri:"
Hogynepersze. :DDD

Művelt, intelligens barátomat idézném, aki minden matek óra végén csak 1 kérdést tett fel a tanárnak:
"Mi?"

:))

Nem félünk! Nem félünk! Itthon vagyunk e földön. Nem félünk! Nem félünk! Ez nem maradhat börtön!

(#6) bambano


bambano
titán
LOGOUT blog

Tehát az én bash+linux megoldásom:

#! /bin/bash

( tail -2 fibonacci.txt | head -1 | tr -d '\n'
echo -n '+'
tail -1 fibonacci.txt ) | bc | \
sed -e 's/\\$//' | tr -d '\n' | tee -a fibonacci.txt
printf "\n">>fibonacci.txt
printf "\n"

Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis

(#7) Cucuska2


Cucuska2
őstag

fibonacci(n):
return int(1/sqrt(5)*(((1+sqrt(5))/2)**n - ((1-sqrt(5))/2)**n))

Matematikus vagyok én, nem programozó!

[ Szerkesztve ]

Rock and stone, to the bone! Leave no dwarf behind!

(#8) bambano válasza Cucuska2 (#7) üzenetére


bambano
titán
LOGOUT blog

ezzel az a gond, hogy nem pontos.
F(200)-hoz 43 tizedesjegynél még nem elég pontos, legalább 44 kell, vagy több.

Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis

(#9) Cucuska2 válasza bambano (#8) üzenetére


Cucuska2
őstag

Nem vagyok Python közelében, nem tudtam. Majd írok hozzá valami gyökös kifejezéseket kezelő osztályt, és az jó lesz. Legalább nagy számokra gyors lesz!

Rock and stone, to the bone! Leave no dwarf behind!

(#10) proci985


proci985
MODERÁTOR

ez olvashatatlansagban szerintem verhetetlen, de nem en irtam. es hagyom linken, mert picit tul hosszu lenne.

Don't dream it, be it. // Lagom amount.

További hozzászólások megtekintése...
Copyright © 2000-2024 PROHARDVER Informatikai Kft.