Hallo ,
Ich habe folgende Aufgabe zu erledigen, komme aber auf keinen grünen Zweig, vllt könnt ihr mit helfen !
Erzeugung aller k-elementigen Teilmengen einer Menge mit Umfang m;
Um diese systematisch zu erzeugen, bedient man sich einer sogn. Nachfolgerfunktion,
d. h. ist M = {x1, . . . , xm}, so ist die erste Menge festgelegt durch {x1, . . . , xk}.
Der Nachfolger dieser Menge ist {x1, . . . , xk−1, xk+1}. Die letzte Menge schließlich ist
{xm−k+1, . . . , xm}.
Die Funktionalität von „nachfolger“ sei wie folgt festgelegt:
Int_Menge nachfolger(Int_Menge Mi, Int_Menge M, unsigned k);
Zur Verfügung stehen Mengenoperationen, implementiert via Bitoperationen
mit der Klasse Int_menge !
4. Zugriffsfunktionen (i-tes Element, „[ ]“-Operator!): x = A[i],mit i ∈ {1, . . . ,m}.
5. Index eines Elementes („( )“-Operator!): i = A(x), wobei für |A| = m gilt
i ∈ {1, . . . ,m}.
6. „arithmetische“ Operatoren:
⋄ „M1 * M2“ = M1 ∩ M2, //Durchschnitt
⋄ „M1 + M2“ = M1 ∪ M2, //Vereinigung
⋄ „M1 − M2“ = M1\M2. // "ohne"
⋄ Für die beiden Operatoren „+“ und „−“ bieten sich auch an:
„M+i“ = M∪ {i}, „i + M“ = {i} ∪ M sowie „M−i“ = M\{i}
7. Zuweisungsoperator (assignment): A = B.
8. logische Operatoren: A == B, A! = B, „A <= B“ = A ⊆ B, isempty(A)
9. Ein- und Ausgabeoperatoren: cout << A, cin >> A (inclusive der Grunsmenge
G).
10. Überladen Sie den bitweisen NOT-Operator „~“, um das Komplement eines
Objektes aus der Int_Menge-Klasse zurückzugeben: „~A“ = AG.
(Beachten Sie: „s“ ist ein unärer Operator, das Komplement ist in Bezug auf
G zu bilden!)
11. Überladen Sie den NOT-Operator „!“, um die Kardinalität eines Objektes
der Int_Menge-Klasse zurückzugeben, d. h.: „!M“ = |M|.
(Beachten Sie: „!“ ist ein unärer Operator).
Ich brauche eigentlich nur eine ungefähre Richtung, den Rest erledige ich dann, sofern dies in meiner Macht steht
Vielen Dank !