Semifakultät Rechner

Online Berechnung der Doppelfakultät n!! für Kombinatorik und Geometrie


🔢 Semifakultät n!!

Berechnung der Doppelfakultät für Kombinatorik und Geometrie

!!
Natürliche Zahl (0 ≤ n ≤ 300)
🔢
Semifakultät: n!! = n × (n-2) × (n-4) × ... multipliziert jede zweite Zahl.
⚠️ Fehler:

Geben Sie eine natürliche Zahl n ein und klicken Sie auf Berechnen um die Semifakultät (Doppelfakultät) zu ermitteln. Die Semifakultät n!! ist das Produkt aller positiven ganzen Zahlen ≤ n, die dieselbe Parität (gerade/ungerade) haben wie n, und findet Anwendung in der Kombinatorik, bei perfekten Paarungen und in der Geometrie von Hyperkugeln.


💡 Semifakultät

\(n!! = n \times (n-2) \times (n-4) \times \cdots = \prod_{k=0}^{\lfloor n/2\rfloor} (n - 2k)\)


Die Semifakultät verstehen

Die Semifakultät (auch Doppelfakultät genannt) einer nichtnegativen ganzen Zahl n, geschrieben als n!!, ist das Produkt aller positiven ganzen Zahlen ≤ n, die dieselbe Parität (gerade/ungerade) haben wie n. Für gerade n beginnt die Folge bei 2, für ungerade n bei 1. Diese Funktion tritt häufig in kombinatorischen Formeln auf, insbesondere bei der Zählung perfekter Paarungen, und spielt eine wichtige Rolle in Formeln für Volumen und Oberfläche von Hyperkugeln.

🔢 Definition

Mathematische Formen:

\(n!! = n \times (n-2) \times (n-4) \times \cdots\)
\(n!! = \prod_{k=0}^{\lfloor n/2\rfloor} (n - 2k)\)
📊 Eigenschaften
  • • 0!! = 1, (-1)!! = 1
  • • Gerade: 2, 4, 6, 8, ...
  • • Ungerade: 1, 3, 5, 7, ...
  • • n!! = n × (n-2)!!
  • • Langsamer als n!
🎯 Anwendungen
  • • Perfekte Paarungen
  • • Hyperkugel-Volumina
  • • Kombinatorische Formeln
  • • k-Fakultäten
⭐ Beziehungen
  • • n! = n!! × (n-1)!!
  • • (2n)!! = 2ⁿ × n!
  • • (2n-1)!! = (2n)!/(2ⁿ × n!)
  • • Stirling-ähnliche Näherung

Mathematische Eigenschaften

🔢 Grundlegende Eigenschaften

Wichtige mathematische Eigenschaften der Semifakultät:

\[\text{Definition: } n!! = \prod_{k=0}^{\lfloor n/2\rfloor} (n - 2k)\] \[\text{Rekursion: } n!! = n \times (n-2)!! \text{ für } n \geq 2\] \[\text{Basis: } 0!! = 1, \quad (-1)!! = 1\] \[\text{Gerade Zahlen: } (2n)!! = 2^n \times n!\] \[\text{Ungerade Zahlen: } (2n-1)!! = \frac{(2n)!}{2^n \times n!}\]

🔄 Verbindung zur Fakultät

Beziehungen zwischen n! und n!!:

\[\text{Fundamentale Beziehung: } n! = n!! \times (n-1)!!\] \[\text{Gerade Zahlen: } (2n)!! = 2^n \times n!\] \[\text{Ungerade Zahlen: } (2n+1)!! = \frac{(2n+1)!}{2^n \times n!}\] \[\text{Allgemeine Form: } (2n)! = (2n)!! \times (2n-1)!! = 2^n \times n! \times (2n-1)!!\]

📊 Wichtige Werte

Häufig verwendete Semifakultäten:

\[\text{Gerade: } 0!! = 1, \quad 2!! = 2, \quad 4!! = 8, \quad 6!! = 48, \quad 8!! = 384\] \[\text{Ungerade: } 1!! = 1, \quad 3!! = 3, \quad 5!! = 15, \quad 7!! = 105, \quad 9!! = 945\] \[\text{Größere Werte: } 10!! = 3{.}840, \quad 12!! = 46{.}080, \quad 15!! = 2{.}027{.}025\]

