Diyelim ki bir Excel elektronik tablosundaki A1 hücresinin 3 sayısını taşıdığını varsayalım . Formülü girersem
= - A1^2 + A1
A2’de A2, -6 (veya -9 + 3) gösterdiğinde, 12 sayısını gösterir.
Neden? Bu yanıltıcı davranışı nasıl önleyebilirim?
Diyelim ki bir Excel elektronik tablosundaki A1 hücresinin 3 sayısını taşıdığını varsayalım . Formülü girersem
= - A1^2 + A1
A2’de A2, -6 (veya -9 + 3) gösterdiğinde, 12 sayısını gösterir.
Neden? Bu yanıltıcı davranışı nasıl önleyebilirim?
Yanıtlar:
Kısa cevap
Bu sorunu çözmek için, eşittir işaretinden önce sadece 0 ekleyin.
= 0 - A1^2 + A1
veya standart işlem sırasını zorlamak için birkaç parantez ekleyin
= - (A1^2) + A1
veya eksi işaretini çarpma işleminin ortak yorumuyla -1 yaparak
= -1 * A1^2 + A1
Ekstra + A1 terimine sahip olduğunuz bu durumda, en iyi çözüm @ lioness99a tarafından önerilen çözümdür:
= A1 - A1^2
Detaylı açıklama
Excel'in sözleşmeleri uyarınca,
= - 3^2
eşittir (-3) ^ 2 = 9
= 0-3^2
eşittir 0-9 = -9.
Neden sadece 0 eklemek sonucu değiştirir?
Bir minuend tarafından önce gelmeyen, eksi işareti -3 ^ 2 olan, izleyen sayı (veya ifadenin) işaretini değiştiren tek bir operatör olan (yalnızca bir argümanla birlikte) bir olumsuzlama operatörü olarak kabul edilir . Ancak, 0-3 ^ 2 eksi işareti olan çıkarma operatörü ne şu çıkaran ikili operatörüdür, -
önce gelen ne -
. Excel'in sözleşmelerine göre, üs işletmecisi ^
, olumsuzlama işletmecisinden sonra ve çıkarma işletmecisinden önce hesaplanır . Bkz "Excel'de Hesaplama operatörleri ve öncelik" bölümüne "Excel formülleri işlemleri gerçekleştirme sırası".
Standart matematiksel kongre olmasıdır üs alma hesaplanır olumsuzlama ve çıkarma hem öncesinde , ya da daha basitçe ifade ^
önce hesaplanır -
. Utanç verici bir şekilde, Excel cebir kuralları, okul kitapları, akademik yazılar, bilimsel hesap makineleri, Lotus 1-2-3, Mathematica, Maple, Fortran veya Matlab, MS Works gibi dillere dayalı hesaplamalar gibi farklı sözleşmeler seçti . Excel'in makrolarını yazmak için kullanılan dil). Ne yazık ki, LibreOffice ve Google Sheets'ten Calc, Excel ile uyumluluk için aynı kurallara uyuyor. Ancak, Google’ın arama kutusuna veya çubuğuna bir ifade koymak, mükemmel sonuçlar verir. Enter tuşuna basarsanız parantez kullanarak hesaplamaların sırası verilecektir. Bir matematikçinin, üstelleşme üzerine olumsuzluğun önceliğini savunan bir "bilgisayar bilimcisi" argümanlarını öldürdüğü bir tartışma: http://mathforum.org/library/drmath/view/69058.html
Genel Geçici Çözümler
Hesaplamak istiyorsan
- Anything ^ 2,
eşittir işaretinden önce 0 ekleyin
0 - Anything ^ 2
veya standart işlem sırasını zorlamak için birkaç parantez ekleyin
- ( Anything ^ 2 )
veya eksi işaretini çarpma işleminin ortak yorumuyla -1 yaparak
-1 * Anything ^ 2
Yukarıdaki seçeneklerden eksi işaretinden önce 0 eklemeyi tercih ediyorum çünkü en pratik olanı. İfade zaten parantez içine alınmışsa, parantez eklemekten kaçınırım. Parantezlerin yoğun kullanımı ifadelerin okunmasını, hata ayıklanmasını ve yazılmasını zorlaştırır.
Ek bir terim eklenirse (veya güç sorunu olmadan çıkarılırsa),
- Anything ^ 2 + ExtraTerm,
En iyi çözüm, ExtraTerm’i önce yerleştirmek,
ExtraTerm - Anything ^ 2.
Başka bir cevaba yapılan yorum, standart olmayan öncelik kuralının farkında olmanız gereken tek durumun, eksi işaretinin eşit bir işareti (= -) takip ettiği durum olduğunu söylüyor. Bununla birlikte, = exp (-x ^ 2) veya = (- 2 ^ 2 = 2 ^ 2) gibi eksi işaretinden önce bir minimum işaretin olmadığı başka örnekler de vardır.
Başlangıçta yazdığım kısa bir cevabı önerdiği için @ BrueWayne'e teşekkürler.
Excel'e göre ilginizi çekebilir , 4 ^ 3 ^ 2 = (4 ^ 3) ^ 2. Bu gerçekten standart matematiksel kongre mi?
Rodolfo'nun Yanıtından biraz daha özlü, kullanabilirsiniz:
=-(A1^2)+(A1)
(Düzenleme: Tamamen kendi kendine bir soru / cevap olduğunu görmedim.)
Bir lider -
, ilk terimin bir parçası olarak kabul edilir.
=-3^2
olarak işlenir (-3)^2 = 9
Başlangıçta sıfır olduğunda, normal çıkarma olarak kabul edilir.
=0-3^2
olarak işlenir 0 - 3^2 = -9
Eğer iki operatörünüz varsa, o zaman aynı şey olur.
=0--3^2
olarak işlenir 0 - (-3)^2 = -9
ve
=0+-3^2
olarak işlenir0 + (-3)^2 = 9
Çünkü Excel denkleminizi şöyle yorumluyor:
(-x) ^ 2 + x
İstediğin zaman:
- (x ^ 2) + x
Bu tür istenmeyen davranışları önlemek için en iyi uygulamanın, kendi öncelikli sisteminizi tanımlamak için parantezin yoğun şekilde kullanılmasıdır, çünkü olumsuzlama çıkarma ile aynı değildir ve dolayısıyla PEMDAS tarafından kapsanmaz. Bir örnek şöyle olurdu:
(- (x ^ 2)) + x
Overkill olabilir, ancak Excel'in istediğim gibi davranmasını garanti ediyorum.
x - x^2
. Bu, --'nın ikili çıkarma operatörü olarak yorumlanmasını sağlar.
İfade = - A1^2 + A1
Excel'e özgüdür, bu nedenle Excel kurallarına uymalısınız. Buradaki diğer bazı cevapların aksine, doğru öncelik sırası yoktur . Farklı uygulamaların kabul ettiği sadece farklı sözleşmeler var. Referans olarak, excel tarafından kullanılan öncelik sırası şudur:
: Range
<space> intersection
, union
- Negation
% Percentage
^ Exponential
* and / Multiplication and Division
+ and - Addition and Subtraction
& Concatenation
= < > <= >= <> Comparison
Parantez kullanarak geçersiz kılabileceğiniz.
-
tekli veya ikili olabilir. Ancak bu, işlem sırası anlamına gelmez. Diğer diller bunu haklı çıkarır: Python, Ruby, Octave, Awk ve Haskell'de (akla gelen bir üs operatörüne sahip ilk beş dil), -3 ** 2
her zaman değerlendirir -9
. Neden? Çünkü bu doğru cevap.
Her iki şekilde de alabilirsin:
=-A1^2+A1
12 döndürecek , ancak:
=0-A1^2+A1
-6 döndürecek
12'ye geri dönmenin sağduyuya aykırı olduğunu düşünüyorsanız ; Google Sheets'in de aynı şeyi yaptığını unutmayın.
=A1-A1^2
ayrıca -6
Alternatif olarak, sadece yapabilir
= A1 - A1^2
Çünkü -y + x = x-y
Diğer insanlar "bundan nasıl kaçınabilirim?" Diye cevapladılar. sorunun bir parçası. Sana bunun neden olduğunu söyleyeceğim.
Bunun nedeni, 1979’daki kişisel bilgisayarların hafızası ve işlem kapasitesi çok sınırlıydı.
VisiCalc , IBM PC'nin piyasaya sürülmesinden iki yıl önce (çoğu modern masaüstü ve dizüstü bilgisayarların doğrudan atalarını takip ettiği) 1979'da Apple II için tanıtıldı . Apple II 64 KiB (65,536 bytes) RAM'e sahip olabilir ve VisiCalc'ın çalışması için en az 32 KiB gerekliydi. Burada bir parça olarak, VisiCalc oldukça yaygın olarak Apple II ve genel olarak kişisel mikrobilgisayarlar için "katil uygulama" olarak kabul edilir.
Daha az özel durum ve daha az formül ön görmesi gerekir, daha basit (ve sonuç olarak daha küçük) bir elektronik tablo formülünü ayrıştırma kodu yapılabilir. Bu nedenle, daha büyük elektronik tablolarla başa çıkabilmek için kullanıcının köşe durumlarda biraz daha açık olmasını zorunlu kılmak mantıklı olacaktır. Unutmayın, bir üst seviye Apple II ile bile, uygulamanın gerektirdiği hafızanın hesaba katılmasından sonra oynamak için sadece birkaç kilobaytınız vardı. Düşük bellek sistemiyle (48 KiB RAM "ciddi" bir makine için nadir bir yapılandırma değildi), limit daha da düşüktü.
IBM bilgisayarlarını tanıttığında, yeni mimariye bir VisiCalc limanı yapıldı. Wikipedia bu bağlantı noktasını "hata uyumlu" olarak adlandırır ; bu nedenle, sistem teknik olarak daha karmaşık ayrıştırma yeteneğine sahip olsa bile, tam olarak aynı formül ayrıştırma davranışını görmeyi beklersiniz.
1982'den başlayarak, Microsoft VisiCalc ve daha sonra 1-2-3 arasındaki Multiplan platformlar arası e-tablolarıyla rekabet etti . Daha sonra, Lotus 1-2-3 1983'te özellikle IBM PC için tanıtıldı ve üzerinde hızlı bir şekilde VisiCalc'i devraldı. Geçişi kolaylaştırmak için, her ikisinin de formülleri VisiCalc ile aynı şekilde ayrıştırması mantıklı geldi. Böylece sınırlı ileriye dönük davranış ileriye taşınacaktı.
1985 yılında Microsoft , orijinal olarak Macintosh için ve 1987'de PC'ye 2. sürümden başlayarak Excel'i tanıttı . Yine, geçişi kolaylaştırmak için, insanların şimdiye dek neredeyse on yıldan beri alıştıkları formül ayrıştırma davranışını ilerletmek mantıklı geldi.
Her Excel yükseltme işleminde, davranışı değiştirme fırsatı vardı, ancak kullanıcıların yalnızca formülleri yazmanın yeni bir yolunu öğrenmesini sağlamakla kalmayıp, önceki sürümde kullanılan veya oluşturulan e-tablolarla uyumluluğu bozma riskini de doğuracaktı. Her alanda birbirleriyle rekabet eden çok sayıda ticari şirketin bulunduğu oldukça rekabetçi bir pazarda, kullanıcıların alışkın olduğu davranışı koruma kararı alındı.
2019'a hızlı bir şekilde devam edin ve hala en geç 1978-1979'da verilen formül ayrıştırma davranış kararları ile takılıp kaldık.
İfade - A1^2
iki operatör, yani birleşik olumsuzlama operatörü -
ve ikili üstelleştirme operatörü içerir ^
. Herhangi bir parantez yokken, iki yorum olabilir. Ya:
-(A1^2)
veya:
(-A1)^2
İlki birinci işlenenler ile üs yapmak diyor A1
ve 2
ve ardından bu konuda olumsuzlamasıydı yapmak.
İkincisi, ilk önce operand üzerinde olumsuzlamayı yapıp, A1
ardından bunun üzerinde üsteli kullandığını söylüyor 2
.
Sorunun yorumunda da belirtildiği gibi, Powers'ın herhangi bir aklı başında bulunduğu ortamdaki eksi işaretlerinden daha yüksek önceliği var. Bunun anlamı, bir sistem ilki alırsa en iyisidir.
Ancak Excel ikincisini tercih ediyor.
Ders, ortamlarınızın aklı başında olup olmadığından emin değilseniz, güvenli tarafta olacak parantezi içermesidir. Öyleyse yaz -(A1^2)
.
Bu, excel ile değil üst ve negatiflerle ilgili bir problemdir. Bir sayı alıp eşit bir güce yükseltirseniz, negatif işaretini iptal edersiniz.
-x^2 + x == (-x * -x) + x
x = 3 => (-3 * -3) + 3
== 9 + 3 => 12
Parantez kullanmalısınız. -1
-1 * (x^2) + x
-x^2
x'in 3 ve x^2
x'in -3 olduğu arasındaki farkı not edin . -x^2+x
asla 12'ye ulaşmayacak: wolframalpha.com/input/?i=-x%5E2%2Bx
-x ^ 2 + x burada x = 3 Bu ikinci dereceden bir denklem örneğidir Denklem şöyle yazılabilir: -3 * -3 + 3: Çarpma eklemeye göre önceliklidir, bu nedenle sonuç aşağıdaki gibi yazılır: 9 + 3 : Neden = 9, çünkü negatif sayı xa negatif sayı, pozitif sonuç verir. Bu, herhangi bir hesap makinesi, slayt kuralı veya herhangi bir bilgisayar matematik programı kullanılarak doğrulanabilir. Sonuç 9 + 3 = 12
Bu sadece gerçekten basit bir matematik.
Kural 1. Negatif sayıların çarpımları bile pozitif sonuç verecektir:
eksi * eksi = artı
eksi * eksi * eksi = eksi
eksi * eksi * eksi * eksi = artı
Bunun nedeni, eksilerin birbirlerini çiftler halinde iptal etmeleridir.
Kural 2. Her sayının gücü, bu sayının kendisiyle birkaç kez çarpılacağını tanımlar.
(2) ^ n, ki burada n = 2 => 2 * 2 = 4
(-2) ^ n, ki burada n = 2 => (-2) * (-2) = 4
Ve 1 numaralı kuralı görebiliyorsan ..
(-3) ^ n, ki burada n = 3 => (-3) * (-3) * (-3) = 9 * (-3) = -27
Kural 3. Çarpma ve Bölme, toplama ve çıkarma işlemlerinden daha yüksek önceliğe sahiptir.
3 * 5 + 2 = 15 + 2 = 17
3 * (5 + 2) = 3 * 7 = 21
Ve sorunuzun cevabı var:
3 kuralı önceden birleştirmek:
-x ^ 2 + x, burada x = 3 => -3 ^ 2 + 3 = 9 + 3 = 12
Size tavsiyem her yıl biraz zaman harcamak ve matematiğin temel kurallarını yenilemeye devam etmektir.
Aslında, sadece temel matematiği bilerek, dünyanın büyük bir bölümünün üzerinde tutabileceğiniz ve kalabileceğiniz bir beceridir.
+-*/
, gibi -
veya gibi unary operatörleri gibi ikili operatörler için geçerlidir +
. Güç operatörünün önceliği, öncekinden daha yüksektir *
ve /
ancak tekli operatörlerin önceliği daha da yüksektir