Matematiksel İfadelerin Kod Karşılıkları

Yazılım geliştirmeye başladığımdan beri sürekli olarak matematiksel ifadeler karşıma çıktı. Her seferinde ne olduklarını ve nasıl yazıldıklarını anlamaktan kaçıp onun yerine hazır yazılmış kodları kullanmak her zaman daha kolay geldi. Kodu okumak matematiksel ifadeyi okumaktan çok daha kolay gelmiştir.
Bu belkide şu ana kadar matematiği o kadar sevmediğimden kaynalıdır. Bir yazılımcı olarak matematiğe daha fazla önem vermem gerektiğinin farkındayım.
Öncelikle basit matematiksel teoremlerin gösterimi ile başlayalım. Ben kolay anlaşılması için örnekleri Python ile yapacağım.
Her zaman için uzun ve karmaşık teoriler ile boğuşmaktansa basitten zora giden pratikler üzerinde çalışmak çok daha açıklayıcı ve anlamlı geldi. Bende örneklerimde teori yerine pratikler ile anlatmayı tercih ettim.

Temel İşlemler

Python Kodu Matematiksel İfade
1
2
3
i = 10
j = 20
x = 2 * i * j
$$ i:=10\\ j:=20\\ x:=2ij\\ $$
1
abs(-128)
$$ | -128 | $$
1
2
A = [1, 2, 3, 4, 5, 6]
status = 3 in A
$$ A = \{ 1, 2, 3, 4, 5, 6 \}, 3 \in A $$
1
2
A = [1, 2, 3, 4, 5, 6]
status = 20 not in A
$$ A = \{ 1, 2, 3, 4, 5, 6 \}, 20 \notin A $$
1
2
a = [1, 2, 3, 4, 5, 6]
print(a[1] * a[2])
$$ a = \{ 1, 2, 3, 4, 5, 6 \} \\a_1a_2 $$

Kök İşlemi

Python Kodu Matematiksel İfade
1
2
3
import math
x = 10
print(math.pow(math.sqrt(x), 2))
$$(\sqrt{x})^2$$
1
2
import math
math.sqrt(9) * 10
$$ \sqrt{9} * 10 $$

Fonksiyon

Python Kodu Matematiksel İfade
1
2
def f(n):
return 2 * n
$$ f(n) = 2n $$
1
2
3
import math
def f(n):
return math.pow(n, 5) + (4 * math.pow(n, 2)) + 2
$$f(n) = n^5 + 4n^2 + 2 $$
1
2
3
import math
def f(n, m):
return math.pow(n, m)
$$f(n, m) = n^m $$
1
2
3
4
5
6
def f(n, m):
if n == m:
return 0
if n > m:
return 1
return -1
$$\begin{equation} f(n) = \begin{cases} 0 & n = m\\1 & n > m\\ -1 & \text{otherwise} \end{cases}\end{equation}$$
Fibonacci fonksiyonu
1
2
3
4
5
6
def f(n):
if n == 0:
return 0
if n == 1:
return 1
return f(n - 1) + f(n - 2)
$$\begin{equation} f(n) = \begin{cases} 0 & n = 0\\1 & n = 1\\ f(n-1) + f(n-2) & \text{otherwise} \end{cases}\end{equation}$$

Toplama İşlemi (Sigma)

Python Kodu Matematiksel İfade
1’den 101’e kadar sayıların toplamı
1
2
3
sum = 0
for i in range(1, 101):
sum = sum + i
$$ \sum_{i=1}^{100} i $$
1’den 101’e kadar sayıların 2 ile çarpılarak 5 ile toplamının toplamı
1
2
3
sum = 0
for i in range(1, 101):
sum = sum + (2 * i + 5)
$$ \sum_{i=1}^{100} (2i + 5) $$
İç içe iki tane döngünün sayılarının çarpımının toplamı
1
2
3
4
sum = 0
for i in range(1, 6):
for j in range(1, 11):
sum = sum + (i * j)
$$ \sum_{i=1}^{5} \sum_{j=1}^{10} ij $$
1’den 101’e kadar sayıların toplamının 2. kuvveti
1
2
3
4
5
import math
sum = 0
for i in range(1, 101):
sum = sum + i
print(math.pow(sum, 2))
$$ \Bigg(\sum_{i=1}^{100} i\Bigg)^2 $$
1
2
3
4
import math
sum = 0.0
for i in range(1, 101):
sum = sum + (1 / math.sqrt(i))
$$ \sum_{i=1}^{100} \frac{1}{ \sqrt{i}} $$
1
2
3
4
a = [1, 2, 3, 4, 5, 6]
sum = 0.0
for i in range(100):
sum = sum + a[i]
$$ a = \{ 1, 2, 3, 4, 5, 6 \} \\ \sum_{i=0}^{99} a_i $$
1
2
3
4
5
6
7
x = [1.1, 3.4, 2.1, 0.6, 0.4, 1.8, 4.1]
y = [1.4, 4.8, 0.4, 1.1, 1.4, 3.5, 1.3]

sum = 0.0
for i in range(len(x)):
sum = sum + math.pow(x[i] - y[i], 2)
cost = sum / (2 * len(x))
$$ x = \{ 1.1, 3.4, 2.1, 0.6, 0.4, 1.8, 4.1 \} \\y = \{ 1.4, 4.8, 0.4, 1.1, 1.4, 3.5, 1.3 \} \\ \\Cost = \frac{ \sum_{i=1}^{m} (x_i-y_i)^2}{2m} $$

Aslında matematik göründüğünden daha basit. Önemli olan gördüğünü okuyabilmek.

NOT: devamı gelecek…