Nesne

11.3: Sayılarla İlgili İşlemler - Matematik


  • 11.3.1: Bir Dikdörtgenin Alanı
    Dikdörtgenler, istatistiklerin tekdüze dağılımı içeren bölümünde temel öneme sahiptir. Her dikdörtgenin bir tabanı, bir yüksekliği ve bir alanı vardır.
  • 11.3.2: Faktöriyeller ve Kombinasyon Gösterimi
    Olasılıkları hesaplamamız gerektiğinde, genellikle birden çok azalan sayıya ihtiyacımız olur. Örneğin, 52 kartlık bir deste varsa ve beşini değiştirmeden seçmek istiyorsak, ilk seçim için 52 seçenek, bir kart seçildiğinden ikinci seçim için 51 seçenek, kart için 50 seçenek vardır. üçüncü, dördüncü için 49 ve beşinci için 48 seçenek.
  • 11.3.3: İşlem Sırası
    Bir hesaplamada bize birden fazla aritmetik işlem verildiğinde, ifadenin nasıl yazıldığına bağlı olarak yapmamız gereken yerleşik bir düzen vardır. Hesap makineleri, işlem sırasını kesinlikle takip edecek şekilde programlandığından, hesap makinesi kullanırken bu kuralları anlamak özellikle önemlidir. Bu, istatistikteki her konuda ortaya çıkar, bu nedenle işlem sırasını bilmek, tüm başarılı istatistik öğrencilerinin sahip olması gereken temel bir beceridir.
  • 11.3.4: İfadelerde ve Formüllerde İşlem Sırası
    İşlem sırası ile zaten karşılaştık: Parantezler, Üsler, Çarpma ve Bölme, Toplama ve Çıkarma. Bu bölümlerde, istatistikleri değerlendirmek için işlem sırasının uygun şekilde kullanılması gereken bazı ek örnekler vereceğiz.
  • 11.3.5: İmzalı Sayı Aritmetiğini Gerçekleştirin
    Negatif sayılar gerçek dünyada o kadar yaygın görünmese de, karşılaştırma yaparken sıklıkla karşımıza çıkarlar. Örneğin, ortak bir soru, çıkarmayı içeren bir sayının diğerinden ne kadar büyük olduğudur. İstatistikte, verileri toplayıp hesaplamaları yapana kadar araçları bilmiyoruz. Bu genellikle daha büyük bir sayının daha küçük bir sayıdan çıkarılmasıyla sonuçlanır ve bu da negatif bir sayı verir. Hem pozitif hem de negatif sayılarda aritmetik yapabilmemiz gerekir.
  • 11.3.6: Yetkiler ve Kökler
    Bir sayıyı bir güce yükseltmek veya bir sayının karekökünü almak için teknolojiyi ilk kullanmaya çalıştığımızda bu zor olabilir. Bu bölümde, bir sayının güçlerini ve köklerini nasıl başarılı bir şekilde alacağımıza dair bazı ipuçlarının üzerinden geçeceğiz. Ayrıca parantez olmadığı sürece üslerin her zaman diğer tüm işlemlerden önce geldiğini hatırlayarak işlem sırasına göre uygulamamıza devam edeceğiz. Bir sayının kuvvetini almanın olasılıkta ortaya çıktığını göreceğiz.
  • 11.3.7: Toplama Notasyonunu Kullanma
    Birbirine çok sayıda eklenmiş bir ifademiz olduğunda, formüllerin yazılmasını kolaylaştıran bir notasyon vardır.

JavaScript Köşesi: Matematik ve Kayan Nokta Sayılarının Tuzakları

Uygulamanızın sahip olduğu matematiksel gereksinimlere bağlı olarak, işlemlerinizin kayan nokta (çift) kesinlik açısından beklediğiniz şeyi döndürmesini sağlamak için özel dikkat göstermeniz gerekebilir. Genel olarak JavaScript dünyası için bu yeni bir sorun değil.

Aslında, genel olarak programlama dünyası için bu yeni bir konu değil. JavaScript, &ldquoMatematiği doğru şekilde gerçekleştiremediği için sık sık ezilir.&rdquo Aynı kriterler C#'a da uygulansaydı, aynı sonuca varırdınız. Bu sütunun ilerleyen kısımlarında, kayan noktalı sayılar söz konusu olduğunda C# ve JavaScript'in nasıl aynı şekilde davrandığını göstereceğim. Bu baskının sütununda, size JavaScript'in bazı matematiksel özelliklerini ve bunların etrafından nasıl çalışılacağını anlatacağım.

JavaScript'in tek yerel sayısal türü, çift duyarlıklı (kayan nokta) 64 bit türüdür.


İçindekiler

Kayan noktalı sayılar Düzenle

Bir sayı temsili, bir sayıyı, genellikle bir rakam dizisi olarak kodlamanın bir yolunu belirtir.

Rakam dizilerinin sayıları temsil edebileceği çeşitli mekanizmalar vardır. Yaygın matematiksel gösterimde, rakam dizisi herhangi bir uzunlukta olabilir ve sayı tabanı noktasının konumu, oraya açık bir "nokta" karakteri (nokta veya virgül) yerleştirilerek belirtilir. Taban noktası belirtilmemişse, dize örtük olarak bir tamsayıyı temsil eder ve belirtilmeyen taban noktası, dizenin sağ ucunda, en az anlamlı basamağın yanında olur. Sabit noktalı sistemlerde, sayı tabanı noktası için dizideki bir konum belirtilir. Bu nedenle, sabit noktalı bir şema, ondalık noktası ortada olacak şekilde 8 ondalık basamaktan oluşan bir dize kullanmak olabilir, burada "00012345", 0001.2345'i temsil eder.

Bilimsel gösterimde, verilen sayı belirli bir aralıkta olacak şekilde 10'un gücüyle ölçeklenir - tipik olarak 1 ile 10 arasındadır ve taban noktası ilk rakamdan hemen sonra görünür. Ölçekleme faktörü, on'un gücü olarak, sayının sonunda ayrıca gösterilir. Örneğin, Jüpiter'in uydusu Io'nun yörünge periyodu 152.853.5047 saniyedir; bu, standart form bilimsel gösterimde 1.528535047 × 105 saniye olarak temsil edilecek bir değerdir.

Kayan nokta gösterimi, kavram olarak bilimsel gösterime benzer. Mantıksal olarak, bir kayan noktalı sayı şunlardan oluşur:

  • Belirli bir tabanda (veya tabanda) belirli bir uzunlukta işaretli (pozitif veya negatif anlamına gelen) bir rakam dizisi. Bu rakam dizisi olarak adlandırılır önemli, mantisveya katsayı. [nb 1] Anlamın uzunluğu, hassas hangi sayılar temsil edilebilir. Taban noktası konumunun her zaman anlamlının içinde bir yerde olduğu varsayılır - genellikle en anlamlı basamaktan hemen sonra veya hemen önce veya en sağdaki (en az anlamlı) basamağın sağında. Bu makale genellikle, sayı tabanı noktasının en önemli (en soldaki) basamaktan hemen sonra ayarlandığı kuralına uyar.
  • İşaretli bir tamsayı üssü (aynı zamanda karakteristikveya ölçek), [nb 2] sayının büyüklüğünü değiştirir.

Kayan noktalı sayının değerini türetmek için, önemli ile çarpılır baz gücüne yükseltilmiş üs, taban noktasının ima edilen konumundan üs değerine eşit sayıda basamak kaymasına eşdeğerdir - üs pozitifse sağa, üs negatifse sola.

Örnek olarak taban-10 (tanıdık ondalık gösterim) kullanıldığında, on ondalık basamağa sahip 152.853.5047 sayısı, üs olarak 5 ile birlikte anlamlı ve 1.528.535.047 olarak temsil edilir. Gerçek değeri belirlemek için, anlamlının ilk basamağından sonra bir ondalık nokta konur ve sonuç 105 ile çarpılarak 1.528535047 × 105 veya 152.853.5047 elde edilir. Böyle bir sayının saklanmasında, tabanın (10) saklanmasına gerek yoktur, çünkü desteklenen sayıların tüm aralığı için aynı olacaktır ve bu nedenle çıkarsanabilir.

Sembolik olarak, bu son değer:

s'nin anlamlı olduğu (herhangi bir zımni ondalık nokta dikkate alınmadan), p kesinliktir (anlamdaki basamak sayısı), b tabandır (örneğimizde, bu sayıdır on) ve e üssüdür.

Tarihsel olarak, kayan noktalı sayıları temsil etmek için birkaç sayı tabanı kullanılmıştır; en yaygın olanı iki taban (ikili), ardından onluk (ondalık kayan nokta) ve on altılık (onaltılık kayan nokta) gibi daha az yaygın çeşitler gelir. [2] [3] [nb 3] ), taban sekiz (sekizlik kayan nokta [4] [3] [5] [2] [nb 4] ), taban dört (dörtlü kayan nokta [6] [3] [nb 5] ), taban üç (dengeli üçlü kayan nokta [4] ) ve hatta taban 256 [3] [nb 6] ve taban 65.536 . [7] [nb 7]

Kayan noktalı sayı rasyonel bir sayıdır, çünkü bir tam sayının diğerine bölünmesiyle gösterilebilir, örneğin 1.45 × 103, (145/100)×1000 veya 145.000/100'dür. Taban, temsil edilebilecek kesirleri belirler, örneğin, 1/5 bir ikili taban kullanılarak tam olarak bir kayan noktalı sayı olarak temsil edilemez, ancak 1/5 tam olarak bir ondalık taban kullanılarak temsil edilebilir ( 0.2 veya 2 × 10 − 1) Bununla birlikte, 1/3 tam olarak ikili (0,010101. ) veya ondalık (0.333. ) ile temsil edilemez, ancak taban 3'te önemsizdir (0.1 veya 1×3 -1 ) . Sonsuz genişlemelerin meydana geldiği durumlar, tabana ve onun asal faktörlerine bağlıdır.

Anlamın (işareti dahil) ve üssün bir bilgisayarda saklanma şekli uygulamaya bağlıdır. Ortak IEEE biçimleri daha sonra ve başka yerlerde ayrıntılı olarak açıklanmıştır, ancak örnek olarak, ikili tek duyarlıklı (32 bit) kayan nokta gösteriminde, p = 24 ve bu nedenle önemli olan bir 24 bitlik dizi. Örneğin, π sayısının ilk 33 biti:

Bu ikili genişlemede, 0 (en soldaki bit veya en anlamlı bit) ile 32 (en sağdaki bit) arasındaki konumları gösterelim. 24 bitlik anlamlı, yukarıda altı çizili bit 0 olarak gösterilen 23 konumunda duracaktır. 24 konumundaki bir sonraki bit, yuvarlak uç veya yuvarlama biti. 33 bitlik yaklaşımı en yakın 24 bitlik sayıya yuvarlamak için kullanılır (burada durum böyle olmayan yarı değerler için özel kurallar vardır). Bu örnekte 1 olan bu bit, en soldaki 24 bit tarafından oluşturulan tam sayıya eklenir ve şu sonucu verir:

Bu, IEEE 754 kodlaması kullanılarak bellekte depolandığında, bu, s 'nin anlamı olur. Anlamlının en soldaki bitin sağında ikili bir noktaya sahip olduğu varsayılır. Böylece, π'nin ikili gösterimi soldan sağa şu şekilde hesaplanır:

burada p, kesinliktir (bu örnekte 24), n, anlam bitinin soldan konumudur (burada 0'dan başlar ve 23'te biter) ve e, üstür ( bu örnekte 1).

Sıfır olmayan bir sayının anlamlısının en anlamlı basamağının sıfırdan farklı olması gerekebilir (karşılık gelen üs minimumdan daha küçük olduğu durumlar hariç). Bu süreç denir normalleştirme. İkili biçimler için (yalnızca 0 ve 1 rakamlarını kullanır), bu sıfır olmayan rakam mutlaka 1'dir. Bu nedenle, formatın bir bit daha hassas olmasına izin vermek için bellekte temsil edilmesine gerek yoktur. Bu kurala çeşitli şekillerde denir. önde gelen bit kuralı, örtük bit kuralı, gizli bit kuralı, [4] veya varsayılan bit kuralı.

Kayan noktalı sayılara alternatifler Düzenle

