Dinaminis programavimas: Skirtumas tarp puslapio versijų

Ištrintas turinys Pridėtas turinys
Lang-Bot-as (aptarimas | indėlis)
S robotas: brūkšneliai keičiami brūkšniais (pagal lietuvių kalbos rašybos normas)
Lang-Bot-as (aptarimas | indėlis)
S Automatinis kabučių taisymas
Eilutė 1:
'''Dinaminis programavimas''' – [[Programavimas|programavimo]] metodas, paremtas uždavinio skaidymu į mažesnes susijusias problemas, bei tų problemų sprendimų įsiminimu. Taigi laiko sanaudos pakeičiamos atminties sanaudomis. Jis naudojamas, kuomet "[[Skaldyk ir valdyk]]" nėra pakankamai efektyvus. Gali būti pritaikomas įvairaus tipo uždaviniams, tačiau šio metodo taikymo galimybę pastebėti ne visuomet lengva.
 
==Fibonačio skaičiai==
Eilutė 32:
*Iš šių dviejų atvejų, pasirenkme vertingesnį.
 
Taigi, problemą <math>J</math> daiktų atveju galime išspresti, jeigu žinome problemos <math>J-1</math> daiktų daiktų atveju sprendimą. Matematiškai tai atrodo taip: <math>F(j, \mbox{ } k) = max(F(j-1,\mbox{ } k), \mbox{ } F(j-1, \mbox{ } k-D_j) + V(j))</math>. Sprendimą galima rasti, ieškant nuo apačios, t.y. pirma apskaičiuojant <math>F</math> reikšmes su mažesnėmis <math>J</math> reikšmėmis. Taip pat, būtina atkreipti dėmesį, kad būtina turėti tam tikras "ribines"„ribines“ reikšmes. Šiuo atveju tai būtų: <math>F(0, \mbox{ } k) = 0</math>.
 
Programos fragmentai: