deret fibonacci di python

yo yo yo…
setelah kemarin memposting tentang deret fibonacci dan beberapa postingan tentang dasar pemrograman python, eh.. iseng deh kepingin bikin program sederhana untuk menampilkan deret fibonacci, kekeekeke..
alhasil jadi deh.. berikut source codenya, mungkin bisa dikembangkan lebih lanjut:

#!/usr/bin/env python
import os, sys
if sys.platform == 'linux-i386' or sys.platform == 'linux2':
  hapus = "clear"
if sys.platform == 'win32':
  hapus = "cls"
print "deret fibonacci in python"
jumlah = raw_input("masukkan jumlah anggota deret yang diinginkan: ")
a=int(jumlah)    
if a == 0:
   print "anda salah memasukkan angka!!"
elif a == 1:
   print "-----------deret fibonaccinya adalah-------------------"
   print "[0]"
   print "-------------------------------------------------------"
elif a == 2:
   print "-----------deret fibonaccinya adalah-------------------"
   print "[0,1]"
   print "-------------------------------------------------------"
else:
   fibonacci = [0,1]
   #x = int(a)
   q = (a - 1)
for i in range(1,q):
   x = int(fibonacci[-1])
   y = int(fibonacci[-2])
   z = x+y
   fibonacci.append(z)
   os.system(hapus)
   print "-----------deret fibonaccinya adalah-------------------"
   print fibonacci
   print "-------------------------------------------------------"


semoga bermanfaat

-AKF-

About AKF
orang biasa

5 Responses to deret fibonacci di python

  1. Hendra Jaya says:

    Hai.

    Maaf, saya tidak bisa bahasa Python. Jadi maaf kalo ada salah tafsir source code bung akfcode.

    Dari yang saya baca, sepertinya bung akfcode menggunakan invarian U(n) = U(n-1) + U(n-2). Walaupun invarian ini benar, tetapi dikategorikan sebagai pendekatan “naif”. Jangan tersinggung ya. Mungkin ada baiknya melihat dari sudut pandang lain.

    Metode “naif” ini sangat lambat karena membutuhkan iterasi dari suku ke-1 sampai suku ke-n. Dengan demikian kompleksitasnya O(n). Misalkan user meminta U(30), metode ini secara diam-diam mencari semua suku U(1), U(2), U(3)… U(29) yang sebenarnya “bukan” jawaban yang diinginkan.

    Sebagai referensi :
    http://en.wikipedia.org/wiki/Fibonacci_number#Another_identity

    Dengan menggunakan invarian itu, program bisa dibuat berjalan dengan kompleksitas yang lebih rendah. Karena dari beberapa U(n), program bisa langsung “lompat” ke sekitar U(2n). Artinya kompleksitasnya dekat dengan binary search, yaitu O(log n). Tepatnya berapa saya tidak tahu.

    Selamat mencoba

    • akfcode says:

      mas Hendra,:terima kasih atas masukkannya, semoga bermanfaat, jadi memang benar untuk metode dari mas Hendra lebih cepat, dan dari source code saya memang dilakukan iterasi untuk mencari suku ke-n terlebih dahulu, tapi maaf sebelumnya, memang posting ini ditulis dengan tujuan sebagai contoh kasus untuk posting sebelumnya, dimana saya memposting tentang list atau bisa disebut deret, dan manipulasi anggota list tersebut, sedangkan untuk metode yang menggunakan fungsi – fungsi matematika, harus mengimport module “math” dulu, lha, kan belum sempat diposting untuk import module, jadi sebenarnya maksud disini adalah agar pembaca yang budiman bisa tahu contoh kasus dari posting yang sudah – sudah, jadi runut juga saya menulisnya, btw terima – kasih telah berkunjung dan atas masukkan yang membangun, salam kenal, Jaya Selalu

      salam
      -AKF-

    • akfcode says:

      oh iya tambahan lagi, bung Hendra, jadi begini, maksud saya sebuah tulisan itu ditulis untuk dimengerti, dengan mudah dan gampang dicerna, lha maksud saya untuk deret fibonacci ini semudah – mudahnya untuk dimengerti adalah dengan model pembentukan dasarnya, sapa tahu ada anak TK yang masih mengerti tentang tambah dan kurang, sedang membaca blog saya, jadi satu keuntungan dong, dia masih TK udah bisa membentuk deret fibonacci dengan jumlah elemen mencapai ribuan, hanya dengan tambah – tambahan saja lho

  2. Hendra Jaya says:

    Maaf, ralat.

    Kalimat “bukan jawaban yang diinginkan” pada paragraf 3 maksudnya adalah “tidak terlalu perlu” atau “tidak harus”.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.