Kayan nokta gösterimi, bilgisayarlarda gerçek sayılara bir yaklaşımı temsil etmenin açık ara en yaygın yoludur. Ancak alternatifler var:

    gösterim, ikili veya ondalık noktanın konumu hakkında belirli bir kuralın bir yazılım uygulaması tarafından kontrol edilen tamsayı donanım işlemlerini kullanır, örneğin, sağdan 6 bit veya basamak. Bu gösterimleri manipüle edecek donanım, kayan noktadan daha az maliyetlidir ve normal tamsayı işlemlerini gerçekleştirmek için de kullanılabilir. İkili sabit nokta genellikle yalnızca tamsayı aritmetiği yapabilen gömülü işlemcilerdeki özel amaçlı uygulamalarda kullanılır, ancak ticari uygulamalarda ondalık sabit nokta yaygındır. (LNS'ler), mutlak değerinin logaritması ve bir işaret biti ile gerçek bir sayıyı temsil eder. Değer dağılımı kayan noktaya benzer, ancak değerden temsile eğri (yani, logaritma fonksiyonunun grafiği) düzgündür (0 hariç). Kayan nokta aritmetiğinin tersine, logaritmik bir sayı sisteminde çarpma, bölme ve üs almanın uygulanması basittir, ancak toplama ve çıkarma karmaşıktır. Charles Clenshaw, Frank Olver ve Peter Turner'ın (simetrik) seviye indeks aritmetiği (LI ve SLI), genelleştirilmiş bir logaritma temsiline dayanan bir şemadır. pratikte kullanılmadığı görülmektedir.
  • Daha fazla kesinlik istendiğinde, gerçek ihtiyaca ve hesaplamanın nasıl ilerlediğine bağlı olarak boyutlandırılan değişken uzunluklu anlamlarla (ve bazen üslerle) kayan nokta aritmetiği (tipik olarak yazılımda) uygulanabilir. Buna keyfi kesinlikte kayan nokta aritmetiği denir.
  • Kayan nokta genişletmeleri, kayan nokta donanımından yararlanarak daha fazla kesinlik elde etmenin başka bir yoludur: bir sayı, birkaç kayan noktalı sayının değerlendirilmemiş bir toplamı olarak temsil edilir. Bir örnek, bazen C tipi uzun çift için kullanılan double-double aritmetiğidir.
  • Bazı basit rasyonel sayılar (Örneğin., 1/3 ve 1/10), kesinlik ne olursa olsun, ikili kayan noktada tam olarak temsil edilemez. Farklı bir sayı tabanı kullanmak, birinin bunlardan bazılarını temsil etmesine izin verir (Örneğin., ondalık kayan nokta cinsinden 1/10), ancak olasılıklar sınırlı kalır. Rasyonel aritmetik gerçekleştiren yazılım paketleri, sayıları tam bir pay ve payda ile kesirler olarak temsil eder ve bu nedenle herhangi bir rasyonel sayıyı tam olarak temsil edebilir. Bu tür paketlerin genellikle bireysel tamsayılar için "bignum" aritmetiği kullanması gerekir. bir kişinin sayıları aralıklar olarak temsil etmesine ve sonuçlar üzerinde garantili sınırlar elde etmesine izin verir. Genellikle diğer aritmetiklere, özellikle de kayan noktaya dayanır. Mathematica, Maxima ve Maple gibi π veya 3 >> gibi irrasyonel sayıları, önemli. Böyle bir program, " sin ⁡ ( 3 π ) " gibi ifadeleri tam olarak değerlendirebilir, çünkü her ara hesaplama için yaklaşık değerler kullanmak yerine, temeldeki matematiği doğrudan işlemek üzere programlanmıştır.

Geçmiş Düzenleme

1914'te Leonardo Torres y Quevedo, Charles Babbage'ın Analitik Motorunun elektro-mekanik bir versiyonunu tasarladı ve kayan nokta aritmetiğini içeriyordu. [8] 1938'de Berlinli Konrad Zuse, ilk ikili, programlanabilir mekanik bilgisayar olan Z1'i tamamladı [9], 7-bit işaretli bir üs, 17-bit anlamlı ( bir örtük bit dahil) ve bir işaret biti. [10] 1941'de tamamlanan daha güvenilir röle tabanlı Z3, özellikle hem pozitif hem de negatif sonsuzluklar için temsillere sahiptir, 1 / ∞ = 0 /_< gibi sonsuz ile tanımlanmış işlemleri uygular. infty >=0> ve 0 × ∞ gibi tanımsız işlemlerde durur.

Zuse ayrıca ± ∞ ve NaN temsillerini içeren dikkatle yuvarlanmış kayan nokta aritmetiğini önerdi, ancak tamamlamadı ve IEEE Standardının kırk yıl önceki özelliklerini öngördü. [11] Buna karşılık von Neumann, sabit noktalı aritmetiğinin tercih edildiğini savunarak 1951 IAS makinesi için kayan noktalı sayılara karşı tavsiyede bulundu. [11]

İlk ticari kayan nokta donanımına sahip bilgisayar, Zuse'nin 1942–1945'te tasarlanan Z4 bilgisayarıydı. 1946'da Bell Laboratories, ondalık kayan noktalı sayıları uygulayan Mark V'i tanıttı. [12]

Pilot ACE, ikili kayan nokta aritmetiğine sahiptir ve 1950'de İngiltere'deki Ulusal Fizik Laboratuvarı'nda faaliyete geçmiştir. Otuz üç daha sonra ticari olarak English Electric DEUCE olarak satıldı. Aritmetik aslında yazılımda uygulanmaktadır, ancak bir megahertz saat hızıyla, bu makinedeki kayan nokta ve sabit nokta işlemlerinin hızı başlangıçta birçok rakip bilgisayardan daha hızlıydı.

Kitlesel üretilen IBM 704, 1954'te önyargılı bir üs kullanımını tanıttı. Bundan sonraki uzun yıllar boyunca, kayan nokta donanımı tipik olarak isteğe bağlı bir özellikti ve buna sahip olan bilgisayarların "bilimsel bilgisayarlar" olduğu veya "bilimsel hesaplama" (SC) yeteneğine sahip olduğu söylendi (ayrıca bkz. Bilimsel Hesaplama Uzantıları (XSC) )). 1989'da Intel i486'nın piyasaya sürülmesine kadar değildi. genel amaçlı kişisel bilgisayarlar, donanımda standart bir özellik olarak kayan nokta özelliğine sahipti.

1962'de tanıtılan UNIVAC 1100/2200 serisi, iki kayan nokta gösterimini destekledi:

  • Tek hassasiyet: 36 bit, 1 bitlik işaret, 8 bitlik üs ve 27 bitlik anlamlı olarak düzenlenmiştir.
  • Çift hassasiyet: 1 bitlik işaret, 11 bitlik üs ve 60 bitlik anlamlı olarak düzenlenmiş 72 bit.

Yine 1962'de tanıtılan IBM 7094, tek duyarlıklı ve çift duyarlıklı gösterimleri destekler, ancak UNIVAC'ın temsilleriyle hiçbir ilgisi yoktur. Gerçekten de, 1964'te IBM, System/360 ana bilgisayarlarında onaltılık kayan nokta temsillerini kullanıma sundu, bu aynı temsiller modern z/Architecture sistemlerinde hala kullanılabilir durumda. Ancak, 1998'de IBM, 2005'te ana bilgisayarlarına IEEE uyumlu ikili kayan nokta aritmetiğini dahil etti, IBM ayrıca IEEE uyumlu ondalık kayan nokta aritmetiğini de ekledi.

Başlangıçta, bilgisayarlar kayan noktalı sayılar için birçok farklı gösterim kullandı. Anabilgisayar düzeyinde standardizasyon eksikliği, 1970'lerin başlarında, daha yüksek düzeyde kaynak kodu yazan ve koruyanlar için süregelen bir sorundu. . Birden fazla bilgi işlem sistemi arasında kayan nokta uyumluluğu, 1980'lerin başlarında umutsuzca standartlaştırma ihtiyacı içindeydi ve bu, 32 bit (veya 64 bit) kelime yaygınlaştıktan sonra IEEE 754 standardının oluşturulmasına yol açtı. Bu standart, önemli ölçüde, aynı zamanda 68000'i tasarlayan i8087 sayısal yardımcı işlemci Motorola'yı tasarlayan Intel'in bir önerisine dayanıyordu.

1989 yılında matematikçi ve bilgisayar bilimcisi William Kahan, öğrencisi (Jerome Coonen) ve misafir profesör (Harold Stone) tarafından yardım edilen bu önerinin arkasındaki ana mimar olduğu için Turing Ödülü ile onurlandırıldı. [13]

x86 yenilikleri arasında şunlar yer alır:

  • Tüm uyumlu bilgisayarların bit modellerini aynı şekilde yorumlaması için bit dizisi düzeyinde kesin olarak belirlenmiş bir kayan nokta gösterimi. Bu, kayan noktalı sayıları bir bilgisayardan diğerine doğru ve verimli bir şekilde aktarmayı mümkün kılar (endianlığı hesaba kattıktan sonra).
  • Aritmetik işlemler için kesin olarak belirlenmiş bir davranış: Daha sonra belirli kurallara göre yuvarlanacak bir değer elde etmek için sonsuz kesinlikte aritmetik kullanılmış gibi bir sonucun üretilmesi gerekir.Bu, uyumlu bir bilgisayar programının belirli bir girdi verildiğinde her zaman aynı sonucu üreteceği ve böylece kayan noktalı hesaplamanın şimdiye kadar deterministik olmayan davranışı için geliştirdiği neredeyse mistik itibarı azaltacağı anlamına gelir.
  • İstisnai koşulların (taşma, sıfıra bölme, vb.) bir hesaplama boyunca iyi huylu bir şekilde yayılma ve ardından yazılım tarafından kontrollü bir şekilde ele alınma yeteneği.

Bir kayan noktalı sayı, aralığı yalnızca temsillerindeki bit veya basamak sayısına bağlı olan iki sabit noktalı bileşenden oluşur. Bileşenler doğrusal olarak aralıklarına bağlıyken, kayan nokta aralığı doğrusal olarak anlamlı aralığa ve üstel olarak sayıya olağanüstü daha geniş bir aralık ekleyen üs bileşeninin aralığına bağlıdır.

Tipik bir bilgisayar sisteminde, bir çift ​​hassasiyet (64 bit) ikili kayan noktalı sayı, 53 bitlik (1 ima edilen bit dahil), 11 bitlik bir üslü ve 1 işaret bitli bir katsayıya sahiptir. 2 10 = 1024 olduğundan, bu formattaki pozitif normal kayan noktalı sayıların tam aralığı 2 −1022 ≈ 2 × 10 −308 ila yaklaşık 2 1024 ≈ 2 × 10 308 arasındadır.

Bir sistemdeki normalleştirilmiş kayan noktalı sayıların sayısı (B, P, L, sen) nerede

  • B sistemin temelidir,
  • P anlamın kesinliğidir (temelde B),
  • L sistemin en küçük üssü,
  • sen sistemin en büyük üssüdür,

En küçük pozitif normalleştirilmiş kayan nokta sayısı vardır,

Yetersiz akış seviyesi = UFL = B L > ,

Baştaki basamak olarak 1'e ve anlamlının kalan basamakları için 0'a ve üs için mümkün olan en küçük değere sahip olan.

En büyük kayan noktalı sayı vardır,

hangisi B − 1, anlamlının her basamağının değeri ve üs için mümkün olan en büyük değer olarak.

Ayrıca, kesinlikle -UFL ve UFL arasında temsil edilebilir değerler vardır. Yani, pozitif ve negatif sıfırların yanı sıra denormalize edilmiş sayılar.

IEEE, 1985'te IEEE 754'te (diğer adıyla IEC 60559) ikili kayan noktalı sayıların bilgisayar gösterimini standartlaştırdı. Bu ilk standardı hemen hemen tüm modern makineler takip ediyor. 2008'de revize edilmiştir. IBM anabilgisayarları, IEEE 754 ikili biçimine ek olarak IBM'in kendi onaltılık kayan nokta biçimini ve IEEE 754-2008 ondalık kayan nokta biçimini destekler. Cray T90 serisinin bir IEEE sürümü vardı, ancak SV1 hala Cray kayan nokta biçimini kullanıyor. [ kaynak belirtilmeli ]

Standart, yalnızca birkaç ayrıntıda farklılık gösteren, birbiriyle yakından ilişkili birçok biçim sağlar. Bu biçimlerden beşi temel biçimlerve diğerleri olarak adlandırılır genişletilmiş hassas formatlar ve genişletilebilir hassas format. Bilgisayar donanımında ve dillerde özellikle yaygın olarak kullanılan üç biçim: [ kaynak belirtilmeli ]

    (binary32), genellikle C dil ailesindeki "float" türünü temsil etmek için kullanılır (ancak bu garanti edilmez). Bu, 32 bit (4 bayt) kaplayan ikili bir biçimdir ve anlamı 24 bit (yaklaşık 7 ondalık basamak) hassasiyete sahiptir. (binary64), genellikle C dil ailesindeki "çift" türü temsil etmek için kullanılır (bu garanti edilmese de). Bu, 64 bit (8 bayt) kaplayan ikili bir formattır ve anlamlılığı 53 bitlik (yaklaşık 16 ondalık basamak) bir hassasiyete sahiptir. , belirsiz bir şekilde "genişletilmiş kesinlik" biçimi olarak da adlandırılır. Bu, en az 79 bit (gizli/örtük bit kuralı kullanılmıyorsa 80) kaplayan bir ikili biçimdir ve anlamlı ve en az 64 bit (yaklaşık 19 ondalık basamak) hassasiyete sahiptir. C dil ailesinin C99 ve C11 standartları, ek F'lerinde ("IEC 60559 kayan nokta aritmetiği"), "uzun çift" olarak sağlanacak bu tür genişletilmiş bir format önerir. [14] Minimum gereksinimleri karşılayan bir biçim (64-bit anlamlı ve kesinlik, 15-bit üs, dolayısıyla 80 bite sığdırılır) x86 mimarisi tarafından sağlanır. Genellikle bu tür işlemcilerde, bu biçim "uzun çift" ile kullanılabilir, ancak MSVC'de genişletilmiş hassasiyet mevcut değildir. Hizalama amacıyla, birçok araç bu 80 bitlik değeri 96 bit veya 128 bitlik bir alanda saklar. [15]][16] Diğer işlemcilerde, "uzun çift", dörtlü kesinlik, [17] veya herhangi bir genişletilmiş kesinlik biçimi mevcut değilse, yalnızca çift kesinlik gibi daha büyük bir formatı temsil edebilir. [18]

Kayan nokta gösteriminin kesinliğini artırmak, genellikle ara hesaplamaların neden olduğu birikmiş yuvarlama hatası miktarını azaltır. [19] Daha az yaygın olan IEEE biçimleri şunları içerir:

    (ikili 128). Bu, 128 bit (16 bayt) kaplayan bir ikili biçimdir ve önemi 113 bitlik (yaklaşık 34 ondalık basamak) kesinliğe sahiptir. ve ondalık128 kayan nokta biçimleri. Bu biçimler, decimal32 biçimiyle birlikte, ondalık yuvarlamayı doğru şekilde gerçekleştirmek için tasarlanmıştır. , 16 bitlik kayan nokta değeri olan binary16 olarak da adlandırılır. NVIDIA Cg grafik dilinde ve openEXR standardında kullanılmaktadır. [20]

Mutlak değeri 2 24'ten küçük olan herhangi bir tam sayı, tek duyarlık biçiminde tam olarak gösterilebilir ve mutlak değeri 2 53'ten küçük olan herhangi bir tam sayı, tam olarak çift duyarlık biçiminde temsil edilebilir. Ayrıca, böyle bir sayının 2 katı kadar geniş bir güç aralığı temsil edilebilir. Bu özellikler bazen tamamen tamsayı verileri için, çift duyarlıklı kayan noktalara sahip ancak yalnızca 32 bit tam sayılara sahip platformlarda 53 bit tam sayılar elde etmek için kullanılır.

