Buch Cover Buch Cover Buch Cover Buch Cover

Web-Code: - Webcode Help

Einfache Kombinatorik (Simulationen)

Wer des Programmierens mächtig ist, kann viele kombinatorische Fragen auszählen lassen. Beispiel: Wie viele dreistellige Zahlen haben lauter verschiedene Ziffern? 

Zusatzaufgabe: Wie viele Möglichkeiten gibt es, eine aufsteigende Folge von 6 aus 45 Zahlen zu bilden?

0 Kommentare

Bitte melde dich an um einen Kommentar abzugeben

4 Lösung(en)

k=0 
for H in range(1,10):
   for Z in range(0,10):
      for E in range(0,10): 
          if Z!=E and Z!=H and H!=E: k=k+1 
print "Es gibt", k, "dreistellige Zahlen mit versch. Ziffern" 
                
	void top() {
		int anzahl = 0;
		for(int zahl = 100; zahl <= 999; zahl = zahl + 1) {
			int einer     = (zahl      ) % 10;
			int zehner    = (zahl / 10 ) % 10;
			int hunderter = (zahl / 100) % 10;
			if(einer != zehner && einer != hunderter && zehner != hunderter) {
				anzahl = anzahl + 1;
			}
		}
		System.out.println("Anzahl geforderter Zahlen: " + anzahl);
	}
                

Lösung von: Philipp G. Freimann (BBW (Berufsbildungsschule Winterthur) https://www.bbw.ch)

function hasDifferentDigits(num) {
  num = num.toString().split('').sort();
  while (num.length > 1)
    if (num.shift() == num[0]) return false;
  return true;
}

let diffDigits = [];
for (let i = 102; i <= 987; i++)
  if (hasDifferentDigits(i)) diffDigits.push(i);
// ausgabe
console.log(`Es gibt ${diffDigits.length} dreistellige Zahlen mit unterschiedlichen Ziffern:
${diffDigits.join(', ')}`);


/* Zusatzaufgabe*/
// https://de.wikipedia.org/wiki/Binomialkoeffizient
function binCoeff(n, k) {
  let result;
  if (2 * k > n) k = n - k;
  result = 1;
  for (let i = 1; i <= k; i++)
    result = result * (n - k + i) / i;
  return result;
}

console.log(`Es gibt ${binCoeff(45,6)} Möglichkeiten, eine aufsteigende Folge von 6 aus 45 Zahlen zu bilden`);
                                                              // lissalanda@gmx.at

                

Lösung von: Lisa Salander (Heidi-Klum-Gymnasium Bottrop)

// NET 6.x | C# 10.x | VS-2022

var lst = Enumerable.Range(102, 886).Where(x => new HashSet<char>(x.ToString().ToCharArray()).Count == 3).ToList();
Console.WriteLine($"Es sind {lst.Count} Zahlen mit unterschiedlichen Ziffer:\n{string.Join(", ", lst)}");

static int BinCoe(int n, int k) => (k == 0 || n == k) ? 1 : BinCoe(n - 1, k) + BinCoe(n - 1, k - 1);
Console.WriteLine($"\n\nAnzahl der Möglichkeiten für eine aufsteigende Folge 6 aus 45:\n{BinCoe(45, 6)}");
                

Lösung von: Jens Kelm (@JKooP)

Verifikation/Checksumme:

Es gibt 648 dreistellige Zahlen mit lauter verschiedenen Ziffern.

Aktionen

Bewertung

Durchschnittliche Bewertung:

Eigene Bewertung:
Bitte zuerst anmelden

Meta

Zeit: 0.5
Schwierigkeit: k.A.
Webcode: 4cnf-kew2
Autor: Martin Guggisberg (Universität Basel / PH FHNW)

Download PDF

Download ZIP

Zu Aufgabenblatt hinzufügen