Praktische Anwendungsbeispiele

📝 Beispiel 1: Perfekte Paarungen

Aufgabe: Anzahl perfekter Paarungen von 2n Personen
Gegeben: 6 Personen (3 Paare)
Berechnung:

\[\text{Anzahl perfekter Paarungen} = (2n-1)!! = 5!!\] \[5!! = 5 \times 3 \times 1 = 15\] \[\text{Allgemein für } 2n \text{ Personen: } (2n-1)!!\] \[\text{Für 8 Personen: } 7!! = 7 \times 5 \times 3 \times 1 = 105\]

Interpretation: 6 Personen können auf 15 verschiedene Arten in 3 Paare aufgeteilt werden

📝 Beispiel 2: Hyperkugel-Volumen

Aufgabe: Volumen einer n-dimensionalen Einheitskugel
Formel: Abhängig von gerader/ungerader Dimension
Berechnung:

\[\text{n-dimensionales Kugelvolumen: } V_n = \frac{\pi^{n/2}}{\Gamma(n/2 + 1)}\] \[\text{Für gerade } n = 2k: V_{2k} = \frac{\pi^k}{k!}\] \[\text{Für ungerade } n = 2k+1: V_{2k+1} = \frac{2^{k+1} \pi^k}{(2k+1)!!}\] \[\text{Beispiel: } V_5 = \frac{2^3 \pi^2}{5!!} = \frac{8\pi^2}{15}\]

Anwendung: Geometrie in höheren Dimensionen

📝 Beispiel 3: Stirling-Näherung

Aufgabe: Asymptotische Näherung für große n
Formeln: Unterschiedlich für gerade/ungerade n
Berechnung:

\[\text{Für gerade } n: n!! \sim \sqrt{\pi n} \left(\frac{n}{e}\right)^{n/2}\] \[\text{Für ungerade } n: n!! \sim \sqrt{2n} \left(\frac{n}{e}\right)^{n/2}\] \[\text{Beispiel für } n = 20: 20!! \sim \sqrt{20\pi} \left(\frac{20}{e}\right)^{10} \approx 654{.}729{.}075\] \[\text{Exakt: } 20!! = 3{.}715{.}891{.}200\]

Bedeutung: Nützlich für große Werte und asymptotische Analyse

Anwendungen in verschiedenen Bereichen

🎯 Kombinatorik
  • • Perfekte Paarungen
  • • Catalán-Zahlen
  • • Motzkin-Zahlen
  • • Schröder-Zahlen
📐 Geometrie
  • • Hyperkugel-Volumina
  • • Oberflächen höherer Dimensionen
  • • Sphärische Koordinaten
  • • Integraltransformationen
🔬 Physik
  • • Quantenmechanik
  • • Statistische Mechanik
  • • Phasenraumintegrale
  • • Mehrteilchensysteme
🔢 Analysis
  • • Gamma-Funktionen
  • • Mehrdimensionale Integrale
  • • Asymptotische Entwicklungen
  • • Erzeugende Funktionen

Implementierung und Code

💻 Code-Implementierungen

Effiziente Implementierung der Semifakultät:

Python:
def double_factorial(n):
  """Berechnet die Semifakultät (Doppelfakultät) n!!"""
  if n < -1:
    raise ValueError("n muss >= -1 sein")
  if n <= 1:
    return 1
  
  result = 1
  while n > 0:
    result *= n
    n -= 2
  return result

# Rekursive Version
def double_factorial_recursive(n):
  if n <= 1:
    return 1
  return n * double_factorial_recursive(n - 2)

# Mit Fakultät
import math
def double_factorial_via_factorial(n):
  if n % 2 == 0: # gerade
    k = n // 2
    return (2 ** k) * math.factorial(k)
  else: # ungerade
    return math.factorial(n) // double_factorial(n - 1)

JavaScript:
function doubleFactorial(n) {
  if (n < -1) throw new Error("n muss >= -1 sein");
  if (n <= 1) return 1;
  
  let result = 1;
  while (n > 0) {
    result *= n;
    n -= 2;
  }
  return result;
}