Standart bazı özel değerleri ve bunların gösterimini belirtir: pozitif sonsuz (+∞), negatif sonsuz (−∞), normal ("pozitif") sıfırdan farklı bir negatif sıfır (−0) ve "sayı değil" değerler ( NaN'ler).

IEEE standardı tarafından tanımlanan kayan noktalı sayıların karşılaştırılması, normal tamsayı karşılaştırmasından biraz farklıdır. Negatif ve pozitif sıfır karşılaştırma eşittir ve her NaN, kendisi de dahil olmak üzere her değerle eşit olmayanı karşılaştırır. Tüm sonlu kayan noktalı sayılar +∞'den kesinlikle küçüktür ve −∞'den kesinlikle büyüktür ve değerleriyle aynı şekilde sıralanırlar (gerçek sayılar kümesinde).

İç temsil Düzenle

Kayan nokta sayıları tipik olarak bir bilgisayar verisine işaret biti, üs alanı ve anlamlı veya mantis olarak soldan sağa paketlenir. Mevcut donanım uygulamalarına sahip IEEE 754 ikili biçimleri (temel ve genişletilmiş) için, bunlar aşağıdaki gibi paylaştırılır:

Üs pozitif veya negatif olabilirken, ikili biçimlerde kendisine sabit bir "önyargı" eklenmiş işaretsiz bir sayı olarak saklanır. Bu alandaki tüm 0'ların değerleri sıfırlar için ayrılmıştır ve tüm 1'lerin normal altı sayı değerleri sonsuzluklar ve NaN'ler için ayrılmıştır. Normalleştirilmiş sayılar için üs aralığı, tek duyarlık için [−126, 127], çift için [−1022, 1023] veya dörtlü için [−16382, 16383]'dir. Normalleştirilmiş sayılar, normal altı değerleri, sıfırları, sonsuzlukları ve NaN'leri hariç tutar.

IEEE ikili değişim biçimlerinde, normalleştirilmiş bir anlamın baştaki 1 biti aslında bilgisayar verisinde saklanmaz. Buna "gizli" veya "örtük" bit denir. Bu nedenle, tek duyarlıklı biçim aslında 24 bit duyarlıklı bir anlamlılığa, çift duyarlıklı biçim 53 ve dörtlü 113'e sahiptir.

Örneğin, 24 bit hassasiyete yuvarlanmış π'nin aşağıdakilere sahip olduğu yukarıda gösterilmiştir:

Üs sapması (127) ve üs (1) toplamı 128'dir, bu nedenle bu, tek duyarlık biçiminde şu şekilde temsil edilir:

32 bitlik kayan nokta düzenine bir örnek:

Özel değerler Düzenle

İmzalı sıfır Düzenle

IEEE 754 standardında sıfır işaretlidir, yani hem "pozitif sıfır" (+0) hem de "negatif sıfır" (−0) vardır. Çoğu çalışma zamanı ortamında, pozitif sıfır genellikle "0" ve negatif sıfır "-0" olarak yazdırılır. İki değer sayısal karşılaştırmalarda eşit gibi davranır, ancak bazı işlemler +0 ve -0 için farklı sonuçlar verir. Örneğin, 1/(−0) negatif sonsuz, 1/+0 ise pozitif sonsuz döndürür (böylece 1/(1/±∞) = ±∞ özdeşliği korunur). Süreksizliği olan diğer ortak fonksiyonlar x+0 ve -0'ı farklı şekilde ele alabilecek olan =0, log(x), işaret(x) ve temel karekökü y + xi herhangi bir negatif sayı için y. Herhangi bir yaklaşım şemasında olduğu gibi, "negatif sıfır" içeren işlemler zaman zaman karışıklığa neden olabilir. Örneğin, IEEE 754'te x = y her zaman 1/ anlamına gelmezx = 1/y , 0 = −0 ancak 1/0 ≠ 1/−0 olarak. [22]

Normal olmayan sayılar Düzenle

Normal altı değerler, yetersiz akış aralığını, aralarındaki mutlak mesafenin, yetersiz akış aralığının hemen dışındaki bitişik değerlerle aynı olduğu değerlerle doldurur. Bu, yetersiz akış boşluğunda sadece sıfıra sahip olmak ve taşma sonuçlarının yerine sıfır (sıfırdan sıfıra) ile değiştirildiği eski uygulamaya göre bir gelişmedir. [4]

Modern kayan nokta donanımı genellikle normal altı değerleri (normal değerlerin yanı sıra) işler ve normal altı değerler için yazılım öykünmesi gerektirmez.

Sonsuzluklar Düzenle

Genişletilmiş gerçek sayı çizgisinin sonsuzlukları, tıpkı 1, 1.5, vb. gibi sıradan kayan noktalı değerler gibi IEEE kayan noktalı veri türlerinde temsil edilebilir. Sıklıkla (ancak her zaman değil) olsalar da hiçbir şekilde hata değerleri değildirler. yuvarlamaya bağlı olduğundan) taşma olduğunda değiştirme değerleri olarak kullanılır. Sıfıra bölme istisnası üzerine, kesin sonuç olarak pozitif veya negatif bir sonsuzluk döndürülür. Bir sonsuzluk, bir sayı olarak da tanıtılabilir (C'nin "INFINITY" makrosu veya programlama dili bu sözdizimine izin veriyorsa "∞" gibi).

IEEE 754, sonsuzların makul bir şekilde ele alınmasını gerektirir, örneğin

NaN'ler Düzenle

IEEE 754, 0/0, ∞×0 veya sqrt(−1) gibi belirli "geçersiz" işlemlerin sonucu olarak döndürülecek "Sayı Değil" (NaN) adlı özel bir değer belirtir. Genel olarak, NaN'ler yayılacaktır, yani bir NaN içeren çoğu işlem bir NaN ile sonuçlanacaktır, ancak verilen herhangi bir kayan nokta değeri için tanımlanmış bir sonuç verecek işlevler bunu NaN'ler için de yapacaktır, örn. NaN ^ 0 = 1. İki tür NaN vardır: varsayılan sessiz NaN'ler ve isteğe bağlı olarak, sinyalizasyon NaN'ler. Herhangi bir aritmetik işlemde (sayısal karşılaştırmalar dahil) sinyal veren bir NaN, bir "geçersiz işlem" istisnasının bildirilmesine neden olacaktır.

Standart tarafından belirtilen NaN'lerin temsili, hatanın türünü veya kaynağını kodlamak için kullanılabilecek bazı belirtilmemiş bitlere sahiptir, ancak bu kodlama için bir standart yoktur. Teoride, sinyalleme NaN'leri, bir çalışma zamanı sistemi tarafından başlatılmamış değişkenleri işaretlemek veya kayan nokta sayılarını, bu tür uzantılar yaygın olmasa da, sıradan değerlerle hesaplamaları yavaşlatmadan diğer özel değerlerle genişletmek için kullanılabilir.

IEEE 754 tasarım mantığı Düzenle

Genişletilmiş formatlar, NaN, sonsuzluklar, normal altı değerler vb. gibi burada tartışılan IEEE 754 standardının daha ezoterik özelliklerinin yalnızca sayısal analistleri ilgilendirdiği veya gelişmiş sayısal uygulamalar için aslında tam tersi olduğu yaygın bir yanlış anlamadır. : bu özellikler, uzmanlar tarafından karmaşık sayısal kitaplıkları desteklemenin yanı sıra sayısal olarak karmaşık olmayan programcılar için güvenli ve sağlam varsayılanlar sağlamak üzere tasarlanmıştır. IEEE 754'ün ana tasarımcısı William Kahan, ". İkili Kayan Nokta Aritmetiği için IEEE Standard 754'ün özelliklerini, yalnızca sayısal uzmanlar tarafından kullanılabilen özellikler olarak kabul edilmesinin" yanlış olduğunu belirtiyor. Gerçekler tam tersidir. 1977'de bu özellikler, mümkün olan en geniş pazara hizmet etmek için Intel 8087'de tasarlandı. Hata analizi bize, IEEE Standard 754 gibi, programcılar arasındaki iyi niyetli cehalete orta derecede toleranslı kayan nokta aritmetiğinin nasıl tasarlanacağını söyler" . [23]

  • Infinity ve NaN gibi özel değerler, kayan nokta aritmetiğinin cebirsel olarak tamamlanmasını sağlar: her kayan nokta işlemi iyi tanımlanmış bir sonuç üretir ve varsayılan olarak bir makine kesmesi veya tuzağı atmaz. Ayrıca, istisnai durumlarda döndürülen özel değerlerin seçimleri, birçok durumda doğru cevabı verecek şekilde tasarlanmıştır. Örneğin, IEEE 754 aritmetiği altında, R(z) := 7 − 3/[z − 2 − 1/(z − 7 + 10/[z − 2 − 2/(z − 3)]) gibi sürekli kesirler ] potansiyel sıfıra bölündüğü için tüm girdilerde doğru cevabı verecektir, örn. z = 3 için +infinity verilerek doğru bir şekilde işlenir ve bu nedenle bu tür istisnalar güvenle göz ardı edilebilir. [24] Kahan tarafından belirtildiği gibi, bir Ariane 5 roketinin kaybına neden olan bir kayan noktadan 16-bit tamsayıya dönüştürme taşmasına ardışık olan işlenmeyen tuzak, varsayılan IEEE 754 kayan nokta ilkesi altında gerçekleşmeyecekti. [23]
  • Normal altı sayılar şunu sağlar: sonlu kayan noktalı sayılar x ve y, x − y = 0 ise ve ancak ve ancak beklendiği gibi x = y ise, ancak önceki kayan nokta temsilleri altında geçerli değildi. [13]
  • Kahan, x87 80-bit formatının tasarım gerekçesi hakkında şunları söylüyor: "Bu Genişletilmiş format, göz ardı edilebilir bir hız kaybıyla, float ve double operandlı en basit aritmetik dışında herkes için kullanılmak üzere tasarlanmıştır. Örneğin, kullanılmalıdır. polinom değerlendirmesi, skaler ürünler, kısmi ve sürekli kesirler gibi tekrarları uygulayan döngülerdeki sıfırdan değişkenler için. Genellikle basit algoritmaları bozabilecek erken Aşırı/Az Akış veya ciddi yerel iptali önler". [25] Ara sonuçların genişletilmiş bir formatta yüksek hassasiyet ve genişletilmiş üs ile hesaplanması, bilimsel hesaplamanın tarihsel pratiğinde ve bilimsel hesap makinelerinin tasarımında emsallere sahiptir; Hewlett-Packard'ın finansal hesaplayıcıları, aritmetik ve finansal işlevleri, sakladıklarından veya görüntülediklerinden daha önemli üç ondalık sayıya kadar gerçekleştirdiler. [25] Genişletilmiş kesinliğin uygulanması, normalde en son bir birim içinde (ULP) yüksek hızda çift kesinlikli sonuçlar veren standart temel işlev kitaplıklarının kolayca geliştirilmesine olanak sağladı.
  • Değerlerin temsil edilebilir en yakın değere doğru yuvarlanması, hesaplamalarda sistematik sapmaları önler ve hataların büyümesini yavaşlatır. Bağları yuvarlamak, benzer rakamların eklenmesinde oluşabilecek istatistiksel önyargıyı bile ortadan kaldırır.
  • Yönlendirilmiş yuvarlama, örneğin aralık aritmetiğinde, hata sınırlarının denetlenmesine yardımcı olmak için tasarlanmıştır. Bazı işlevlerin uygulanmasında da kullanılır.
  • İşlemlerin matematiksel temeli, özellikle doğru yuvarlama, birinin matematiksel özellikleri kanıtlamasına ve 2Sum, Fast2Sum ve Kahan toplama algoritması gibi kayan nokta algoritmaları tasarlamasına izin verir, örn. doğruluğu artırmak veya çok duyarlıklı aritmetik alt rutinleri nispeten kolay bir şekilde uygulamak için.

Tek ve çift duyarlıklı biçimlerin bir özelliği, kodlamalarının kayan nokta donanımı kullanmadan kolayca sıralanmasına izin vermesidir. İkinin tümleyen tamsayıları olarak yorumlanan bitleri, negatifleri tersine çevirerek pozitifleri zaten doğru şekilde sıralar. Pozitif değerler için işaret bitini ve negatif değerler için tüm bitleri çevirmek için bir xor ile, tüm değerler işaretsiz tamsayılar olarak sıralanabilir hale gelir ( −0 < +0 ile). [26] Bu özelliğin amaçlanıp amaçlanmadığı açık değildir.

Yaygın olarak kullanılan IEEE 754 standart biçimlerine ek olarak, belirli etki alanına özgü alanlarda başka kayan nokta biçimleri kullanılır veya kullanılmaktadır.

  • Microsoft Binary Format (MBF), Microsoft'un ilk ürünü olan Altair BASIC (1975), TRS-80 LEVEL II, CP/M'nin MBASIC'i, IBM PC 5150'nin BASICA'sı, MS-DOS'un GW-BASIC'i dahil olmak üzere Microsoft BASIC dil ürünleri için geliştirildi. ve 4.00 sürümünden önceki QuickBASIC. QuickBASIC sürüm 4.00 ve 4.50, IEEE 754-1985 biçimine geçmiştir ancak /MBF komut seçeneğini kullanarak MBF biçimine geri dönebilir. MBF, 1975 baharında, Bill Gates'in yurt arkadaşı Monte Davidoff tarafından MITS Altair 8800 için simüle edilmiş bir Intel 8080 üzerinde tasarlandı ve geliştirildi. Temmuz 1975'in ilk sürümü, maliyeti nedeniyle tek duyarlıklı (32 bit) bir formatı destekledi. MITS Altair 8800 4 kilobayt bellek. Aralık 1975'te, 8 kilobaytlık sürüm, çift duyarlıklı (64 bit) bir biçim ekledi. Diğer CPU'lar, özellikle MOS 6502 (Apple //, Commodore PET, Atari), Motorola 6800 (MITS Altair 680) ve Motorola 6809 (TRS-80 Renkli Bilgisayar) için tek duyarlıklı (40 bit) bir varyant formatı benimsendi. 1975'ten 1987'ye kadar tüm Microsoft dil ürünleri, Microsoft, 1988'den başlayarak güncel sürümlerine kadar tüm ürünlerinde IEEE-754 standart biçimini benimseyene kadar Microsoft İkili Biçimi kullandı. MBF, MBF tek kesinlikli formattan (32 bit, "6 basamaklı BASIC"), [27][28] MBF genişletilmiş kesinlikli formattan (40 bit, "9 basamaklı BASIC") ve [28] ve MBF çift duyarlıklı format (64 bit) [27][29] bunların her biri 8 bitlik bir üsle, ardından bir işaret biti ve ardından sırasıyla 23, 31 ve 55 bitlik bir anlamlı ile temsil edilir.
  • Bfloat16 formatı, IEEE 754 yarı kesinlik formatı ile aynı miktarda bellek (16 bit) gerektirir, ancak üsse 5 yerine 8 bit tahsis eder, böylece IEEE 754 tek kesinlikli sayı ile aynı aralığı sağlar. Sondaki anlamlılık alanı 10 bitten 7 bit'e düşürüldüğünden, ödünleşim azaltılmış bir hassasiyettir. Bu biçim, esas olarak, menzilin hassasiyetten daha değerli olduğu makine öğrenimi modellerinin eğitiminde kullanılır. Birçok makine öğrenimi hızlandırıcısı bu biçim için donanım desteği sağlar.
  • TensorFloat-32 [30] formatı, Bfloat16 ve yarı hassas formatların en iyisini sağlar; ilki 8 bit üs ve ikincisi olarak 10 bit sondaki anlamlı alana sahiptir. Bu biçim, Nvidia Ampere mimarisine dayalı GPU'larının Tensor Çekirdeklerinde donanım desteği sağlayan Nvidia tarafından tanıtıldı. Bu biçimin dezavantajı, toplam boyutunun 19 bit olması ve 2'nin gücü olmamasıdır. Ancak, Nvidia'ya göre, bu biçim yalnızca donanım tarafından hesaplamaları hızlandırmak için dahili olarak kullanılmalıdır, girişler ve çıkışlar ise bir bilgisayarda depolanmalıdır. 32 bit tek duyarlıklı IEEE 754 formatı. [30]

Doğaları gereği, kayan nokta biçiminde ifade edilen tüm sayılar, ilgili tabanda sonlanan bir genişletmeye sahip rasyonel sayılardır (örneğin, taban-10'da sonlanan bir ondalık açılım veya taban-2'de sonlanan bir ikili açılım).π veya √2 gibi irrasyonel sayılar veya sonlu olmayan rasyonel sayılar yaklaşık olarak alınmalıdır. Kesinlik basamaklarının (veya bitlerinin) sayısı, tam olarak temsil edilebilecek rasyonel sayılar kümesini de sınırlar. Örneğin, 123456789 ondalık sayısı, yalnızca sekiz ondalık kesinlik basamağı mevcutsa tam olarak temsil edilemez (en sağdaki 0 ​​basamağının açıkça gösterilmediği yerde 123456790 veya 123456780'e yuvarlanır), aynısı sonlanmayan basamaklar için de geçerlidir (.5 .55555555 veya .55555556'ya yuvarlanacaktır).

Bir sayı, bir bilgisayar uygulamasında desteklenen yerel bir kayan nokta gösterimi olmayan bir biçimde (karakter dizesi gibi) temsil edildiğinde, bu uygulamada kullanılmadan önce bir dönüştürme gerektirecektir. Sayı tam olarak kayan nokta biçiminde gösterilebiliyorsa, dönüştürme kesindir. Kesin bir temsil yoksa, dönüştürme, orijinal değeri temsil etmek için hangi kayan noktalı sayının kullanılacağının bir seçimini gerektirir. Seçilen gösterim orijinalden farklı bir değere sahip olacaktır ve bu şekilde ayarlanan değere yuvarlatılmış değer.

Bir rasyonel sayının sonlu bir açılımının olup olmadığı tabana bağlıdır. Örneğin, taban-10'da 1/2 sayısının sonlu bir açılımı (0,5) varken 1/3 sayısının (0,333) yoktur. Taban-2'de sadece paydaları 2'nin kuvveti olan (1/2 veya 3/16 gibi) rasyoneller sona erer. Paydası 2'den farklı bir asal çarpanı olan herhangi bir rasyonel, sonsuz bir ikili genişlemeye sahip olacaktır. Bu, ondalık biçimde yazıldığında kısa ve kesin görünen sayıların ikili kayan noktaya dönüştürüldüğünde yaklaşık olarak alınması gerekebileceği anlamına gelir. Örneğin, 0.1 ondalık sayı, herhangi bir sonlu kesinliğin ikili kayan noktasında temsil edilemez, kesin ikili gösterimin sonsuz devam eden bir "1100" dizisi olacaktır:

e = −4 s = 1100110011001100110011001100110011.

nerede, daha önce olduğu gibi, s anlamlıdır ve e üssüdür.

24 bite yuvarlandığında bu olur

e = −4 s = 110011001100110011001101,

ki bu aslında ondalık olarak 0.100000001490116119384765625'tir.

Başka bir örnek olarak, ikili olarak sonsuz bir bit dizisi olarak temsil edilen gerçek sayı π,

24 bitlik bir hassasiyete yuvarlanarak yaklaşıldığında.

İkili tek duyarlıklı kayan noktada bu şu şekilde temsil edilir: s = 1.10010010000111111011011 ile e = 1. Bu, ondalık bir değere sahiptir

3.1415927410125732421875,

π'nin gerçek değerinin daha doğru bir tahmini ise

3.14159265358979323846264338327950.

Yuvarlamanın sonucu, gerçek değerden milyonda yaklaşık 0,03 parça farklıdır ve ilk 7 basamakta π'nin ondalık gösterimiyle eşleşir. Fark, ayrıklaştırma hatasıdır ve makine epsilonuyla sınırlıdır.

Aynı üslü iki ardışık temsil edilebilir kayan noktalı sayı arasındaki aritmetik farka sondaki birim (ULP) denir. Örneğin, 1.45a70c22 temsil edilebilir sayılar arasında temsil edilebilir bir sayı yoksaaltıgen ve 1.45a70c24altıgen, ULP 2×16 -8 veya 2 −31'dir. Taban-2 üs kısmı 0 olan sayılar için, yani mutlak değeri 1'den büyük veya eşit ancak 2'den küçük olan sayılar için, bir ULP tam olarak 2 −23 veya yaklaşık 10 −7'dir ve tam olarak 2 −53'tür. veya çift hassasiyette yaklaşık 10 −16. IEEE uyumlu donanımın zorunlu davranışı, sonucun bir ULP'nin yarısı dahilinde olmasıdır.

Yuvarlama modları Düzenle

Yuvarlama, bir kayan nokta işleminin (veya kayan nokta biçimine dönüştürmenin) kesin sonucu, anlamlıdaki rakamlardan daha fazla basamağa ihtiyaç duyduğunda kullanılır. IEEE 754 gerektirir doğru yuvarlama: yani yuvarlanan sonuç, değeri hesaplamak için sonsuz kesinlikte aritmetik kullanılmış ve sonra yuvarlanmış gibidir (ancak uygulamada bunu sağlamak için sadece üç ekstra bit gereklidir). Birkaç farklı yuvarlama şeması vardır (veya yuvarlama modları). Tarihsel olarak, kırpma tipik bir yaklaşımdı. IEEE 754'ün tanıtılmasından bu yana varsayılan yöntem (en yakına yuvarla, eşite bağla, bazen Banker's Rounding olarak adlandırılır) daha yaygın olarak kullanılır. Bu yöntem, bir aritmetik işlemin ideal (sonsuz kesin) sonucunu en yakın temsil edilebilir değere yuvarlar ve sonuç olarak bu gösterimi verir. [nb 8] Eşitlik durumunda anlamlıyı çift basamakta sonlandıracak değer seçilir. IEEE 754 standardı, sayısal (NaN olmayan) bir sonuç olduğunda karekök ve dönüşümler dahil tüm temel cebirsel işlemlere aynı yuvarlamanın uygulanmasını gerektirir. Bu, IEEE 754 işlemlerinin sonuçlarının, NaN'lerin temsili dışında, sonucun tüm bitlerinde tamamen belirlendiği anlamına gelir. ("Kosinüs ve log gibi kitaplık" işlevleri zorunlu değildir.)

Alternatif yuvarlama seçenekleri de mevcuttur. IEEE 754, aşağıdaki yuvarlama modlarını belirtir:

  • en yakına yuvarla, burada bağların gerekli konumda en yakın çift basamağa yuvarlanması (varsayılan ve açık ara en yaygın mod)
  • yuvarlaktan en yakına, burada bağların sıfırdan uzağa yuvarlanması (ikili kayan nokta için isteğe bağlı ve genellikle ondalık olarak kullanılır)
  • yukarı yuvarla (+∞ negatif sonuçlara doğru, dolayısıyla sıfıra yuvarla)
  • aşağı yuvarlar (-∞ negatif sonuçlara doğru, dolayısıyla sıfırdan uzaklaşır)
  • sıfıra doğru yuvarlama (kesme, −3.9'dan −3'e ve 3.9'dan 3'e dönüştüren kayan noktadan tamsayıya dönüşümlerin ortak davranışına benzerdir)

Alternatif modlar, ortaya çıkan hata miktarının sınırlandırılması gerektiğinde kullanışlıdır. Sınırlı hata gerektiren uygulamalar, çok duyarlıklı kayan nokta ve aralık aritmetiğidir. Alternatif yuvarlama modları ayrıca sayısal kararsızlığın teşhisinde de faydalıdır: bir alt programın sonuçları + ve - sonsuza yuvarlama arasında önemli ölçüde farklılık gösteriyorsa, sayısal olarak kararsızdır ve yuvarlama hatasından etkilenir. [31]

