Fibonacci sequence

သခၤ်ာမွာ fibonacci sequence ကို မွတ္မိေသးလား မသိဘူး။ fibonacci sequence ဆိုတာကေတာ့ 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 134 စသည္ျဖင့္ေပါ့။ 0 ကေန စတယ္။ ၿပီးရင္ 1 လာတယ္။ 0 ႏွင့္ 1 ေပါင္းေတာ့ 1 ရတယ္။ ဒါေၾကာင့္ တတိယက 1 ျဖစ္တယ္။ ေနာက္ထပ္တစ္ခု အတြက္ 1+1 ေပါင္းတယ္။ 2 ရတယ္။ ၿပီးေတာ့ 1+2 ေပါင္းတယ္။ 3 ရတယ္။ သေဘာကေတာ့ ေရွ႕ ၂ လံုး ေပါင္းၿပီးေတာ့ ေနာက္ထပ္ တစ္လံုးကို ေဖာ္ျပေပးတာပဲ။

fibonacci sequence အလံုး ၁၀ ေျမာက္က value ကို လိုခ်င္တယ္ လို႔ ေျပာလာရင္ ကၽြန္ေတာ္တို႔ program က ျပန္ထုတ္ေပးႏိုင္ေအာင္ ေရးဖို႔ လိုပါတယ္။ Looping နဲ႔ ေရးတာကိုေတာ့ ေလ့က်င့္ခန္း အေနနဲ႔ ကိုယ္တိုင္ ေရးၾကည့္ပါ။

fib(0) = 0
fib(1) = 1
fib(2) = 1
fib(3) = 2
fib(4) = 3
fib(5) = 5

ဒါဆိုရင္ ကၽြန္ေတာ္တို႔ အေနနဲ႔ ေအာက္က ပံုစံ အတိုင္း ေရးလို႔ ရတယ္။

fib(6) = fib(5) + fib(4)

တနည္းအားျဖင့္

fib(n) = fib(n-1) + fib(n-2)

လို႔ ေတာင္ ဆိုႏိုင္တယ္။ သို႔ေပမယ့္ အၿမဲ မမွန္ဘူး။ ဘယ္အခ်ိန္မွ အဲဒါကို သံုးလို႔ ရလည္း ဆိုေတာ့ fib(2) ကမွ စၿပီး အသံုးျပဳႏိုင္မယ္။ တနည္းအားျဖင့္

if n < 2 
    return n

ဆိုၿပီး ေျပာလို႔ ရတယ္။

အခုဆိုရင္ ကၽြန္ေတာ္တို႔ program မေရးခင္မွာ ဘယ္လို ေရးရမလဲ ဆိုတာကို သေဘာေပါက္ၿပီ။ စဥ္းစားလို႔ ရၿပီ။ code ခ်ေရးၾကည့္ဖို႔ပဲ လိုေတာ့တယ္။

def fib(n): if n < 2: return n else: return fib(n-1) + fib(n-2) print(fib(10))

Recursive သေဘာတရားႏွင့္ စဥ္းစားပံုက looping နဲ႔ ကြာတယ္ဆိုတာကို fibonacci sequence ကို looping နဲ႔ ေလ့က်င့္ခန္း လုပ္ၾကည့္ရင္ သိႏိုင္ပါတယ္။

results matching ""

    No results matching ""