Yazılım ve Matematik arasındaki ilişki?

Suskun

Kıdemli Üye
23 Ocak 2012
2,767
679
Germany
giphy.gif


Selamlar,
bugün sizlere yazılım ve matematik arasındaki ilişkiden bahsedeceğim. Öncelikle matematiğin önemini bilmemiz gerekmektedir. Galileo Galilei matematik hakkında çok güzel bir söz söylemiştir,


Doğanın muazzam kitabının dili matematiktir.

Galileo Galilei

Galileo Galilei İtalyan astronom, fizikçi, mühendis, filozof ve matematikçidir. Galileonun bu sözü her şeyi açıklamaktadır. Matematik kabul edelim veya etmeyelim her yerde karşımıza çıkacaktır.

Yazılım alanında da matematik ile karşılaşacaksınız. Örnek vermek gerekirse kullanmakta olduğumuz bilgisayar, cep telefonu, tablet gibi tüm elektronik cihazlarda bir ve sıfır ile işlem yapabilmekteyiz yani yazılımın çalıştığı sistemin temeli de matematiğe dayanmaktadır.

Yazılım geliştirmekte olan kişiler matematiği temel seviyede olsa da bilmek zorundadırlar. Bazen öyle algoritmalar kurmanız gerekecektir ki matematiği temel alarak kurabileceksiniz.

Örnek olarak bir kod yazdınız ve size bu kodun her koşulda en iyi çözüm olduğunu ispatlayın dediler. Bu aşamada yazdığınız kodun, kurduğunuzun algoritmanın analizini yaparak matematiksel olarak açıklanmış bir çözüm sunmanız gerekir.

Çok basit bir soru ile yazıma son vermek istiyorum. Aşağıdaki soruyu istediğiniz programlama dilini kullanarak çözebilirsiniz.

Kullanıcının dışarıdan girdiği sayıya kadar olan sayıların birden başlayarak toplamını en optimum ve çalışma zamanı açısından en hızlı olacak kodu yazınız. Örnek kullanıcı 5 girerse 1-5 kadar olan sayıların toplamını bulacaksınız.

Bu sorunun bir çok çözümü vardır. Bize en hızlı ve optimum çalışan algoritmayı kurmanız gerekmektedir.

Bir çok kişi 1’den başlayan bir döngü kurarak kullanıcının girdiği değere kadar devam eden ve bu sayıları toplayarak kullanıcının girdiği değere ulaştığında sonlanan bir algoritma kurmaktadır.


public static **** main(String[] args) {
double kullaniciDegeri = 1;
double toplam = 0;
for (int i = 1; i <= kullaniciDegeri; i++) {
toplam = toplam + i;
}
}

Bu yöntemde bir çözümdür. Fakat her zaman daha iyi ve daha basit çözüm vardır. Carl Friedrich Gauss‘un bulduğu formül bize daha hızlı ve daha iyi bir çözüm olabilir. Gauss 1-n kadar olan sayıların toplamını veren bir formül bulmuştur.

Formül: (n*(n+1))/2

Gauss formülünü kullanarak bu problem için daha iyi ve daha hızlı bir sonuç elde etmiş oluruz.

Sonuç olarak bu kadar basit görünen 1-n kadar sayıların toplamını bulmak için kod yazmadan önce matematiğini düşünmek gerekir.


7z0AWK.png


"*"
 
Son düzenleme:
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.