Minimum basamak sayısıyla ikiliden ondalığa dönüştürme

Çift duyarlıklı bir ikili kayan noktalı sayıyı ondalık dizgeye dönüştürmek yaygın bir işlemdir, ancak hem doğru hem de minimum sonuçlar üreten bir algoritma, Steele ve White'ın Dragon4'ü ile 1990 yılına kadar baskıda görünmüyordu. O zamandan beri yapılan iyileştirmelerden bazıları şunlardır:

  • David M. Gay'in dtoa.c, Dragon4'teki birçok fikrin pratik bir açık kaynaklı uygulaması. [32]
  • Grisu3, bignum kullanımını ortadan kaldırdığı için 4× hızlanma ile. Başarısız olduğu için bir geri dönüş ile kullanılmalıdır.

Birçok modern dil çalışma zamanı, Dragon4 yedeği ile Grisu3'ü kullanır. [36]

Ondalıktan ikiliye dönüştürme Düzenle

Ondalık bir dizgiyi ikili bir FP temsiline ayrıştırma sorunu karmaşıktır, doğru bir ayrıştırıcı Clinger'in 1990 çalışmasına kadar (dtoa.c'de uygulanmıştır) görünmemektedir. [32] Daha fazla çalışma aynı şekilde daha hızlı ayrıştırma yönünde ilerlemiştir. [37]

Sunum ve anlama kolaylığı için, örneklerde IEEE 754'te olduğu gibi 7 basamaklı kesinlikte ondalık sayı tabanı kullanılacaktır. ondalık 32 biçim. Temel ilkeler, normalleştirmenin isteğe bağlı olması dışında (sonucun sayısal değerini etkilemez) herhangi bir sayı tabanı veya kesinlikte aynıdır. Buraya, s anlamı ifade eder ve e üssü ifade eder.

Toplama ve çıkarma Düzenle

Kayan noktalı sayıları eklemenin basit bir yöntemi, önce onları aynı üsle temsil etmektir. Aşağıdaki örnekte, ikinci sayı üç basamak sağa kaydırılır ve ardından normal toplama yöntemiyle devam edilir:

Bu gerçek sonuçtur, işlenenlerin tam toplamıdır. Yedi haneye yuvarlanacak ve ardından gerekirse normalleştirilecektir. Nihai sonuç

İkinci işlenenin (654) en alttaki üç basamağı esasen kaybolur. Bu yuvarlama hatasıdır. Aşırı durumlarda, sıfır olmayan iki sayının toplamı bunlardan birine eşit olabilir:

Yukarıdaki kavramsal örneklerde, doğru yuvarlamayı sağlamak için toplayıcı tarafından çok sayıda fazladan basamak sağlanması gerektiği, ancak dikkatli uygulama teknikleri kullanılarak ikili toplama veya çıkarma için yalnızca bir muhafız biraz, bir yuvarlama bit ve bir ekstra yapışkan bit'in işlenenlerin kesinliğinin ötesine taşınması gerekir. [22] [38] : 218–220

Bir başka önem kaybı sorunu şu durumlarda ortaya çıkar: yaklaşımlar neredeyse eşit iki sayı çıkarılır. Aşağıdaki örnekte e = 5 s = 1.234571 ve e = 5 s = 1.234567, 123457.1467 ve 123456.659 rasyonellerine yaklaşık değerlerdir.

Kayan nokta farkı tam olarak sayılar yakın olduğu için hesaplanır - Sterbenz lemması, kademeli taşma desteklendiğinde taşma durumunda bile bunu garanti eder. Buna rağmen, orijinal sayıların farkı, e = −1 s = 4.877000, farktan %20'den fazla farklılık gösteren e = −1 s = 4,000000 yaklaşım. Aşırı durumlarda, tüm önemli kesinlik basamakları kaybolabilir. [22] [39] Bu iptal hesaplanan bir sonucun tüm basamaklarının anlamlı olduğunu varsaymanın tehlikesini gösterir. Bu hataların sonuçlarıyla ilgilenmek sayısal analizde bir konudur, ayrıca bkz. Doğruluk problemleri.

Çarpma ve bölme Düzenle

Çarpmak için, üsler toplanırken anlamlılar çarpılır ve sonuç yuvarlanır ve normalleştirilir.

Benzer şekilde, bölme, bölenin üssünü bölenin üssünden çıkararak ve bölenin anlamlısını bölenin anlamlısına bölerek yapılır.

