"Herhangi bir programlama dili matematikte olduğu gibi değişken kullanıyor mu?" Başlıklı soruya cevap vermek için: C, C #, Java, C ++ ve diğer C tarzı dil değişkenleri matematikte kullanıldığı şekilde kullanır.
= Yerine == kullanmanız yeterlidir.
Eğer orijinalini alırsam
root(square(x)) = abs(x)
Sonra sözdizimi dışında herhangi bir değişiklik olmadan doğrudan C # çevirebilir.
Math.Sqrt(Math.Pow(x,2)) == Math.Abs(x)
Bu, x karesi kullandığınız veri türü için maksimum değerden az olduğu sürece x'in herhangi bir değeri için true olarak değerlendirilir.
(Java çok benzer olacak, ancak Math ad alanının biraz farklı olduğuna inanıyorum)
Derleyici, bir işlemin geri dönüşünü başka bir işleme atayamayacağımı bilecek kadar akıllı olduğundan bu sonraki bit C # 'da derlenemez.
Math.Sqrt(Math.Pow(x,2)) = Math.Abs(x)
Değişmezliğin bununla hiçbir ilgisi yoktur. Değeri değiştirilemez bir dilde atamanız gerekir ve belirli bir dilin bunu operatör olarak = kullanarak seçmeyi tamamlaması mümkündür.
Konuyu daha da ispatlayan bu döngü, x'in yasal değerlerini tüketip taşma istisnası elde edene kadar çalışır:
while (Math.Sqrt(Math.Pow(x, 2)) == Math.Abs(x))
{
++x;
System.Console.WriteLine(x);
}
Bu yüzden matematikçiler ödev için = kullanımından nefret ederler. Onları karıştırıyor. Bence bu sizi şaşırttı. Örneğini al
y = (x**2)**.5
x *= 2
assert y == abs(x)
Bunu cebire çevirdiğimde, şunu elde ederim:
abs (2x) = kök (x ^ 2)
Tabii ki 0 dışındaki değerler için doğru değildir. Değişmezlik, orijinal denklemin Sol Tarafı ve Sağ Tarafını değerlendirmek arasında fazladan adımlar eklediğinizde sizi yalnızca x değerini değiştirme hatasından kurtarır. Aslında değişmez var nasıl sen ifadeyi değerlendirir.