Bir sayının faktöriyeli önemli bir matematiksel kavramdır. Permütasyonlar ve kombinasyonlar gerçekleştirmek, üstel ve logaritmik ifadeler yazmak ve olasılık hesaplamak için kullanabilirsiniz.

Bir oturma düzeni tasarlamanın veya Maldivler tatiliniz için tişörtleri seçmenin farklı yollarını bulmak için bunu kullanırsınız. Ancak bir sayının faktöriyelini nasıl hesaplayabilirsiniz?

Bir Sayının Faktöriyeli Nedir?

Pozitif bir sayının faktöriyeli, sayının değerinden küçük veya ona eşit olan tüm pozitif tam sayıların çarpımıdır. Ardından ünlem işareti(!) gelen bir sayı, bir sayının faktöriyelini belirtir. Beşin faktöriyelini 5 olarak temsil ediyorsunuz! ve şu şekilde hesaplayın:

5! = 5 * 4 * 3 * 2 * 1 = 120

Bunu görselleştirmenin başka bir yolu da şudur:

5! = 5 * 4! nerede 4! = 4 * 3!, 3! = 3 * 2! ve böylece 1 alana kadar! = 1 * 0! ki bu 1.

Bu kavramı, özyineleme adı verilen popüler bir kavramı kullanarak faktöriyel programımızı oluşturmak için kullanacaksınız.

Özyineleme Nedir?

Özyineleme, bir işlevin kendisini çağırdığı bir süreçtir. Bu sürecin ana avantajlarından biri, daha büyük bir sorunu daha küçük parçalara ayırmasıdır. Bu, sorunun çözülmesini kolaylaştırır.

instagram viewer

Uygun sorunları üç kolay adımda çözmek için özyinelemeyi kullanabilirsiniz:

  1. Temel durumu bulun: Bir fonksiyon her zaman kendini çağırırsa, süreç sonsuz olacaktır. Bunun olmasını önlemek için, işleviniz için mantıksal durma noktası haline gelen bir temel durum tanımlayın. Örneğin, bir faktöriyel programında, hesaplamayı sıfırda durdurun. Bu, sorunun temel durumu haline gelir.
  2. Problem ve alt problemler arasındaki ilişkiyi bulun: Daha büyük sorunu bir alt soruna bölün. Örneğin, problem beşin faktöriyelini bulmaktır. Yanıtınızın faktöriyel dört olduğunu varsayalım, bu 24'tür. 24'ü kullanarak beşin faktöriyelini nasıl elde edeceksiniz? Kendini beşle çarparak. Problem ile altproblem arasındaki ilişki budur.
  3. Adım 2'de bulunan ilişkiyi genelleştirin: Artık bağıntıya sahip olduğunuza göre, bunu n cinsinden genelleştirin. Yani, n sayısının faktöriyeli, n'nin ve n-1'in faktöriyelinin çarpımıdır.

Bu konsepti şu amaçlarla kullanabilirsiniz: n doğal sayının toplamını bulun, OBEB, EKOK, Fibonacci serisini hesaplayın ve asal sayıları kontrol edin.

Özyinelemeyi Kullanan Faktöriyel Fonksiyon için Sözde Kod

Bu özyinelemeyi nasıl kullanıyorsunuz? ve programınızı herhangi bir dilde oluşturmak için sözde kodu yazın. Farklı dillerde sözdizimi ve yürütme değişir, ancak mantık bozulmadan kalır.

işlevHakikat(N)
eğer n == 0 Daha sonra // temel durum
Geri dönmek1
Geri dönmek n * Çağrı Bilgisi (n - 1) // genelleştirilmiş ilişki

C Faktöriyel Programı

C, ilk üst düzey, platformdan bağımsız programlama diliydi. Katı sözdizimine sahiptir, büyük/küçük harfe duyarlıdır ve kodu en hızlı şekilde yürütür. Prosedürel bir programlama dilidir ve bu nedenle herhangi bir işlevi ana işlev. C dilinde özyinelemeyi kullanarak faktöriyel programı şu şekilde oluşturabilirsiniz:

C, Java ve Python'da özyineleme kullanan faktöriyel programın tüm kaynak kodunu burada bulabilirsiniz. GitHub deposu.

  1. Çıktıyı ekranda görüntülemek için standart girdi çıktı başlık dosyasını içe aktarın.
    #katmak <stdio.h>
  2. Fonksiyon tanımla hakikat ve tamsayı al N bir argüman olarak.
    inthakikat(int N){
  3. kullanarak fonksiyonun temel durumunu yazın. eğer ifadesini kullanın ve eşitliğini kullanarak kontrol edin ==. n sıfıra eşitse, bir döndürür.
     eğer (n == 0)
    geri dönmek1;
  4. Genelleştirilmiş denklemi yazın ve ürününü döndürün N alt problemin işlev çağrısı ile n-1.
    geri dönmek n * gerçek (n - 1);
    }
  5. Ana işlevi bildirin ve faktöriyelini bulmak istediğiniz sayıyı depolamak için tamsayı türünde bir değişken başlatın.
    intana(){
    int sayı = 5;
  6. kullanarak sayının faktöriyelini görüntüleyin. printf() işlev. %D ondalık biçim belirleyicisidir. Faktöriyelini bulmak istediğiniz sayıyla değiştirmek için biçim belirticilerinin her birini kullanın ve işlevi çağırarak sonucu alın.
     printf("%d'nin faktörü %d'dir", sayı, gerçek (say));
    geri dönmek0;
    }