İşlemler art arda yapıldığından küçük hatalar birikebilir, ancak çarpma veya bölme ile ilgili iptal veya özümseme sorunları yoktur. [22] Pratikte, bu işlemlerin sayısal mantıkta gerçekleştirilme şekli oldukça karmaşık olabilir (bakınız Booth'un çarpma algoritması ve Bölme algoritması). [nb 9] Hızlı ve basit bir yöntem için Horner yöntemine bakın.

Bir bilgisayarda kayan nokta hesaplaması üç tür sorunla karşılaşabilir:

  • Bir işlem, ∞/∞ veya sıfıra bölme gibi matematiksel olarak tanımsız olabilir.
  • Bir işlem prensipte yasal olabilir, ancak belirli bir format tarafından desteklenmez, örneğin -1'in karekökünü veya 2'nin ters sinüsünü (her ikisi de karmaşık sayılarla sonuçlanır) hesaplamak.
  • Bir işlem prensipte yasal olabilir, ancak sonucun belirtilen biçimde temsil edilmesi imkansız olabilir, çünkü üs, üs alanında kodlamak için çok büyük veya çok küçüktür. Böyle bir olaya taşma (üs çok büyük), alttan taşma (üs çok küçük) veya denormalizasyon (kesinlik kaybı) denir.

IEEE standardından önce, bu tür koşullar genellikle programın sona ermesine veya programcının yakalayabileceği bir tür tuzağı tetiklemesine neden oluyordu. Bunun nasıl çalıştığı sisteme bağlıydı, yani kayan noktalı programlar taşınabilir değildi. (IEEE 754'te kullanıldığı şekliyle "istisna" terimi, bir hata olması gerekmeyen istisnai bir durum anlamına gelen genel bir terimdir ve C++ veya Java gibi programlama dillerinde tipik olarak tanımlanandan farklı bir kullanımdır. istisna", IEEE 754 terminolojisinde "tuzak" olarak adlandırılan şeye daha yakın olan alternatif bir kontrol akışıdır.)

Burada, IEEE 754'e göre istisnaları işlemek için gerekli varsayılan yöntem tartışılmıştır (IEEE 754 isteğe bağlı yakalama ve diğer "alternatif istisna işleme" modları tartışılmamıştır). Aritmetik istisnaların (varsayılan olarak) "yapışkan" durum bayrak bitlerine kaydedilmesi gerekir. "Yapışkan" olmaları, bir sonraki (aritmetik) işlem tarafından sıfırlanmadıkları, ancak açıkça sıfırlanana kadar ayarlı kaldıkları anlamına gelir. Böylece "yapışkan" bayrakların kullanımı, istisnai koşulların test edilmesinin tam bir kayan nokta ifadesi veya alt yordam sonrasına kadar ertelenmesine olanak tanır: onlar olmadan, aksi takdirde göz ardı edilemeyecek istisnai koşullar, her kayan nokta işleminden hemen sonra açık test gerektirir. Varsayılan olarak, bir işlem her zaman hesaplamayı kesintiye uğratmadan belirtime göre bir sonuç döndürür. Örneğin, 1/0 +∞ döndürür, aynı zamanda sıfıra bölme bayrak bitini ayarlar (bu varsayılan ∞, sonraki işlemlerde kullanıldığında genellikle sonlu bir sonuç döndürmek için tasarlanmıştır ve bu nedenle güvenli bir şekilde yoksayılır).

Ancak orijinal IEEE 754 standardı, bu tür aritmetik istisna bayrak biti kümelerini işlemek için işlemler önermedi. Bu nedenle, bunlar donanımda uygulanırken, başlangıçta programlama dili uygulamaları tipik olarak bunlara erişmek için bir araç sağlamadı (birleştirici dışında). Zaman içinde bazı programlama dili standartları (örneğin, C99/C11 ve Fortran), durum bayrak bitlerine erişme ve bunları değiştirme yöntemlerini belirtmek için güncellendi. IEEE 754 standardının 2008 sürümü artık aritmetik bayrak bitlerine erişmek ve bunları işlemek için birkaç işlemi belirtir. Programlama modeli, yürütmenin tek bir iş parçacığına dayanır ve bunların birden çok iş parçacığı tarafından kullanılması, standardın dışında bir araçla ele alınmalıdır (örneğin, C11, bayrakların iş parçacığı yerel depolamasına sahip olduğunu belirtir).

IEEE 754, durum bayraklarına ("yapışkan bitler") kaydedilecek beş aritmetik istisnayı belirtir:

  • kesin olmayan, yuvarlanan (ve döndürülen) değer, işlemin matematiksel olarak kesin sonucundan farklıysa ayarlayın.
  • taşma, yuvarlanan değerin küçük olup olmadığını ayarlayın (IEEE 754'te belirtildiği gibi) ve tam olmayan (veya IEEE 754'ün 1984 versiyonuna göre denormalizasyon kaybı varsa, bununla sınırlı olabilir), sıfırlar dahil normal altı bir değer döndürür.
  • taşma, yuvarlanan değerin mutlak değeri temsil edilemeyecek kadar büyükse ayarlayın. Hangi yuvarlamanın kullanıldığına bağlı olarak bir sonsuz veya maksimum sonlu değer döndürülür.
  • sıfıra bölme, sonucun sonsuz verili sonlu işlenenler olup olmadığını ayarlayın, +∞ veya −∞ şeklinde bir sonsuzluk döndürün.
  • geçersiz, gerçek değerli bir sonuç döndürülemezse ayarlayın örn. sqrt(−1) veya 0/0, sessiz bir NaN döndürür.

İstisnaların her biri için varsayılan dönüş değeri, çoğu durumda istisnaların kodların çoğunda göz ardı edilebilecek şekilde doğru sonucu verecek şekilde tasarlanmıştır. kesin olmayan doğru yuvarlanmış bir sonuç döndürür ve taşma denormalize edilmiş küçük bir değer döndürür ve bu nedenle neredeyse her zaman göz ardı edilebilir. [40] sıfıra bölme sonsuzluğu tam olarak döndürür, bu tipik olarak daha sonra sonlu bir sayıyı böler ve böylece sıfır verir, yoksa bir geçersiz İstisna daha sonra değilse ve bu nedenle tipik olarak göz ardı edilebilir. Örneğin, paralel bağlı n direncin etkin direnci (bkz. şekil 1) R tot = 1 / ( 1 / R 1 + 1 / R 2 + ⋯ + 1 / R n ) >=1/(1/R_<1>+1/R_<2>+cdots +1/R_)> . R 1 > 0'a ayarlıyken bir kısa devre gelişirse, 1 / R 1 > +infinity değerini döndürür ve bu da son bir R t o t > 0, beklendiği gibi [41] (başka bir örnek için IEEE 754 tasarım mantığının devam eden kesir örneğine bakın).

taşma ve geçersiz istisnalar tipik olarak göz ardı edilemez, ancak mutlaka hataları temsil etmez: örneğin, bir kök bulma rutini, normal çalışmasının bir parçası olarak, geçirilen bir işlevi etki alanı dışındaki değerlerde değerlendirebilir, NaN ve bir geçersiz yararlı bir başlangıç ​​noktası bulana kadar yok sayılacak istisna bayrağı. [40]

Kayan noktalı sayıların tüm gerçek sayıları tam olarak temsil edememesi ve kayan noktalı işlemlerin gerçek aritmetik işlemleri tam olarak temsil edememesi, birçok şaşırtıcı duruma yol açar. Bu, bilgisayarların genellikle sayıları temsil ettiği sonlu kesinlik ile ilgilidir.

Örneğin, 0,1 ve 0,01'in temsil edilemezliği (ikili olarak), 0,1'i kareye alma girişiminin sonucunun ne 0,01 ne de ona en yakın temsil edilebilir sayı olduğu anlamına gelir. 24-bit (tek kesinlikli) gösterimde, 0.1 (ondalık) daha önce şu şekilde verilmişti: e = −4 s = 110011001100110011001101, yani

Bu sayının karesini almak

Tek duyarlıklı kayan nokta donanımıyla (yuvarlamalı) karesini almak

Ancak 0,01'e en yakın temsil edilebilir sayı

Ayrıca, π (ve π/2)'nin temsil edilemezliği, denenen bir tan(π/2) hesaplamasının sonsuz bir sonuç vermeyeceği ve hatta olağan kayan nokta formatlarında (doğru olduğu varsayılarak) taşmayacağı anlamına gelir. tan uygulanması). Standart kayan nokta donanımının tan(π/2)'yi hesaplamaya çalışması mümkün değildir, çünkü π/2 tam olarak temsil edilemez. C'deki bu hesaplama:

163312393533195370.0 sonucunu verecektir. Tek kesinlikte (tanf işlevini kullanarak), sonuç -22877332.0 olacaktır.

Aynı şekilde, sin(π)'nin denenmiş bir hesaplaması da sıfır vermeyecektir. Sonuç (yaklaşık olarak) çift duyarlıkta 0.1225 × 10 − 15 veya tek duyarlıkta −0.8742 × 10 − 7 olacaktır. [nb 10]

Kayan noktalı toplama ve çarpmanın her ikisi de değişmeli (bir + b = b + bir ve bir × b = b × bir), bunlar mutlaka birleştirici değildir. Yani, (bir + b) + c mutlaka eşit değildir bir + (b + c). 7 basamaklı anlamlı ve ondalık aritmetik kullanarak:

Ayrıca mutlaka dağıtıcı değildirler. Yani, (bir + b) × c ile aynı olmayabilir bir × c + b × c:

Önem kaybına, π ve 0,1 gibi sayıların tam olarak temsil edilememesine ve diğer hafif yanlışlıklara ek olarak, aşağıdaki fenomenler ortaya çıkabilir:

    : neredeyse eşit işlenenlerin çıkarılması, aşırı doğruluk kaybına neden olabilir. [42][39] Neredeyse eşit iki sayıyı çıkardığımızda, en anlamlı basamakları sıfıra ayarlıyoruz, kendimizi sadece önemsiz ve en hatalı basamaklarla baş başa bırakıyoruz. [4] : 124 Örneğin, bir fonksiyonun türevi belirlenirken aşağıdaki formül kullanılır:
  • Tamsayıya dönüştürmeler sezgisel değildir: (63.0/9.0) tamsayıya dönüştürme 7 verir, ancak (0.63/0.09) dönüştürme 6 sonuç verebilir. Bunun nedeni, dönüştürmelerin genellikle yuvarlak yerine kısalmasıdır. Zemin ve tavan işlevleri, sezgisel olarak beklenen değerden birer birer farklı yanıtlar üretebilir.
  • Sınırlı üs aralığı: sonuçlar taşma sonucu sonsuz olabilir veya alt akış normalin altında bir sayı veya sıfır verebilir.Bu durumlarda kesinlik kaybolacaktır.
  • Güvenli bölme testi sorunludur: Bölenin sıfır olmadığını kontrol etmek, bölmenin taşmayacağını garanti etmez.
  • Eşitlik testi sorunludur. Matematiksel olarak eşit olan iki hesaplama dizisi, farklı kayan nokta değerleri üretebilir. [43]

Olaylar Düzenle

  • 25 Şubat 1991'de, bir MIM-104 Patriot füze bataryasındaki önem kaybı, onun Suudi Arabistan'ın Dhahran kentinde gelen bir Scud füzesini durdurmasını engelledi ve ABD Ordusu'nun 14. Quartermaster Müfrezesinden 28 askerin ölümüne katkıda bulundu. [44]

Makine hassasiyeti ve geriye dönük hata analizi Düzenle

makine hassasiyeti bir kayan nokta sisteminin doğruluğunu karakterize eden bir niceliktir ve kayan nokta algoritmalarının geriye dönük hata analizinde kullanılır. Birim yuvarlama olarak da bilinir veya makine epsilon. Genellikle Ε ile gösterilirmak, değeri kullanılan yuvarlamaya bağlıdır.

en yakına yuvarlarken,

sınırladığı için bu önemlidir. göreceli hata bir kayan nokta sisteminin normalleştirilmiş aralığı içinde sıfır olmayan herhangi bir gerçek sayı x'i temsil ederken:

Teorisi James H. Wilkinson tarafından geliştirilen ve popüler hale getirilen geriye dönük hata analizi, sayısal bir işlevi uygulayan bir algoritmanın sayısal olarak kararlı olduğunu belirlemek için kullanılabilir. [45] Temel yaklaşım, yuvarlama hatalarından dolayı hesaplanan sonucun tam olarak doğru olmamasına rağmen, biraz bozulmuş giriş verileriyle yakındaki bir problemin kesin çözümü olduğunu göstermektir. Girilen verilerdeki belirsizlik mertebesine göre gereken bozulma küçükse, sonuçlar bir anlamda verilerin "hak ettiği" kadar doğrudur. Algoritma daha sonra şu şekilde tanımlanır: geriye doğru kararlı. Kararlılık, aksine, belirli bir sayısal prosedürün yuvarlama hatalarına duyarlılığın bir ölçüsüdür; belirli bir problem için bir fonksiyonun koşul numarası, fonksiyonun girdisindeki küçük bozulmalara karşı doğal duyarlılığını gösterir ve çözmek için kullanılan uygulamadan bağımsızdır. sorun. [46]

Önemsiz bir örnek olarak, x ve y vektörlerinin (iki uzunluk) iç çarpımını veren basit bir ifadeyi düşünün, sonra

tanım gereği, hafifçe bozulan iki toplamı olan (Ε mertebesinde)mak) veri girişi ve bu nedenle geriye dönük kararlıdır. Sayısal lineer cebirde daha gerçekçi örnekler için bkz. Higham 2002 [47] ve aşağıdaki diğer referanslar.

Doğruluk sorunlarının etkisini en aza indirme

Daha önce belirtildiği gibi, IEEE 754'ün bireysel aritmetik işlemlerinin yarım ULP'ye kadar kesinliği garanti edilse de, daha karmaşık formüller yuvarlama nedeniyle daha büyük hatalardan zarar görebilir. Bir sorun veya verileri koşulsuzsa, doğruluk kaybı önemli olabilir; bu, doğru sonucun verilerindeki küçük bozulmalara karşı aşırı duyarlı olduğu anlamına gelir. Bununla birlikte, bu veriler için sayısal olarak kararsız bir algoritma kullanılırsa, iyi koşullandırılmış işlevler bile büyük doğruluk kaybına uğrayabilir: bir programlama dilinde görünüşte eşdeğer ifade formülasyonları, sayısal kararlılıklarında önemli ölçüde farklılık gösterebilir. Bu tür doğruluk kaybı riskini ortadan kaldırmak için bir yaklaşım, sayısal analiz olarak bilinen matematik dalının bir amacı olan sayısal olarak kararlı algoritmaların tasarımı ve analizidir. Sayısal kararsızlık riskine karşı koruma sağlayabilecek başka bir yaklaşım, bir algoritmadaki ara (scratch) değerlerin nihai sonucun gerektirdiğinden daha yüksek bir hassasiyetle hesaplanmasıdır, [48], kaldırabilir veya büyüklük sırasına göre azaltabilir [49]. böyle bir risk: IEEE 754 dörtlü kesinlik ve genişletilmiş kesinlik, çift kesinlikte hesaplama yaparken bu amaç için tasarlanmıştır. [50] [nb 11]

Örneğin, aşağıdaki algoritma, 1.0'da [nb 12] iyi koşullandırılmış A(x) = (x−1) / (exp(x−1) − 1) fonksiyonunu hesaplamak için doğrudan bir uygulamadır, ancak sayısal olarak kararsız olduğu gösterilebilir ve 1.0'a yakın hesaplandığında aritmetik tarafından taşınan önemli basamakların yarısını kaybeder. [23]

Bununla birlikte, ara hesaplamaların tümü genişletilmiş hassasiyette gerçekleştirilirse (örneğin, satır [1]'i C99 long double'a ayarlayarak), o zaman nihai double sonuçta tam kesinliğe kadar korunabilir. [nb 13] Alternatif olarak, algoritmanın sayısal bir analizi, [2] satırında aşağıdaki açık olmayan değişiklik yapıldığında şunu ortaya çıkarır:

daha sonra algoritma sayısal olarak kararlı hale gelir ve tam çift kesinlikte hesaplayabilir.

Böyle dikkatli bir şekilde oluşturulmuş sayısal olarak kararlı programların özelliklerini korumak için derleyici tarafından dikkatli bir şekilde kullanılması gerekir. Derleyicilerin yapabileceği belirli "optimizasyonlar" (örneğin, işlemleri yeniden sıralama), iyi niyetli yazılımın hedeflerine karşı çalışabilir. Bu alandaki derleyicilerin ve dil tasarımlarının başarısızlıkları hakkında bazı tartışmalar vardır: C99, sayısal kesinliği korumak için bu tür optimizasyonların dikkatle belirtildiği bir dil örneğidir. Bu makalenin altındaki dış referanslara bakın.

Yüksek kaliteli kayan nokta yazılımı yazma tekniklerinin ayrıntılı bir şekilde ele alınması bu makalenin kapsamı dışındadır ve okuyucuya bu makalenin altındaki [47] [51] ve diğer referanslara atıfta bulunulur. Kahan, daha dikkatli bir sayısal analize ek olarak veya onun yerine sayısal anormallik riskini büyüklük dereceleriyle [51] önemli ölçüde azaltabilecek birkaç temel kural önerir. Bunlar şunları içerir: yukarıda belirtildiği gibi, donanımda desteklenen en yüksek hassasiyette tüm ifadelerin ve ara sonuçların hesaplanması (genel bir genel kural, istenen sonucun iki katı kesinlik taşımaktır, yani nihai bir tek kesinlikli sonuç için çift hassasiyette hesaplamak, veya çift kesinliğe kadar sonuçlar için çift genişletilmiş veya dörtlü hassasiyette [24]) ve giriş verilerini ve sonuçlarını yalnızca giriş verilerinin gerektirdiği ve desteklediği kesinliğe yuvarlama (nihai sonuçta, gerekli ve desteklenenin ötesinde aşırı hassasiyet taşıyan) girdi verileri yanıltıcı olabilir, depolama maliyetini artırır ve hızı düşürür ve fazla bitler sayısal prosedürlerin yakınsamasını etkileyebilir: [52] özellikle, aşağıda verilen yinelemeli örneğin ilk biçimi bu temel kural kullanıldığında doğru bir şekilde yakınsar). Birkaç ek konu ve tekniğin kısa açıklamaları aşağıdadır.

Ondalık kesirler genellikle ikili kayan noktada tam olarak temsil edilemediğinden, bu tür aritmetik, gerçek dünyadaki miktarları çok çeşitli ölçeklerde ölçmek için kullanıldığında en iyisidir (örneğin, bir ayın Satürn çevresindeki yörünge periyodu gibi). veya bir protonun kütlesi) ve en kötü durumda, kesin olması beklenen ondalık diziler olarak ifade edilen niceliklerin etkileşimlerini modellemesi beklendiğinde. [49] [51] İkinci duruma bir örnek finansal hesaplamalardır. Bu nedenle, finansal yazılım, ikili kayan noktalı sayı gösterimi kullanmama eğilimindedir. [53] C# ve Python programlama dillerinin "ondalık" veri türü ve IEEE 754-2008 standardının ondalık biçimleri, insan tarafından girilen tam ondalık değerlere uygulandığında ikili kayan nokta temsilleri sorunlarından kaçınmak için tasarlanmıştır. ve sayılar ondalık olarak yazdırıldığında aritmetiğin her zaman beklendiği gibi davranmasını sağlayın.

Eşitlik testinin kullanımı ( if (x==y) . ) kayan noktalı sayılarla uğraşırken dikkatli olmayı gerektirir. Çoğu bilgisayarda 0.6/0.2-3==0 gibi basit ifadeler bile doğru olmayacaktır [54] (örneğin, IEEE 754'te çift kesinlik, 0.6/0.2-3 yaklaşık olarak -4.44089209850063e-16'ya eşittir) . Sonuç olarak, bu tür testler bazen "bulanık" karşılaştırmalarla değiştirilir ( if (abs(x-y) < epsilon). , burada epsilon yeterince küçüktür ve 1.0E-13 gibi uygulamaya uyarlanmıştır). Bunu yapmanın bilgeliği büyük ölçüde değişir ve epsilon'u bağlamak için sayısal analiz gerektirebilir. [47] Birincil veri gösteriminden türetilen değerler ve bunların karşılaştırmaları, yuvarlama hatalarından kaynaklanan bu tür tutarsızlık riskini en aza indirmek için daha geniş, genişletilmiş bir hassasiyetle gerçekleştirilmelidir. [51] Kodu, bu tür testler gereksiz olacak şekilde düzenlemek genellikle daha iyidir. Örneğin, hesaplamalı geometride, bir noktanın dışında mı yoksa başka noktalar tarafından tanımlanan bir çizgi veya düzlemde mi olduğunun kesin testleri, uyarlamalı kesinlik veya kesin aritmetik yöntemler kullanılarak gerçekleştirilebilir. [55]

Kayan nokta aritmetiğindeki küçük hatalar, matematiksel algoritmalar çok sayıda işlem gerçekleştirdiğinde büyüyebilir. Birkaç örnek, matris ters çevirme, özvektör hesaplama ve diferansiyel denklem çözmedir. Bu algoritmalar, eğer iyi çalışacaklarsa, yinelemeli iyileştirme gibi sayısal yaklaşımlar kullanılarak çok dikkatli bir şekilde tasarlanmalıdır. [56]

