Daniel Thoma: Kombination von 5 versch. Zahlen

Beitrag lesen

Hallo Ashura,

Es können also auch Kombinationen vorkommen, in denen nicht alle Zahlen enthalten sind.

Das ist der eine Punkt, aber es scheint auch so zu sein, als würde die Reihenfolge der Zahlen keine rolle spielen.
D.h. er will einfach alle möglichen Teilmengen von {1,2,3,4,5} ohne die leere Menge. Da stimmt 2^n - 1, (die leere Menge hat genau eine, also 2^0 Elemente und wenn man zu einer Menge ein element hinzu tut, verdoppelt man offensichtlich die Anzahl der Teilmengen. Jede Teilmenge die es vorher gab, gibt es hinterher einmal mit und einmal ohne das neue Element.)

Wenn die Reihenfolge allerdings eine Rolle spielt, gibt es SUMME VON i = 1 BIS  5 ÜBER ((5 über i) * i!) Kombinationen. Was in diesem Fall 325 wären.
Mag sein, dass sich das noch etwas vereinfachen lässt, aber das ist die Formel, die man auf den ersten Blick sieht.

Für das Teilmengenproblem würde ich diesen Algorithmus nehmen:

function teilmengen(menge) {
  if(menge.length == 0) {
    return new Array(new Array());
  }
  var result = new Array();
  var elem = menge.pop();
  var tm = teilmengen(menge);
  for(var i = 0; i < tm.length; i++) {
    var m = new Array();
    m[0] = elem;
    m = m.concat(tm[i]);
    result.push(m);
  }
  result = result.concat(tm);
  return result;
}

Grüße

Daniel