Member baru? Bingung? Perlu bantuan? Silakan baca panduan singkat untuk ikut berdiskusi.

Selamat datang, Pengunjung. Silahkan masuk atau mendaftar. Apakah anda lupa aktivasi email?

Januari 22, 2021, 06:33:29 PM

Masuk dengan nama pengguna, kata sandi dan lama sesi

Topik Baru

Artikel Sains

Anggota
  • Total Anggota: 26693
  • Latest: oom joe
Stats
  • Total Tulisan: 139618
  • Total Topik: 10381
  • Online Today: 271
  • Online Ever: 441
  • (Desember 18, 2011, 12:48:51 AM)
Pengguna Online
Users: 0
Guests: 26
Total: 26

Ikuti ForSa

ForSa on FB ForSa on Twitter

Penulis Topik: tanya C : rounding error  (Dibaca 4407 kali)

0 Anggota dan 1 Pengunjung sedang melihat topik ini.

Offline cph

  • Asisten Dosen
  • ***
  • Tulisan: 56
  • IQ: 2
  • Gender: Pria
tanya C : rounding error
« pada: April 26, 2009, 12:50:46 AM »
Kode: [Pilih]
#include <math.h>
#include <stdio.h>

/* http://goldennumber.net/five(5).htm */
#define PHI      pow(M_E, asinh(0.5))

/* http://goldennumber.net/five(5).htm */
double fib (unsigned int n)
{
  return((pow(PHI, (double)n)) / sqrt(5.0));
}

int main (void)
{
  int x;

  for (x = 0; x < 100; ++x) {
    printf("%40.0f\tx=%d\n", fib(x), x);
  }

  return(0);
}
fungsi fib() memberikan nilai balik berupa bilangan fibonacci ke-n.
fungsi main() berisi looping yg akan mencetak bilangan fibonacci ke-0 sampai ke-99.
permasalahan muncul pada saat x=71 d mana fungsi fib() memberikan hasil yg salah (tidak memenuhi hukum f[n] = f[n-1] + f[n-2]), kesalahan jg terjadi pada saat x=76 dan setelah x=79.

sprtinya permasalahan floating point error / rounding error, ada yg bisa bantu dlm hal ini?

PS : tolong jgn beri usulan soal penggunaan "recursion" (lambat & bs bikin stack overflow alias hang), atau "tail recursion" (agak lbh cpt dr pd recursion, tp tetep aja recursion)

Offline Sky

  • Dosen
  • ****
  • Tulisan: 473
  • IQ: 36
  • Gender: Pria
Re: tanya C : rounding error
« Jawab #1 pada: April 26, 2009, 07:44:26 AM »
ya... kelemahan pake floating point emang gitu.
Selalu ada rounding error.
Kita ga bisa menghindari yang seperti itu.

Memang kalo pake recursion super lambat deh.
Tapi pake perulangan biasa cukup mantap ko.

Saya juga pernah nyoba, pas di 76 hasilnya ga sesuai.
Tapi pake perulangan bagus-bagus aja.

Offline insan sains

  • Staff
  • Profesor
  • *****
  • Tulisan: 579
  • IQ: 68
  • Gender: Pria
  • Life is Beatiful
    • Insan Sains
Re: tanya C : rounding error
« Jawab #2 pada: Mei 17, 2009, 07:52:40 AM »
belum pernah nyoba...

Ntar nyobain ah...  :D
Menuju Indonesia sebagai THE COUNTRY MASTER OF TECHNOLOGY, 2030

 

Related Topics

  Subyek / Dimulai oleh Jawaban Tulisan terakhir
31 Jawaban
22829 Dilihat
Tulisan terakhir September 09, 2009, 01:25:38 PM
oleh faiqhr
2 Jawaban
5831 Dilihat
Tulisan terakhir Juli 04, 2008, 11:26:04 AM
oleh ludicrous
8 Jawaban
6276 Dilihat
Tulisan terakhir Agustus 10, 2008, 12:01:54 PM
oleh L
4 Jawaban
9169 Dilihat
Tulisan terakhir Mei 31, 2009, 12:15:00 PM
oleh Nabih
19 Jawaban
13020 Dilihat
Tulisan terakhir Oktober 12, 2009, 08:46:26 AM
oleh HyawehHoshikawa