Kayan nokta değerlerinin bir vektörünün toplamı, bilimsel hesaplamada temel bir algoritmadır ve bu nedenle, önem kaybının ne zaman meydana gelebileceğinin farkında olmak esastır. Örneğin, çok fazla sayıda sayı ekleniyorsa, tek tek toplamalar toplamla karşılaştırıldığında çok küçüktür. Bu, önem kaybına yol açabilir. Tipik bir ekleme daha sonra şöyle bir şey olurdu

Eklerin düşük 3 hanesi etkin bir şekilde kaybolur. Örneğin, birinin yaklaşık olarak 3'e eşit olan birçok sayı eklemesi gerektiğini varsayalım. Bunların 1000'i eklendikten sonra, dönen toplam yaklaşık 3000'dir, kaybedilen basamaklar geri kazanılmaz. Hataları azaltmak için Kahan toplama algoritması kullanılabilir. [47]

Yuvarlama hatası, yinelemeli sayısal prosedürlerin yakınsamasını ve doğruluğunu etkileyebilir. Örnek olarak, Arşimet, bir daire çizen ve çevreleyen çokgenlerin çevrelerini hesaplayarak, altıgenlerden başlayarak ve kenar sayısını art arda ikiye katlayarak π'ye yaklaştı. Yukarıda belirtildiği gibi, hesaplamalar matematiksel olarak eşdeğer ancak hataya daha az eğilimli (sayısal analiz) bir şekilde yeniden düzenlenebilir. Sınırlandırılmış çokgen için yineleme formülünün iki biçimi [ kaynak belirtilmeli ] :

İşte IEEE "double" (53 bit hassasiyete sahip önemli bir değer) aritmetiği kullanan bir hesaplama:

Yineleme formülünün iki biçimi açıkça matematiksel olarak eşdeğer olsa da, [nb 14] ilki, 1'e son derece yakın bir sayıdan 1 çıkarır ve bu, önemli basamakların giderek daha sorunlu bir şekilde kaybolmasına yol açar. Tekrarlama tekrar tekrar uygulandıkça, doğruluk ilk başta iyileşir, ancak daha sonra bozulur. 53 bitlik aritmetik yaklaşık 16 basamaklı hassasiyete sahip olsa bile, asla yaklaşık 8 basamaktan daha iyi olamaz. Yinelemenin ikinci biçimi kullanıldığında, değer 15 basamaklı kesinliğe yakınsar.


Fonksiyonlar Üzerindeki İşlemlere İlişkin Çözümlü Sorular ve Açıklamalar

Soru 1

( f ) ve ( g ) fonksiyonları değerler tablosu ile verilir.

( x ) ( f(x) ) ( x ) ( g(x) )
-2 -4 -2 3
-1 10 -1 -4
0 7 1 9
1 0 2 -2
2 11 3 0
a) Mümkünse aşağıdakileri değerlendirin:
( (f - g)(-1) ) , ( (g + f)(0) ) , ( (f cdot g)(2) ) , ( (g cdot f)( 1) ) , ( (dfrac)(1) ) , ( (dfrac)(1) )
b) ( f + g ), ( f - g ), ( f cdot g ) , ( dfrac'ın alanlarını bulun ) ve ( dfrac )

Soru 2

Soru 3

4. soru


Birim Kaynakları

Dolar ve Sentlerle Toplama Numarası Hikayeleri

Dolar ve Sentlerle Çıkarma Sayı Hikayeleri

İlk Ticaret Çıkarma Algoritması

Referans Kitabım sayfa 11, 31

Eşit Grupların Katları

Referans Kitabım sayfa 112-113

Referans Kitabım sayfa 112-115

Numarayı Adlandır
(Referans Kitabım, sayfa 138)

Çarpma/Bölme Gerçek Aileleri

Referans Kitabım sayfa 37-38

Çarpma/Bölme Gerçeği Uygulaması
(CCSS Ed.)

Çarpma/Bölme Gerçeği Uygulamaları
(3. Baskı.)

Referans Kitabım sayfa 37

Hesap Makinesini Yen
(Referans Kitabım, sayfa 124)

Ebeveynler için Günlük Matematik: Çocuğunuzun Başarılı Olmasına Yardımcı Olmak İçin Bilmeniz Gerekenler

Chicago Üniversitesi Okul Matematik Projesi

Chicago Üniversitesi Yayınları


İşlem Sırası Çalışma Sayfası ve Çözümler

Amaç: Toplama ve çıkarma ile karışık işlemleri nasıl yapacağımı biliyorum.

Toplama ve çıkarmanın bir kombinasyonunu içeren hesaplamalar soldan sağa yapılır.

Çeşitli matematik konularını uygulamak için aşağıdaki ücretsiz Mathway hesap makinesini ve problem çözücüyü deneyin. Verilen örnekleri deneyin veya kendi probleminizi yazın ve adım adım açıklamalarla cevabınızı kontrol edin.

Ücretsiz matematik çalışma sayfalarının yardımcı olduğunu umuyoruz. Ebeveynleri ve öğretmenleri, konuları çocuğun ihtiyaçlarına göre seçmeye teşvik ediyoruz. Daha zor sorular için, çocuk, çözüme girmeden önce sorunu bir kağıt parçası üzerinde çözmeye teşvik edilebilir. Çocukların eğlenceli şeyleri ve bulmacaları da seveceğini umuyoruz.

Bu site veya sayfayla ilgili geri bildirimlerinizi, yorumlarınızı ve sorularınızı bekliyoruz. Lütfen geri bildiriminizi veya sorularınızı Geri Bildirim sayfamız aracılığıyla gönderin.


11.3: Sayılarla İlgili İşlemler - Matematik

oa^u =M Y u &ߤ3 ^a / ` endstream endobj 59 0 obj > endobj 60 0 obj > stream xڭR<8Ti .O % V> J23 Ƅl1 K 5[ 1 a 3 f - m [i [ ͥ * - d .v Cٞտ | | > > g ȃkn

JJ /F ء # 7 , Z x ^9 '6 S a>˖[ d :K z uw 5ȵ h *) X) [d t c . Q i[) ԽY ǹz + l | wWMYr,S fէZ f` Bu D p = N V 2 | 9 Xiͳ > endobj 6 0 nesne > endobj 9 0 nesne > endobj 8 0 nesne > endobj 7 0 nesne > endobj 17 0 nesne > endobj 16 0 nesne > endobj 10 0 nesne > endobj 40 0 ​​nesne > endobj 62 0 nesne > endobj 63 0 nesne > endobj 64 0 obj > endobj xref 0 65 0000000000 65535 f 0000001377 00000 n 0000024972 00000 n 0000023649 00000 n 0000001272 00000 n 0000000015 00000 n 0000237805 00000 n 0000238223 00000 n 0000238084 00000 0000 0000 n 0000238084 00000 0000 n 0000237945n 0000 0000 n 0000237945 00000 0000 0000 0000237945 00000 0000 0000 0000237945 00000 0000 0000 00000000 00000000 0000024864 00000 n 0000023784 00000 n 0000238500 00000 n 0000238362 00000 n 0000085294 00000 n 0000078879 00000 n 0000077445 00000 n 0000086548 00000 n 0000105703 00000 n 0000124254 00000 n 0000086440 00000 n 0000085455 00000 n 0000125879 00000 n 0000137884 00000 n 0000125771 00000 n 0000124415 00000 n 0000139032 00000 n 0000148305 00000 N 0000172876 00000 N 0000138924 00000 N 0000138033 00000 N 0000174228 00000 N 0000194348 00000 N 0000204088 00000 N 0000174120 00000 N 0000173037 00000 N 0000238746 00000 N 0000205332 00000 N 0000205224 00000 N 0000204251 00000 N 0000205446 00000 N 0000205476 00000 N 0000205522 00000 N 0000205778 00000 N 0000205934 00000 n 0000206539 00000 n 0000206981 00000 n 0000214449 00000 n 0000214779 00000 n 0000217357 00000 n 0000217588 00000 n 0000222204 00000 n 0000222451 00000 n 0000233409 00000 n 000023382300002389 00008823000023 000088 0000230000 n 0000510000 n 000059 römork ] >> startxref 239164 %%EOF


İlave

Toplama, bir araya getirilen iki kümenin veya miktarın miktarını bulmanın bir yoludur. Aritmetik bir işlemdir. Dört temel aritmetik işlem toplama, çıkarma, çarpma ve bölmedir.

İki sayının, nesnenin vb. eklenmesi, eklenen sayıların her birinin toplam sayısıdır.

Genel olarak, ilk önce saymayı öğrendikten sonra toplamayı öğrenmek daha kolaydır. Saymayı öğrendikten sonra, toplama problemini temsil eden nesneleri kullanarak toplama yapmayı öğrenerek, ardından toplamda kaç tane nesne olduğunu sayarak toplama yapılabilir.

John'un 1 topu ve Jane'in 1 topu varsa, John ve Jane'in toplam kaç topu vardır?

Her birinde 1 top olduğundan, her topun birleştirilmesi toplam 2 top ile sonuçlanır.

Eklemenin özellikleri

