Geçen hafta okulda, fibonacci dizisindeki n: th sayısını hesaplamak için bir fonksiyon uyguladım. Bir 'alt görev', O (n) zaman karmaşıklığı sağlamak için birikimi kullanarak (doğru bir çeviri olmayabilir) uygulamalıydı. Bu, fonksiyonu yapmaya çalışana kadar iyi çalıştı (Int -> Tamsayı). Biraz deneyerek, zaman karmaşıklığının gerçekten büyük sayılara O (n^2) yakın olduğunu fark ettim. Bana bunun, bunun nasıl çalıştığına dair biraz merak uyandırdığı Tamsayı uygulaması nedeniyle olması gerektiği anlaşılıyor. Birkaç Google araması yaptım ve yararlı görünen bir şey bulamadım. Size bir açıklama veya iyice açıklayan bir bağlantı elde etmeyi umuyorlar.Tam tersi zaman karmaşıklığı Haskell
Kodum:
ackfib 0 = 0
ackfib 1 = 1
ackfib n = loop n 1 0 1
where
loop n n1 n2 i
| i < n = loop n (n1+n2) n1 (i+1)
| i == n = n1
| i > n = error "n must be greater than or equal to 0"
kendisini herkesin müteşekkirim
Genellikle olduğu gibi, kodunuzu gönderin. – Juliet
Bu benim kodumla ilgili değil, Tamsayı türünün uygulanmasıyla ilgili. – vichle
Resmin tamamını görmeden herhangi bir açıklama yapamayız. Bu durumda, senin kodun. – Juan