C++ Mini Seri 3: Kayan Nokta Aritmetiğinde Birleşme Özelliği Hakkında
Nov 3 · 1 min read
Aritmetikte Birleşme Özelliği: İşleme sokulan elemanların sırası değiştirilince sonucu değişmemesi özelliğidir. Günlük hayatta kullandığımız reel sayılar için bu özellik geçerli iken çok sayıda eleman içeren floating-point sayı dizgeleri için toplama ve çarpma işlemleri birleşme özelliğine sahip değildir. Bunun sebebi elemanların toplanmasından/çarpılmasından çıkan sonuçlardaki yuvarlama hatalarının birikerek büyük oynamalara sebebiyet vermesidir.
Bu duruma bir örnek teşkil etmesi açısında rastgele 1,000,000 elemanlı bir double dizgesi oluşturup std::accumulate/std::reduce ile toplayalım. Sonrasında std::sort ile dizgeyi sıralayıp tekrar toplayalım:

Gördüğünüz örnekte 7. basamaktan sonra sonuç oynamaya başlıyor.
