Python Bir Sayının Faktöriyelini Bulan Program

⚡ Akıllı Özet

Bir sayının faktöriyelinin Python Bu sayıya kadar olan tüm pozitif tamsayıların çarpımıdır. Python Bunu bir for döngüsü, if-else kontrolü, özyineleme veya yerleşik math.factorial() fonksiyonu kullanarak hesaplar.

  • 🔘 Döngü için: Faktöriyel oluşturmak için 1'den n'ye kadar yinelemeli olarak, ardışık bir çarpım işlemi uygulayın.
  • ☑️ Eğer-aksi kontrolü: Negatif girişlere karşı önlem alın, aksi takdirde hata döndürün çünkü faktöriyel hesaplaması negatif olmayan tamsayılar gerektirir.
  • özyineleme: Bir fonksiyon, 0 temel durumuna ulaşana kadar kendini n-1 kez çağırır.
  • 🧪 matematik.faktöriyel(): Matematiksel ifadeleri içe aktarın ve hızlı, test edilmiş bir sonuç için yerleşik bir fonksiyonu çağırın.
  • Sınır durumlar: 0'ın faktöriyeli 1'e eşittir ve Python Çok büyük sonuçları doğal olarak işleyebilir.
  • 🤖 Yapay zeka ve veri bilimi: Olasılık, kombinatorik ve SciPy gibi kütüphaneler diziler üzerinde faktöriyel kullanır.

Python Bir Sayının Faktöriyelini Bulan Program

Aşağıdaki bölümlerde faktöriyel hesaplamanın dört yolu gösterilmektedir. Python — for döngüsü, if-else versiyonu, özyineleme ve math.factorial() fonksiyonu — ayrıca temel algoritma ve uygulamaları.

Döngü için Kullanarak Bir Sayının Faktöriyeli

Örneği ele alalım Python Pozitif tamsayıları girdi olarak alan ve pozitif tamsayıların faktöriyelini hesaplayan kod. Aşağıdaki kodda, döngü 1 ile başlar ve ardından faktöriyeli belirlenecek olan sayıdan önceki her sayıyla çarpar.

Aşağıdaki Python kod, bir döngü kullanarak faktöriyel fonksiyonu gösterir.

Python Kod:

print ("Input a number")
factorialIP = int (input ())
ffactor23 = 1
for j in range (1, factorialIP+1):
   ffactor23 = ffactor23 * j
print ("The factorial of the number is “, ffactor23)

Çıktı:

Input a number
4
The factorial of the number is 24

Yukarıdaki Python Bu program yalnızca pozitif sayıları girdi olarak alır ve negatif sayılar için herhangi bir kontrol içermez. Bu programda, j 1'e eşit olduğunda çarpan 1 olur. j 2 olduğunda, çarpan 2 ile çarpılır ve bu işlem j 4'e ulaşana kadar devam eder ve sonuç 24 olur.

IF…else İfadesini Kullanarak Bir Sayının Faktöriyeli

Aşağıdaki Python Bu kod, bir fonksiyon kullanarak faktöriyel fonksiyonunu göstermektedir. Döngü tabanlı versiyonun aksine, bu program faktöriyel hesaplamadan önce negatif sayıları da kontrol etmektedir.

Önceki Python Kodda negatif sayılar için kontrol uygulanmadığı için faktöriyel fonksiyonu eksik kalmış ve negatif sayılar girildiğinde hata mesajı verme olasılığı artmıştır.

Verilen kodda, döngü 1 ile başlar ve her bir önceki sayıyla çarpar; ayrıca fonksiyon, negatif sayıları da kontrol eder.

Python Kod:

print("Enter a number for the purpose of determining factorial")
factorialIP = int(input())
def factorial(factorialIP):
   if factorialIP < 0:
     print ('Factorial does not exist')
     factor=0
     return factor
   elif factorialIP == 0:
     factor=1
     return factor
     print(factor)
   else:
     factor = 1
     for j in range (1, factorialIP+1):
       factor = factor * j
     return factor
  print ("The factorial of the number is ", factorial(factorialIP))

Çıktı:

1) Enter a number to determine factorial
   -4
   Factorial does not exist
   The factorial of the number is 0

2) Enter a number to determine factorial
   4
   Factorial does not exist
   The factorial of the number is 24

Bu Python Program pozitif sayıları kabul eder ve if ve else ifadelerini kullanarak negatif sayılar için de kontrol ekler; 4 girdisi için doğru şekilde 24 sonucunu döndürür.

Özyinelemeyi Kullanarak Bir Sayının Faktöriyeli

Aşağıdaki Python Bu kod, özyinelemeli bir yapı kullanarak faktöriyel fonksiyonunu göstermektedir. Bu örnekte, girdi olarak pozitif bir tamsayı alan özyinelemeli bir fonksiyon, faktöriyel sayısını belirler.

Python Kod:

print("Enter a number for the purpose of determining factorial")
def factorial(num2):
  if num2 < 0:
    return 'Factorial does not exist'
  elif num2 == 0:
     return 1
  else:
     return num2 * factorial(num2-1)
number1 = int(input())
print("The factorial of the number is",factorial(number1))

Çıktı:

Enter a number for the purpose of determining factorial
4
The factorial of the number is 24

Özyineleme, çağrılan işlevin olduğu bir kavram olarak açıklanabilir. Python Bu modül kendini tekrar tekrar çağırabilir. Çalışması şu ana kadar devam eder: Python Modülde mevcut olan koşul sağlanır ve çağrılan fonksiyona bir değer iletilir.

Yukarıda Python Programda, `def factorial` fonksiyonu, sayı sıfıra ulaşana kadar kendini özyinelemeli olarak çağırmaya devam eder. Sayı sıfıra ulaştığında, sayıyı 1 olarak başlatır ve özyinelemeyi sonlandırır.

math.factorial() kullanarak bir sayının faktöriyelini hesaplamak

Aşağıdaki Python kodu, math modülünü içe aktararak kullanılabilecek math.factorial() işlevini kullanarak faktöriyel fonksiyonunu gösterir.

Bu fonksiyon negatif tamsayıları kabul etmez ve ondalık sayılar verildiğinde değer hatası verir.

Python Kod:

print("Enter a number for computing factorial")
import math
number1 = int(input())
print("The factorial is as computed comes out to be ")
print(math.factorial(number1))

Çıktı:

Enter a number for computing factorial
4
The factorial, as computed, comes out to be 24

Faktöriyel Programı Algoritması Python

Faktöriyel kavramını gösteren bir örnek ele alalım.

Faktöriyel 5'in belirlenmesi için şu adımları izleyin:

5! = 5 x (5-1) x (5-2) x (5-3) x (5-4)
5! =120

İşte, 5! 120 olarak ifade edilir.

Aşağıdaki diyagram faktöriyel hesaplama algoritmasını anlamanıza yardımcı olacaktır. Bu durumda faktöriyel 4 örneğini ele alalım!

Faktöriyel Programı Algoritması

Algoritma ve faktöriyel 4'ün resimli örneği!

Faktöriyelin Uygulanması Python

Bir sayının faktöriyelinin matematikte geniş bir uygulama alanı vardır. İşte önemli uygulamalar Python:

  • Python hesaplamaya yardımcı olur ve bunu diğer mevcut programlama dillerine göre daha hızlı ve daha verimli bir şekilde yazdırma faktöriyeliyle takip eder.
  • MKS Python kod kolayca anlaşılabilir ve farklı platformlarda kopyalanabilir ve faktöriyel Python program çeşitli matematiksel model oluşturma ödevlerine dahil edilebilir.

SSS

Pozitif bir tam sayı n'nin faktöriyeli, n! olarak yazılır ve 1'den n'ye kadar olan tüm pozitif tam sayıların çarpımıdır. Örneğin, 5! 5 × 4 × 3 × 2 × 1 = 120'ye eşittir.

Tanım gereği 0'ın faktöriyeli 1'dir. Her yöntem — döngü, özyineleme veya math.factorial() — 0 girdisi için 1 döndürür ve bu temel durum özyinelemeli çağrıları da durdurur.

Evet. Python Tamsayıların hassasiyeti sınırsızdır, bu nedenle math.factorial(100) taşma olmadan 158 basamaklı bir sonuç döndürür. Yalnızca bellek ve çalışma süresi giriş boyutuyla birlikte artar.

A döngü için Genellikle tercih edilir. Her ikisi de O(n) zamanında çalışır, ancak döngü sabit bellek kullanırken, özyineleme, erişilebilen bir çağrı yığını ekler. Python'nin özyineleme sınırı.

Her standart yöntem n−1 çarpma işlemi gerektirir, bu nedenle zaman karmaşıklığı O(n)'dir. Yinelemeli döngü O(1) alan kaplarken, özyineleme çağrı yığını için O(n) alan kullanır.

Derin özyineleme aşabilir PythonVarsayılan sınır yaklaşık 1000 çağrıdır. Büyük girdiler için yinelemeli bir for döngüsü veya math.factorial() kullanın ya da sys.setrecursionlimit() ile sınırı yükseltin.

Evet. Faktöriyel hesaplamaları, birçok makine öğrenimi modelinin temelini oluşturan Poisson ve binom dağılımları gibi kombinatorik ve olasılık dağılımlarında karşımıza çıkar. Veri bilimi kütüphaneleri ayrıca diziler için vektörleştirilmiş faktöriyel yardımcıları da sunmaktadır.

Evet. GitHub Copilot ve benzeri yapay zeka asistanları, kısa bir komut isteminden döngü, özyinelemeli ve math.factorial() sürümlerini oluşturur. Negatif sayı koruması ve 0! temel durumu için öneriyi her zaman gözden geçirin.

Bu yazıyı şu şekilde özetleyin: