Rešeno: fibonači

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.

Slični postovi:

Ostavite komentar