Anasayfa » nasıl » Bilgisayar Algoritmaları Nedir ve Nasıl Çalışır?

    Bilgisayar Algoritmaları Nedir ve Nasıl Çalışır?

    Matematik veya programlama yapmıyorsanız, “algoritma” kelimesi sizin için Yunanca olabilir, ancak bu makaleyi okumak için kullandığınız her şeyin yapı taşlarından biridir. İşte bunların ne olduğunu ve nasıl çalıştıklarını gösteren hızlı bir açıklama..

    Yasal Uyarı: Ben bir matematik veya bilgisayar bilimi öğretmeni değilim, bu yüzden kullandığım terimlerin tümü teknik değil. Çünkü ben insanlar için basit bir İngilizceyi açıklamaya çalışıyorum çünkü insanlar matematikle ilgili çok rahat değiller. Olduğu söyleniyor, bazı matematik var ve bu kaçınılmaz. Matematik meraklıları, yorumlarda düzeltmek veya daha iyi açıklamaktan çekinmeyin, ancak lütfen aramızdaki matematiksel olarak ayrılanlar için basit tutun.

    Tarafından görüntü Ian Ruotsala

    Algoritma Nedir??

    'Algoritma' kelimesi 'cebir'e benzer bir etimolojiye sahiptir, bunun dışında Arap matematikçinin kendisi, el-Hwarizmi (sadece ilginç bir haberleşme) anlamına gelir. Aramızdaki programcı olmayanlar için bir algoritma, bir A girişini ve bir şekilde ilgili verileri değiştiren bir B çıkışı sağlayan bir komut dizisidir. Algoritmalar çok çeşitli uygulamalara sahiptir. Matematikte, çok daha gelişmiş şeyler arasında, bir veri setindeki noktalardan fonksiyonların hesaplanmasına yardımcı olabilirler. Programlamanın kendisinde kullanılmasının yanı sıra, dosya sıkıştırma ve veri şifreleme gibi şeylerde önemli roller oynamaktadırlar..

    Temel Bir Talimat Kümesi

    Diyelim ki arkadaşınız bir markette sizinle buluşuyor ve onu size doğru yönlendiriyorsunuz. “Sağ kapıdan gir”, “soldaki balık bölümünü geç”, “süt görüyorsanız beni geçtiniz” gibi şeyler söylüyorsunuz. Algoritmalar böyle çalışıyor. Önceden bildiğimiz ölçütlere dayalı talimatları göstermek veya işlem sırasında öğrenmek için bir akış şeması kullanabiliriz.

    (“Icebreaking Routine” EDIT başlıklı resim EDIT: Tetikleyici ve Freewheel'in izniyle)

    BAŞLAT'dan yola çıkacaktınız ve ne olduğuna bağlı olarak, sonuçtaki “akışı” takip ediyorsunuz. Akış çizelgeleri, bilgisayarlar tarafından kullanılan bir dizi talimatı daha anlaşılır bir şekilde temsil edebilen görsel araçlardır. Benzer şekilde, algoritmalar matematik tabanlı modellerle aynı şeyi yapmanıza yardımcı olur.

    Grafikler

    Yön verebileceğimiz çeşitli yolları göstermek için bir grafik kullanalım..

    Bu grafiği tüm noktaları arasında bir bağlantı olarak ifade edebiliriz. Bu resmi çoğaltmak için başkasına bir dizi talimat verebiliriz..

    Yöntem 1

    Bunu bir dizi nokta olarak temsil edebiliriz ve bilgi standart grafik biçimini izler = (x1, y1), (x2, y2),…, (xn, yn).

    grafik = (0,0), (3,0), (3,3), (5,5), (7,10), (8,7), (9,4), (10,1)

    Her noktayı birbiri ardına çizmek ve bir önceki noktaya bağlamak oldukça kolaydır. Bununla birlikte, her biri hangi yöne gittiğini gösteren binlerce veya birden fazla kesimi içeren bir grafik hayal edin. Bu listenin çok fazla verisi olacak, değil mi? Ve sonra her birini teker teker bağlamak zorunda kalmak acı verici olabilir..

    Yöntem 2

    Yapabileceğimiz bir diğer şey bir başlangıç ​​noktası vermek, onunla bir sonraki nokta arasındaki çizginin eğimi ve standart grafik biçimini kullanarak bir sonraki noktanın nerede olacağını belirtmek = = ((başlangıç ​​noktası, [m1, x1, h1) ],…, [Mn, xn, hn] Burada, 'm' değişkeni satırın eğimini temsil eder, 'x' sayılacak yönü gösterir (x veya y olsun) ve 'h' size nasıl olduğunu söyler söylenen yönde sayılacak bir çok kişi Her hareketten sonra bir nokta çizmeyi hatırlayabilirsin..

    grafik = (0,0), [0, x, 3], [0, y, 3], [1, x, 2], [2.5, x, 2], [-3, x, 1], [-3, x, 1], [-3, x, 1]

    Aynı grafikle bitirdiniz. Bu ifadedeki son üç terimin aynı olduğunu görebilirsiniz, bu yüzden sadece bir şekilde “üç kez tekrarlayın” diyerek bunu kısaltabiliriz. Diyelim ki 'R' değişkeni göründüğünde, bu son şeyi tekrarlamak demektir. Bunu yapabiliriz:

    grafik = (0,0), [0, x, 3], [0, y, 3], [1, x, 2], [2.5, x, 2], [-3, x, 1], [R '= 2]

    Bireysel noktalar gerçekten önemli değilse ve sadece grafiğin kendisi ne olur? Bu son üç bölümü şu şekilde birleştirebiliriz:

    grafik = (0,0), [0, x, 3], [0, y, 3], [1, x, 2], [2.5, x, 2], [-3, x, 3]

    İşleri daha önce oldukları yerden biraz kısaltır.

    Yöntem 3

    Bunu başka bir şekilde yapmayı deneyelim.

    y = 0, 0≤x≤3
    x = 0, 0≤y≤3
    y = x, 3≤x≤5
    y = 2.5x-7.5, 5≤x≤7
    y = -3x + 29, 7≤x≤8
    y = -3x + 29, 8≤x≤9
    y = -3x + 29, 9≤x≤10

    İşte saf cebirsel anlamda var. Bir kez daha, eğer puanlar kendileri için önemli değilse ve sadece grafik fark ederse, son üç öğeyi birleştirebiliriz..

    y = 0, 0≤x≤3
    x = 0, 0≤y≤3
    y = x, 3≤x≤5
    y = 2.5x-7.5, 5≤x≤7
    y = -3x + 29, 7≤x≤10

    Şimdi, hangi yöntemi seçeceğiniz yeteneklerinize bağlıdır. Belki matematikte ve grafiklerde harikasın, bu yüzden son seçeneği seçtin. Belki navigasyon konusunda iyisindir, yani ikinci seçeneği seçersin. Bununla birlikte, bilgisayarlar alanında, birçok farklı türde iş yapıyorsunuz ve bilgisayarın kabiliyeti gerçekten değişmiyor. Bu nedenle, algoritmalar tamamladıkları görevler için optimize edilmiştir.

    Dikkat edilmesi gereken bir diğer önemli nokta, her yöntemin bir anahtara dayandığıdır. Her talimat seti, onlarla ne yapacağınızı bilmiyorsanız işe yaramaz. Her noktayı çizmeniz ve noktaları birleştirmeniz gerektiğini bilmiyorsanız, ilk nokta kümesi hiçbir şey ifade etmez. Her bir değişkenin ikinci yöntemde ne anlama geldiğini bilmiyorsanız, bir şifrenin anahtarı gibi bunları nasıl uygulayacağınızı bilemezsiniz. Bu anahtar aynı zamanda algoritmaları kullanmanın ayrılmaz bir parçasıdır ve bu anahtar toplulukta veya bir “standart” aracılığıyla bulunur.

    Dosya Sıkıştırması

    Bir .zip dosyası indirdiğinizde, içeriğini çıkartabilirsiniz, böylece içindeki herhangi bir şeyi kullanabilirsiniz. Günümüzde, işletim sistemlerinin çoğu normal klasörler gibi .zip dosyalarına dalabilir ve arka planda her şeyi yapabilir. Windows 95 makinemde on yıl önce, içindeki dosya adlarından başka bir şey görmeden önce her şeyi manuel olarak çıkarmak zorunda kaldım. Çünkü diskte bir .zip dosyası olarak depolananlar kullanılabilir bir biçimde değildi. Çekmeli bir kanepe düşünün. Yatak olarak kullanmak istediğinizde, minderleri çıkarmanız ve açmanız gerekir, bu da daha fazla yer kaplar. İhtiyacınız olmadığında veya taşımak istediğinizde, geriye katlayabilirsiniz.

    Sıkıştırma algoritmaları, özellikle hedefledikleri dosya türleri için ayarlanır ve optimize edilir. Örneğin, ses formatları, ses kodeki tarafından kodu çözüldüğünde orijinal dalga formuna benzer bir ses dosyası verecek olan verileri saklamak için farklı bir yol kullanır. Bu fark hakkında daha fazla bilgi için, Tüm Bu Ses Formatları Arasındaki Farklar Nedir? Adlı önceki makalemize bakın. Kayıpsız ses formatları ve .zip dosyalarının ortak bir özelliği vardır: her ikisi de, dekompresyon işleminden sonra orijinal verileri tam formunda verir. Kayıplı ses kodekleri, insan kulağı tarafından duyulamayan kırpma frekansları ve bazı detaylardan kurtulmak için dalga formunu bölümler halinde düzleştirmek gibi disk alanından tasarruf etmek için başka araçlar kullanır. Sonunda, bir MP3 ile CD parçası arasındaki farkı gerçekten duyamayabilirken, kesinlikle öncekilerde kesinlikle bilgi eksikliği var..

    Veri şifreleme

    Algoritmalar, veri veya iletişim hatlarını güvenceye alırken de kullanılır. Verileri daha az disk alanı kullanacak şekilde depolamak yerine, diğer programlar tarafından algılanamayacak şekilde depolanır. Birisi sabit sürücünüzü çalarsa ve taramaya başlarsa, dosyaları silseniz bile verileri toplayabilir, çünkü verilerin bulunduğu yere gitse bile, veriler hala oradadır. Veri şifreli olduğunda, depolanan her ne olduğu gibi görünmüyor. Parçalanma zaman içinde birikmiş gibi, genellikle rastgele görünüyor. Ayrıca verileri saklayabilir ve başka bir dosya türü olarak görünmesini sağlayabilirsiniz. Görüntü dosyaları ve müzik dosyaları bunun için iyidir, çünkü şüphe çekmeden oldukça büyük olabilirler. Bütün bunlar, bir tür girdi alan ve onu başka, çok özel bir çıktı türüne dönüştüren matematiksel algoritmalar kullanılarak yapılır. Şifrelemenin nasıl çalıştığı hakkında daha fazla bilgi için HTG'nin Açıklaması: Şifreleme Nedir ve Nasıl Çalışır??


    Algoritmalar, bilgisayar bilimlerinde çeşitli kullanımlar sağlayan matematiksel araçlardır. Başlangıç ​​noktası ile bitiş noktası arasında tutarlı bir yol bulmak için bir yol göstermeye çalışırlar ve bunu takip etmek için talimatlar verirler. Vurguladığımızdan daha fazlasını biliyor musunuz? Yorumlarınızı açıklamalarda paylaşın!