Toplamanın ana özelliklerinden ikisi, değişmeli özellik ve birleştirici özelliktir:

  • Toplamanın değişme özelliği - Bu özellik, bazı sayıları eklediğiniz sıranın, toplamanın sonucunu değiştirmediği anlamına gelir.
    • 2 + 3 = 3 + 2 = 5
    • 2 + 3 + 5 = (2 + 3) + 5 = 2 + (3 + 5) = 10

    Yukarıdaki özelliklerin her ikisini de kullanarak, 5 + 2 + 3 yine de 10'a eşit olacaktır, çünkü hem sayıları eklediğiniz sıra hem de ilk hangi sayıları eklediğiniz önemli değildir. Bunu bilerek, toplamayı öğrenirken, genellikle daha büyük sayı ile başlamak daha kolaydır, sonra daha küçük sayıyı eklemek, 2'ye 8 eklemek, 8'e 2 eklemekten daha kolaydır.


    11.3: Sayılarla İlgili İşlemler - Matematik

    · İfadeleri basitleştirmek için işlem sırasını kullanın.

    · Mutlak değerler içeren ifadeleri basitleştirin.

    İnsanlar, temel hesaplamaları yapmak için ortak bir dizi kurala ihtiyaç duyar. 3 + 5 • 2 neye eşittir? 16 mı 13 mü? Cevabınız, konuyu nasıl anladığınıza bağlıdır. operasyonların sırası — herhangi bir hesaplamada toplama, çıkarma, çarpma ve bölmenin gerçekleştirilme sırasını söyleyen bir dizi kural.

    Matematikçiler, birden fazla işlem içeren bir ifadede ilk olarak hangi hesaplamaları yapacağınızı söyleyen standart bir işlem sırası geliştirdiler. Hesaplama yapmak için standart bir prosedür olmadan, iki kişi aynı probleme iki farklı cevap alabilir.

    Dört Temel İşlem

    İşlem sırasının yapı taşları, Aritmetik işlemler: toplama, çıkarma, çarpma ve bölme. İşlem sırası şunları belirtir:

    • önce soldan sağa doğru çarpma veya bölme
    • sonra soldan sağa sırayla ekleyin veya çıkarın

    3 + 5 • 2 ifadesinin doğru cevabı nedir? Yukarıda listelenen işlem sırasını kullanın.

    Önce çarpın. 3 + 5 • 2 = 3 + 10

    Bu işlem sırası tüm reel sayılar için geçerlidir.

    7 – 5 + 3'ü basitleştirin · 8.

    İşlem sırasına göre çarpma, toplama ve çıkarmadan önce gelir. 3 · 8 ile çarpın.

    Şimdi soldan sağa ekleyin ve çıkarın. 7 – 5 önce gelir.

    Kesirler, ondalık sayılar ve negatif sayılar içeren ifadelere işlem sırasını uygularken, bu hesaplamaları nasıl yapacağınızı da hatırlamanız gerekecektir.

    İşlem sırasına göre çarpma, toplama ve çıkarmadan önce gelir. Önce çarpın.

    İfadeleri değerlendirirken, bazen tekrarlanan çarpmayı temsil etmek için kullanılan üsleri görürsünüz. gibi bir ifade olduğunu hatırlayın. üstel gösterim 7 için • 7. (Üssel gösterimin iki bölümü vardır: baz ve üs ya da güç. , 7 tabandır ve 2 üsse, üs tabanın kendisiyle kaç kez çarpılacağını belirler.)

    Üsler, tekrarlanan çarpma işlemlerini temsil etmenin bir yoludur. önce diğer herhangi bir çarpma, bölme, çıkarma ve toplama işlemi gerçekleştirilir.

    Bu problemin içinde üsler ve çarpma var. İşlem sırasına göre 3 2 ve 2 3'ü sadeleştirmek çarpmadan önce gelir.

    2 · 2 · 2'dir, bu da 8'e eşittir.

    Bu problemin içinde üsler, çarpma ve toplama var. İşlem sırasına göre, terimleri önce üslü olarak sadeleştirin, sonra çarpın, sonra toplayın.

    Yanlış. 4 · 5 = 20, kare 20'yi bulmuş ve sonra 100'den 400'ü çıkarmış olabilirsiniz. İşlemlerin sırası, terimi önce üsle sadeleştirmeniz, sonra çarpmanız, sonra çıkarmanız gerektiğini belirtir. = 25 ve 25 · 4 = 100 ve 100 – 100 = 0. Doğru cevap 0'dır.

    Doğru. Bu ifadeyi sadeleştirmek için, terimi önce üslü sadeleştirin, sonra çarpın, sonra çıkarın. = 25 ve 25 · 4 = 100 ve 100 – 100 = 0.

    Yanlış. İşlemlerin sırası, terimi önce üs ile sadeleştirmeniz, sonra çarpmanız, sonra çıkarmanız gerektiğini belirtir. = 25 ve 25 · 4 = 100 ve 100 – 100 = 0. Doğru cevap 0'dır.

    Yanlış. = 25'i 100'den çıkarmış ve 4 ile çarpmış olabilirsiniz. İşlemlerin sırası, terimi önce üs ile sadeleştirmeniz, sonra çarpmanız, sonra çıkarmanız gerektiğini belirtir. = 25 ve 25 · 4 = 100 ve 100 – 100 = 0. Doğru cevap 0'dır.

    İşlem sırasına göre göz önünde bulundurmanız gereken son parça, gruplama sembolleri. Bunlara parantez ( ), parantez [ ], parantez < > ve hatta kesir çubukları dahildir. Bu semboller genellikle matematiksel ifadeleri düzenlemeye yardımcı olmak için kullanılır (bunları cebirde çok göreceksiniz).

    Gruplama sembolleri, özellikle belirli bir sıra isteniyorsa, önce hangi işlemlerin yapılacağını netleştirmek için kullanılır. Gruplama sembolleri içerisinde sadeleştirilecek bir ifade varsa işlem sırasını takip ediniz.

    İşlem Sırası

    · Önce sembolleri gruplama içindeki tüm işlemleri gerçekleştirin. Gruplama sembolleri arasında parantezler ( ), köşeli ayraçlar [ ], kaşlı ayraçlar < > ve kesir çubukları bulunur.

    · Üsleri veya karekökleri değerlendirin.

    · Soldan sağa çarpma veya bölme.

    · Soldan sağa ekleyin veya çıkarın.

    Gruplama sembolleri içinde gruplama sembolleri olduğunda, içeriden dışarıya doğru hesaplayın. Yani, önce en içteki gruplama sembollerinden sadeleştirmeye başlayın.

    Parantezlerin çarpmayı göstermek için de kullanılabileceğini unutmayın. Aşağıdaki örnekte, hem bir grubu temsil etmenin hem de çarpmayı ifade etmenin bir yolu olarak parantezlerin her iki kullanımı da gösterilmiştir.


    11.3: Sayılarla İlgili İşlemler - Matematik

    Matematik görevi, java.lang.Math ve java.lang.StrictMath sınıfı tarafından sağlanan tüm temel matematiksel işlemler için destek sağlar. int, long, float ve double veri türlerini destekler. (6 + (7.25 * 3.9))/(2 * 3 * 3) gibi formüllerin hesaplanmasına veya bir yarıçap verilen bir dairenin alanının hesaplanmasına izin vermek için işlemlerin iç içe geçmesi desteklenir (eminim bu genellikle kontrollü yapılarda ortaya çıkar). Ant tarafından!).

    Java.lang.Math ve Java.lang.StrictMath sınıfları tarafından sağlanan işlemlere ek olarak, Matematik görevi birkaç ek işlem sağlar: "add", "extract", "multiply", "divide" ve "mod", sırasıyla "+", "-", "*", "/" ve "%" temel Java matematiksel işlemlerini çoğaltır. Aslında, her iki gösterim de kullanılabilir, yani işlem, yalnızca hangisinin daha uygun olduğunu düşündüğünüze bağlı olarak "ekle" veya "+" olarak ayarlanabilir.

    Tablo 11.1. Matematik Görevi Nitelikleri

    öznitelik Açıklama Varsayılan gereklidir
    sonuç İşlemin sonucunu tutacak özelliğin adı. Yok Evet
    veri tipi Hesaplamanın veri türünü ayarlar. İzin verilen değerler "int", "long", "float" veya "double"dır. İsteğe bağlı, kullanılırsa, bu matematik işlemindeki tüm sayılara uygulanacaktır. çift Hayır
    katı Doğruysa, Java.lang.StrictMath sınıfındaki yöntemleri kullanın. yanlış Hayır
    operasyon Kullanılırsa, iç içe geçmiş tüm Operasyonlar yoksayılır. Bu, basit hesaplamalar için kolaylık sağlamak içindir. Yok Hayır
    işlenen1 'İşlem' özniteliğinde belirtilen işlemle birlikte kullanılacak bir sayı. Yok Spesifik operasyona bağlıdır.
    işlenen2 'İşlem' özniteliğinde belirtilen işlemle birlikte kullanılacak bir sayı. Yok Spesifik operasyona bağlıdır.

    'sonuç' özelliği yeniden kullanılabilir.

    Matematik görevi, iç içe "Op" öğelerini destekler. Bir Op öğesi, "min" veya "add" gibi tek bir matematiksel işlemi temsil eder. Alternatif olarak, Ant 1.5+ kullanıyorsanız, işlemi etiket adından belirtebilirsiniz. Ancak, bunun yerine metin adını (+,-,/,*,% etiket adı olarak izin verilmez) kullanmalısınız.


    Uzun Bölme

    Bu bölümde basit uzun bölme işleminin bazı özelliklerini uygulayacağız. Bu konsepte aşina değilseniz, lütfen önce ana makaleye bakın, uzun bölüm.

    Uzun bölmede boşlukları doldurmada ortaya çıkan birkaç yinelenen teknik vardır. Bazı teknikler diğerlerinden daha popüler olsa da, mümkün olan en basit yöntemi kullanmak her zaman en iyisidir. İşte en dikkate değer tekniklerin bir listesi:

    YöntemKısa açıklama
    1) Uzun bölmeyi denkleme çevirmeOkuyucular için uzun bir bölümü bir denkleme dönüştürmek daha tanıdık.
    2) menzile göre elemeHangi sayıların hemen saçma bir sonuç vereceğine karar verin.
    3) Bağlamaİki veya daha fazla boşluk arasındaki ilişkiyi bağlayın.
    4) Bölünebilirlik kontrolüEğer size bölenin altında sayılar verilmişse, bölenin onu bölmek zorunda olduğunu bilirsiniz, bu yüzden bölenin bölmediklerini ortadan kaldırın.
    5) Deneme yanılmaBunu ancak yukarıdaki yöntemlerle mümkün olduğunca azalttığınızı düşündükten sonra yapın. Bu, kalan tüm kombinasyonları listeleyecek ve bir yanıt alana kadar her birini deneyecektir. Bunu yalnızca son adım/tesis olarak gerçekleştirmeniz önerilir.

    Bu teknikleri aşağıdaki örnekte uygulayalım:

    Yukarıdaki uzun bölmeyi sağlayan tüm eksik rakamların olası toplamını bulun.

    önce bize izin ver uygula (1) Uzun bölmeyi denkleme çevirme:

    X X X'i uzun bölmenin bölümü olarak ve Y Y Y'yi temettü birimi basamağı olarak belirtin.

    Sonra 9 X + 2 = 20 + Y 9X + 2 = 20 + Y 9 X + 2 = 2 0 + Y var, burada X X X ve Y Y Y negatif olmayan tek basamaklı tam sayılardır.
    Sadeleştirme üzerine 9 X = 18 + Y 9X = 18 + Y 9 X = 1 8 + Y elde ederiz.

    X X X tek basamaklı bir tam sayı olduğundan, 9 X 9X 9 X 9'a bölünebilir.
    yani biz uygula (4) Bölünebilirlik kontrolü: 18 + Y 18+ Y 1 8 + Y 9'a da bölünebilir olmalıdır.
    0 ≤ Y ≤ 9 0leq Yleq9 0 ≤ Y ≤ 9 olduğundan, yalnızca Y = 0 Y= 0 Y = 0 veya Y = 9 Y = 9 Y = 9 olur.

    Y = 0 Y = 0 Y = 0 ise 9 X = 20 + Y = 20 + 0 ⇒ X = 2 9X = 20 + Y = 20 + 0 Rightarrow X = 2 9 X = 2 0 + Y = 2 0 + 0 ⇒ X = 2 .
    Y = 9 Y = 9 Y = 9 ise, 9 X = 20 + 7 = 27 ⇒ X = 3 9X = 20 + 7 = 27 Rightarrow X = 3 9 X = 2 0 + 7 = 2 7 ⇒ X = 3 .
    Yani iki olası uzun bölümümüz var:

    Şimdi alttaki iki kutuyu doldurabiliriz: 9 × 2 = 18 9 imes2 = 18 9 × 2 = 1 8 ve 9 × 3 = 27 9 imes 3 = 27 9 × 3 = 2 7 .

    Bu nedenle, tüm eksik sayıların olası toplamları 2 + 0 + 1 + 8 = 11 2 + 0 + 1 + 8 = 11 2 + 0 + 1 + 8 = 1 1 ve 3 + 9 + 2 + 7 = 21 3'tür. + 9 + 2 + 7 = 21 3 + 9 + 2 + 7 = 2 1 . □ _kare □ ​

    Daha büyük bir uzun bölünmenin sorunu zorlaştırdığını düşünüyor musunuz? Bu biraz daha zor probleme bakalım:

    Her bir boşluğun tek basamaklı bir pozitif tamsayıyı temsil ettiği aşağıdaki uzun bölümü tamamlayın.

    En alttan başlayalım çünkü tamsayıların verildiği tek yer orası.

    Biz uygula (1) Uzun bölmeyi denkleme çevirme: 13 ile üstündeki iki basamaklı tamsayı arasındaki fark 3'tür. Yani iki basamaklı tam sayı eşittir 13 + 3 = 16 , 13 + 3= 16 , 1 3 + 3 = 1 6 , bu da 3'ün birler basamağını gösterir. -rakamlı temettü 6 olmalıdır.

    Ardından, soldaki uzun bölmede aşağıda vurgulanan kutular için (3) Bağlama uyguladığımıza dikkat edin: □ □ × □ = 1 3 color<#20A900> < square , square imes square = oxed<1>, oxed<3>> □ □ × □ = 1 ​ 3 ​ . 13 13 1 3 bir asal sayı olduğundan, çözüm yalnızca 13 × 1 = 13 13 imes1 = 13 1 3 × 1 = 1 3 olmalıdır. Böylece sağdaki uzun bölmede gösterildiği gibi ilgili kutuları doldurabiliriz.

    Şimdi geriye kalan 4 eksik basamağı bulmak kaldı. İlgili eksik parçaları bir denkleme dönüştürmek 13 × □ + 1 = 50 + □ 13 imes , square + 1= 50 + square 1 3 × □ + 1 = 5 0 + □ verir. Karışıklığı önlemek için bunu daha basit terimlerle yeniden yazalım: 13 X + 1 = 50 + Y , 13X + 1 = 50 + Y, 1 3 X + 1 = 5 0 + Y , burada XXX ve YYY tek basamaklı negatif olmayan tam sayılardır . Sadeleştirme üzerine 13 X = 49 + Y 13X = 49 + Y 1 3 X = 4 9 + Y elde ederiz. Tarafından (4) Bölünebilirlik kontrolü, 49 + Y 49 + Y 4 9 + Y 13'e bölünebilir olmalıdır, bu yalnızca Y = 2 Y = 2 Y = 2 ve dolayısıyla X = 4 X = 4 X = 4 anlamına gelir. Bu nedenle, uzun bölme işlemini aşağıdaki gibi tamamlayabiliriz:

    kullanmadığımızı fark ettiniz mi? (5) Deneme yanılma hiç mi? Çünkü buna gerek yoktu. Bunu ancak tüm çabalarımızı tükettikten sonra uygulamalıyız.

    Artık uzun bölmeli aritmetik bulmacaları nasıl çözeceğinizi öğrendiğinize göre, topluluğumuz tarafından yapılan bazı bulmacaları deneyin!

    Yukarıdaki, 2 tamsayı arasındaki uzun bir bölümü gösterir; alttaki son kutu, bölümün sıfırdan farklı kalanını temsil eder. Her kutu bir belirgin tek basamaklı pozitif tam sayı.

    Tüm olası çözümlerden, bu uzun bölümün geri kalanı için yalnızca 1 olası değer vardır. Bu ne?

    Yukarıdaki, 2 tamsayı arasındaki uzun bir bölümü gösterir, alttaki son kutu bölümün geri kalanını temsil eder. Her kutu tek basamaklı negatif olmayan bir tam sayıyı temsil eder.

    Eksik sayıların toplamı kaçtır?

    Yukarıdaki, bölenin kalandan kesinlikle büyük olduğu ve bölümün tek basamaklı bir sayı olduğu uzun bir bölmeyi göstermektedir.

    Her kutuyu ayrı, negatif olmayan tek bir rakamla doldurmak mümkün müdür?


    Videoyu izle: Sayma: Bir Sayının Rakamlarının Yer Değiştirmesi ile Oluşan Tüm Sayıların Toplamı (Aralık 2021).