Fibonačijev niz, niz koji vekovima pleni umove naučnika i matematičara, takođe je čvrsto povezan sa estetikom, primenjivom u oblicima čiste lepote – modi i umetnosti. To je niz brojeva gdje se sljedeći broj nalazi dodavanjem dva broja ispred njega, počevši od 0 i 1. Ovaj niz se pojavljuje u prirodnim oblicima kao što su spirala školjki, krivulja valova, razvijanje listova i mnogi drugi prirodni obrasci.
U programiranju, Fibonačijevi nizovi se bave uobičajenim konceptima kao što su iteracije, rekurzija i optimizacija na postepeno složen način, služeći kao odlična testna ploča za fundamentalne i napredne tehnike kodiranja. Kao u modi, gdje se različiti trendovi pojavljuju i odlaze, ali prevladavaju neki obrasci, programska rješenja nose slične osobine. A Haskell, čisto funkcionalni programski jezik, pruža neke jedinstvene i efikasne načine za rukovanje Fibonačijevim nizovima.
Računanje Fibonaccija na Haskell način
fib 0 = 0 fib 1 = 1 fib n = fib (n-1) + fib (n-2)
Ovo je najviše jednostavnu implementaciju Fibonačijevog niza u Haskell-u, što direktno odgovara njegovoj matematičkoj definiciji. Koristi vrlo temeljni koncept u funkcionalnom programiranju – rekurziju. Međutim, ovaj kod je vrlo neefikasan za velike brojeve zbog višestrukog ponovnog izračunavanja istih vrijednosti.
Poboljšanje efikasnosti uz memorisanje
import Data.Map (Map, lookup, insert, fromList) memoize :: (Integer -> Integer) -> (Integer -> Integer) memoize f = lookupAndInsert where lookupAndInsert :: Integer -> Integer lookupAndInsert x = case lookup x table of Just v -> v Nothing -> f x table :: Map Integer Integer table = fromList $ map (x -> (x, f x)) [0 .. upperLimit] fib :: Integer -> Integer fib 0 = 0 fib 1 = 1 fib n = fib (n - 1) + fib (n - 2) main :: IO () main = print $ memoize fib 30
Evo optimiziranog rješenja našeg problema korištenjem memoizacija tehnika, koja se često koristi u funkcionalnim jezicima kao što je Haskell. Ovaj kod pohranjuje već izračunate vrijednosti u tablicu i provjerava ovu tablicu prije pokretanja rekurzivne operacije – ako je vrijednost izračunata, jednostavno preuzima vrijednost iz tablice umjesto da ponovo pokrene izračunavanje.
Sada idemo naprijed i vidimo kako možemo povući paralele između Fibonačijevog niza i svijeta mode.
Zlatni omjer i moda
Fibonačijevi brojevi, preko zlatnog omjera koji konstruiraju, daju privlačnu proporciju koja se naziva zlatnim omjerom. Ovo Zlatni omjer (1.618:1) je estetski ugodan i dolazi u modi, arhitektonskom dizajnu i prirodi.
Na premilenijumski način, uski struk se širio u pune bokove koji podsjećaju na Fibonačijevu spiralu. The Haljina A kroja, prateći sličan obrazac, izdužuje tijelo i sužava struk, što svjedoči o Fibonaccijevom prisustvu na pisti. Do danas, modni dizajneri koriste ovaj omjer svjesno ili podsvjesno u svojim komadima kako bi stvorili izgled koji je vizualno privlačan i harmoničan.
Modni kod boja
Boje igraju ogromnu ulogu u modi, a kombinacije često prate Fibonačijevu seriju. Jednostavna odjeća mogla bi slijediti a Kombinacija 1:1:2, gdje sako i pantalone dijele boju, a košulja i dodaci se ogledaju jedni u drugima. Ili koristite kombinaciju 2:3:5 za usklađenu trodijelnu odjeću. Ovaj princip se može uočiti u mnogim aspektima modnog stila.
Uvažavanje Fibonačijevog niza nije samo razumijevanje matematičkih ili kodnih koncepata. Radi se i o sagledavanju prekrasnih uzoraka koji su oblikovani ovim nizom, u umjetnosti, modi i svijetu oko nas.