Neler yeni

Programlamada & Matematikte Tek Fonksiyonlar (1 Viewer)

Mesajlar
107
Credits
0
Öncelikle bu yazıyı tamamen kendim yazdım ufak tefek tanımları wikipediadan aldım. Burda bahsettiğim fonksiyonun tanımıi tekliği, çiftliği, tersinin alınabilmesi... matematiğin ve kodlamanın temel düzenini oluşturur.
Bu makalede göreceğiniz matematik lise müfredatından biraz üst seviyede olacak. Yazma amacım
fonksiyonları ve kodlamayı tanımak. Tersine işlemin ne durumlarda geçerli olduğunu göstermek.
MD5 SHA1 ve daha nice fonksiyonun temelini neden tersinin alınamadığını yazıyorum.



Fonksiyon Tanımı

Fonksiyon dediğimiz şey bir kümenin elemanlarını işleme tabi tutarak , işlem sonucunda elde ettiği yeni elemanlar ile yeni bir küme oluşturur. Fonksiyonun ilk başta kullandığı elemanlar ("tanım kümesini") oluşturur.
Fonksiyondan çıkan elemanlar ise ("değer kümesini") oluşturur. Bunu görselleştirelim.



Ama bu görüntü kümesi ney ? Falan diyeceksiniz. Şimdi görüntü ve değer kümesi tanımlarını size vereyim.
Ardından bi karşılaştıralım.





Görüntü Kümesi

Matematikte görüntü kümesi bir fonksiyonun tüm girdi değerlerinin kümesinin veya daha kesin bir söylemle tanım kümesinin tüm elemanlarının fonksiyon tarafından gönderildiği kümedir.




Değer Kümesi

Matematikte verilmiş bir fonksiyonun değer kümesi, fonksiyonun tanımlı olduğu "çıkış" değerlerinin oluşturduğu kümedir. Örneğin, kosinüsün değer kümesi [-1; 1] gerçel sayılar aralığıyken gerçel sayılarda karekök fonksiyonunun değer kümesi bütün gerçel sayılardır.


Yani değer kümesinde açıkta eleman varken görüntü kümesinde olamaz. Eğer görüntü kümesinde bir eleman boştaysa o zaman fonksiyon(yazılımımız ve ya cebirsel denklemimiz) orada tanımsızdır.
Tanımsızlık yani (0/0) Fonksiyonun paydasının sıfır olma durumudur. Değere yansıtamama durumu.
Pythonda bir sayıyı 0'a bölmeyi denediğinizde aldığınız hatanın sebebi budur. Ama limit kavramına ileride değineceğiz. Şimdilik bu kadarı yeterli. Devam edelim.



Fonksiyon Olma Kuralları

Bir kümeden eleman alıp onlara işleme sokan her şeye fonksiyon diyemeyiz. Bu tanımsal bir durumdur.
Öncelikle tüm kombinasyonlardan sonra :

1-) Boşta eleman kalmamalı.
2-) Tanım kümesindeki her elemanın değer kümesinden en az 1 elemanlaeşleşmeli.






İşin Yazılımsal Kısmı


Ben python kullanıcam. Pythonda iki yolla fonksiyon tanımlayabilirsiniz. Biri def kullanarak ve ya lambda şeklinde. Aynı işi yapan 2 fonksiyonu farklı şekilde yazıyorum.

Kod:
## x için girdiğimiz değeri 2 ile toplayacak
def f(x):
   x+2
f(x)

