Akademisyenler öncülüğünde matematik/fizik/bilgisayar bilimleri soru cevap platformu
2 beğenilme 0 beğenilmeme
444 kez görüntülendi

Yazdığım kodu aşağıda gönderiyorum. Aynı şekilde dereceden radyana çevirerek de denedim yine de "6.123233995736766e-17" sonucunu alıyorum.

from math import *

print(cos(pi/2))

print(cos(radians(90)))

 

Veri Bilimi kategorisinde (19 puan) tarafından  | 444 kez görüntülendi

Bir de şunu deneyin:

a=(0.1+0.2)+0.3
b=0.1+(0.2+0.3)

print(a==b)

 

Bunu ayrı bir soru olarak açsan harika olur.

1 cevap

1 beğenilme 0 beğenilmeme
En İyi Cevap
$\pi$ irrasyonel bir sayı olduğu için, bilgisayarlar kendisini ikilik tabanda tam olarak temsil edemiyorlar, en yakın temsilin de kosinüs karşılığı $0$ olmadığı için böyle bir sorunla karşı karşıya kalınıyor. Benzer bir nedenle, ikilik tabanda sonlu sayıda basamakla yazılamayan rasyonel sayılar için de aynı temsil sorunu olacak. Bu duruma 'floating error point' denir. Bu nedenle yapılan hesaplamalarda doğru yanlışlık kararı verilmesi gerektiğinde çoğunlukla eşitlik testinden geçirmek yerine, bulunan değerin marjinal hatanın ufak olduğu bir aralıkta olup olmadığını kontrol etmek çalışan programlar yazmaya yardımcı olur.
(3.7k puan) tarafından 
tarafından seçilmiş
20,208 soru
21,732 cevap
73,299 yorum
1,904,324 kullanıcı