Hi,
wie kann man den aus eine beliebigen Menge die Tripel erstellen:
Bsp.:
Menge a,b,c,d
Ergebnis: abc, abd, acd, bcd
Nach welcher Formel kann man hier vorgehen?
Hi,
wie kann man den aus eine beliebigen Menge die Tripel erstellen:
Bsp.:
Menge a,b,c,d
Ergebnis: abc, abd, acd, bcd
Nach welcher Formel kann man hier vorgehen?
Unter http://javagl.de/utils/javagl-utils-math-0.1.jar gibt’s ein (inoffizielles) JAR, wo einige Klassen für solche Fragen drin sind - u.a. „ChoiceIterable“, mit dem man genau sowas machen kann: http://javagl.de/utils/doc-math/de/javagl/utils/math/combinatorics/ChoiceIterable.html
Im Endeffekt ist das nicht anderes als zählen
Danke!
Gibt es eigentlich ein Formel hierfür?
Ich habs!!!
für Tripel bestimmung wobei abc=cba=bca …
X=(n*(n-1)*(n-2))/6:p
Nuja was heißt „Formel“ Eine Formel, um auszurechnen, wie viele solcher Tripel es gibt, gibt es: Für n Elemente, von denen k (in diesem Fall 3) ausgewählt werden, gibt es
n!/(k!*(n-k)!)
Kombinationen.
Für die Berechnung dieser Kombinationen gibt es einen Algorithmus, und der macht. Aber ehrlich gesagt war die Aussage oben, dass der nur zählt für diesen Fall eigentlich falsch: Es kommen ja keine Elemente doppelt vor.
In dem source code int der verlinkten Datei steht auch eine kurze Erklärung
// The fist choice when choosing 3 of 5 elements consists
// of 0,1,2. Subsequent choices are created by increasing
// the last element of this sequence:
// 0,1,3
// 0,1,4
// until the last element of the choice has reached the
// maximum value. Then, the earlier elements of the
// sequence are increased recursively, while obeying the
// maximum value each element may have so that there may
// still be values assigned to the subsequent elements.
// For the example:
// - The element with index 2 may have maximum value 4.
// - The element with index 1 may have maximum value 3.
// - The element with index 0 may have maximum value 2.
// Each time that the value of one of these elements is
// increased, the subsequent elements will simply receive
// the subsequent values.
Hmja… ob das weiterhilft? Vielleicht mal mit einem kleinen Testfall durchspielen…
EDIT: Jaja, zu langsam :o