Kod:
## burda da aynı işi yapan bir fonksiyon göreceksiniz.
f(x) = x +2
x = (int(input("Tanım kümesinden bir eleman giriniz= "))
print "Görüntüdeki karşılığı =" + f(x)   ## burda f(x) yerine x+2 de diyebiliriz.





KOORDİNAT SİSTEMİ(X,Y)/(APSİS,ORDİNAT)

Bu sistem fonksiyonların değer kümesini dik kesişen iki doğru ile vektörel olarak gösterilmesine denir.
x = tanım kümesi
y = değer kümesi
Doğruda yatayda seçtiğiniz her elemanın dikeydeki karşılıkları bir nokta temsil eder. Sonsuz noktanın birleşimi size fonksiyon grafiğini verir.

Tabi programlada her fonksiyonun grafiğini göremiyoruz. Ama kodlamada yazdığımız her fonksiyonun değer ve görüntü kümesi vardır. Bunlar görsel değil veriseldir. Byte bit 111010101... gibi elemanlar vardır.



Örnek bir fonksiyon grafiğine bakalım.


x**2 parabolünün sola ötelenmiş hali. Daha önce bahsettiğim tanımsızlık durumundan da bir örneğe bakalım.
Tabi matematiksel çözümünü anlatmam için Limit konusunu anlatmam gerekir. Ama sadece götüntü kümesinin grafiksel olarak boş kaldığını o tanım kümesindeki elemandan çıktı alınmadığını görmüş oluruz.



Buna cebirsel bir örnek verebiliriz.
Kod:
[(2x^3 + x^2 + 3x +9)/x-3] = y (yada) = f(x)

Burda sorun şu ki grafikle gösterimde x=3 noktası yani tanım kümesindeki 3 elemanı fonksiyona girdiğinde;
payda sıfır oluyor. Kısacası Matematik size siktiri çekiyor. Sıfıra bölemezsin diyor. Burda fonksiyon asimptot oluşturuyor x=3 asimptotu yani kesikli bir çizgi. Fonksiyon kesinlikle asimptota deymiyor. Ama çok yaklaşıyor.
Bu sonsuza giderek yaklaşma olayına işte limit diyoruz.







Nmap, nikto, hash algoritmaları,sqlmap. Bunların hepsi birer fonksiyondur. Biz Hash algoritmalarına bakıcaz.
bir kelimeyi hashleyebiliyoruz da neden hashden geri alamıyoruz. Ne saçma iş dediğiniz illa ki olmuştur.
Bunun için fonksiyonların tekliğine ve çiftliğine bakacağız.



TEK VE ÇİFT FONKSİYONLAR







Bir fonksiyonda derecesi en büyük değişkenin kuvvetinin tek ya da çift olması fonksiyonu tek yada çift yapar.
Çift fonksiyonun tersi alınamaz. Çünkü tersini aldığınızda tanım ve görüntü kümesi yer değiştirmiş olur.

f(a)=x
f(b)=x

olursa eğer. tersini aldığımızda f^-1(x)= ?

bu sorunun cevabı a mı b mi ?Tanım kümesindeki eleman karşı taraftan yalnızca bir elemanla eşleşebilir.
zaten bu bir fonksiyon olsaydı grafiği çizilemezdi. Çünkü x değeri için hem a hem b çıktısı alınır.


Not:
Fonksiyonun tersi orjine göre simetriktir. Tek ve çift fonksiyonların grafiklerini orjine göre simetri almaya çalıştığınızda fonksiyon kuralına uymadığını rahatlıkla görebilirsiniz.


MD5 ALGORİTMASI(Çift Fonksiyon)

Çift fonkiyona parabolü örnek vermiştim. Yani iki tane eleman görüntü kümesinde aynı elemanla eşleşiyo.

x^2 = y
x= -4 için y= 16
x= 4 için y = 16

Md5de de durum böyle

kelim1 ===> dabv876a8v768a7b6a876876bavcc
kelime2 ==> dabv876a8v768a7b6a876876bavcc

gördüğünüz gibi 2 farklı kelime aynı şekilde çıktı verdi. Siz bunu geri çevirmeye çalıştığınızda fonksiyon ters fonksiyona dönecek ve çıktı veremeyecek. Evet onca matematikten sonra sebebine geldik Allah'a şükür.
Durum benzer hash algoritmalarında da aynı.
 

Bu konuyu görüntüleyen kullanıcılar