C++:
#include <iostream>
long long doubleFactorial(int n) {
  if (n < -1) throw std::invalid_argument("n must be >= -1");
  if (n <= 1) return 1;
  
  long long result = 1;
  while (n > 0) {
    result *= n;
    n -= 2;
  }
  return result;
}

🎯 Erweiterte Kombinatorik

Anwendungen in der kombinatorischen Mathematik:

Python Kombinatorik mit Semifakultäten:
import math

class ExtendedCombinatorics:
  @staticmethod
  def double_factorial(n):
    """Semifakultät n!!"""
    if n <= 1: return 1
    result = 1
    while n > 0:
      result *= n
      n -= 2
    return result
  
  @staticmethod
  def perfect_matchings(n):
    """Anzahl perfekter Paarungen von 2n Objekten"""
    if n == 0: return 1
    return ExtendedCombinatorics.double_factorial(2*n - 1)
  
  @staticmethod
  def hypersphere_volume(n, r=1):
    """Volumen einer n-dimensionalen Kugel mit Radius r"""
    if n % 2 == 0: # gerade Dimension
      k = n // 2
      return (math.pi ** k) * (r ** n) / math.factorial(k)
    else: # ungerade Dimension
      k = (n - 1) // 2
      return (2 ** (k + 1)) * (math.pi ** k) * (r ** n) / ExtendedCombinatorics.double_factorial(n)
  
  @staticmethod
  def k_factorial(n, k):
    """k-Fakultät: Produkt jeder k-ten Zahl"""
    if n <= 0: return 1
    result = 1
    while n > 0:
      result *= n
      n -= k
    return result

# Beispiele
ext_comb = ExtendedCombinatorics()
print(f"7!! = {ext_comb.double_factorial(7)}") # 105
print(f"Perfekte Paarungen von 6 Objekten: {ext_comb.perfect_matchings(3)}") # 15
print(f"5D-Kugelvolumen: {ext_comb.hypersphere_volume(5):.6f}") # 5.263789
print(f"3-Fakultät von 9: {ext_comb.k_factorial(9, 3)}") # 162

🎯 Asymptotische Formeln

Stirling-ähnliche Näherungen für große n:

Python Asymptotische Analyse:
import math

def stirling_double_factorial_even(n):
  """Stirling-Näherung für gerade n!!"""
  if n == 0: return 1
  return math.sqrt(math.pi * n) * ((n / math.e) ** (n/2))

def stirling_double_factorial_odd(n):
  """Stirling-Näherung für ungerade n!!"""
  if n == 1: return 1
  return math.sqrt(2 * n) * ((n / math.e) ** (n/2))

def compare_approximations(n):
  """Vergleich exakt vs. asymptotisch"""
  def double_factorial(n):
    if n <= 1: return 1
    result = 1
    while n > 0:
      result *= n
      n -= 2
    return result
  
  exact = double_factorial(n)
  
  if n % 2 == 0:
    approx = stirling_double_factorial_even(n)
  else:
    approx = stirling_double_factorial_odd(n)
  
  error = abs(exact - approx) / exact if exact != 0 else 0
  
  print(f"n = {n}")
  print(f"Exakt: {exact}")
  print(f"Näherung: {approx:.0f}")
  print(f"Relativer Fehler: {error:.4%}")
  print("-" * 30)

# Vergleich für verschiedene Werte
for n in [10, 20, 50, 100]:
  compare_approximations(n)
💡 Wichtige Eigenschaften der Semifakultät:
  • Parität: Multipliziert nur Zahlen gleicher Parität (gerade/ungerade)
  • Rekursion: n!! = n × (n-2)!! ermöglicht effiziente Berechnung
  • Perfekte Paarungen: (2n-1)!! zählt Paarungen von 2n Objekten
  • Geometrische Bedeutung: Tritt in Hyperkugel-Formeln auf
🔢 Anwendungsgebiete der Semifakultät:
  • Kombinatorik: Perfekte Paarungen, Motzkin-Zahlen, Catalan-Zahlen
  • Geometrie: Hyperkugel-Volumina, mehrdimensionale Integrale
  • Physik: Quantenmechanik, statistische Mechanik, Phasenraumintegrale
  • Analysis: Gamma-Funktionen, asymptotische Entwicklungen