Java'da Faktöriyel Programı

Java derlenmiş bir programlama dilidir ve platformdan bağımsızdır. Tüm kodu bir içinde saklarsınız. sınıf ve yürütme başlar ana işlev. Büyük/küçük harfe duyarlıdır ve sözdizimi katıdır. Kod, Python'a kıyasla biraz daha uzun ama daha hızlı. Java'da özyinelemeyi kullanarak faktöriyel programı şu şekilde oluşturabilirsiniz:

  1. Ana sınıfı tanımlayın.
    sınıfAna{
  2. Tamsayı türünde bir n değişkenini kabul eden, int dönüş türünde statik bir işlev tanımlayın. Java'daki ana yöntem de statik olarak bildirildiği için statik bir yöntem bildirdiniz. Ek olarak, statik bir örnekten statik olmayan bir yöntemi çağıramazsınız.
    statikinthakikat(int N){
  3. kullanarak fonksiyonun temel durumunu yazın. eğer ifadesini kullanın ve eşitliğini kullanarak kontrol edin ==. n sıfıra eşitse, bir döndürür.
     eğer (n == 0)
    geri dönmek1;
  4. Genelleştirilmiş denklemi yazın ve ürününü döndürün N alt problemin işlev çağrısı ile n-1.
    geri dönmek n * gerçek (n - 1);
    }
  5. Java'da ana işlevi bildirin. Erişim değiştiricisini şu şekilde bildirin: halk, böylece diğer tüm sınıflar ve yöntemlerle erişilebilir. Ana işlevi şu şekilde beyan edersiniz: statik böylece derleyici, sınıfı başlatmadan onu çağırabilir. dönüş tipi geçersiz, ve tür argümanlarını kabul eder Sicim. Faktöriyelini bulmak istediğiniz sayıyı kaydedin.
    halkstatikgeçersizana(Dize[] bağımsız değişkenler){
    int sayı = 5;
  6. Kullan println() yönteminin bir örneği, Baskı Akışı sınıfında tanımlanan Sistem sayının faktöriyelini gösteren sınıf.
     System.out.println("Faktöriyeli " + sayı + " dır-dir " + gerçek (sayı));
    }
    }

Python'da Faktöriyel Programı

Python'da kod yazmak çok kolay ve eğlencelidir. Yorumlanan platformdan bağımsız bir dil olduğu için, değişkenlerin veri türünü bildirmeniz gerekmez. Ayrıca, bu kadar basit bir program için sınıfları bildirmek ve kitaplıkları içe aktarmak zorunda kalmazsınız. Oyun alanı, kodlamaya başlamanız için hazır.

Sözdizimi, küçük bir kod uzunluğuyla daha kolaydır, ancak yürütülmesi diğer dillere göre biraz daha fazla zaman alır. Python'da özyinelemeyi kullanarak faktöriyel programı şu şekilde oluşturabilirsiniz:

  1. n bağımsız değişkeni olarak kabul edilen işlev olgusunu tanımlayın.
    kesinhakikat(N):
  2. kullanarak fonksiyonun temel durumunu yazın. eğer ifadesini kullanın ve eşitliğini kullanarak kontrol edin ==. n sıfıra eşitse, bir döndürür.
     n == 0 ise:
    geri dönmek1
  3. Genelleştirilmiş denklemi yazın ve ürününü döndürün N alt problemin işlev çağrısı ile n-1.
    geri dönmek n * gerçek (n-1)
  4. Faktöriyelini bulmak istediğiniz sayıyı saklayın ve print deyimini kullanarak görüntüleyin.
    sayı = 5;
    Yazdır("Faktöriyeli", sayı, "dır-dir", gerçek (sayı))

Özyinelemenin Birçok Uygulaması Vardır

Özyineleme, problem çözmenin etkili bir yoludur. Yapay Zekanın en önemli noktasıdır ve satranç veya Sudoku gibi bulmaca oyunlarında gerçek dünyada kullanımları vardır.

Ayrıca, Ağaç gibi veri yapılarını sıralamak veya Hızlı sıralama ve Birleştirme sıralaması gibi sıralama algoritmaları için güçlü bir yöntemdir. İkili arama gibi arama algoritmalarında, Fibonacci serisi gibi matematiksel ifadelerde ve daha fazlasında özyinelemeyi de kullanabilirsiniz.