Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
|
Re: Ziehen mit Zurücklegen aber ohne Reihenfolge
28. Mär 2009, 18:10
Oh, dir war auch gerade langweilig ?
Ich habs so:
Code:
public partial class Form1 : Form
{
private List<char> Buchstaben;
public Form1()
{
InitializeComponent();
Buchstaben = new List<char>();
Buchstaben.AddRange(new char[] {'A', 'B', 'C', 'D'});
}
private void Kombinationen<Type>(IList<Type> Menge, int count)
{
Kombinationen<Type>(Menge, count, 0, new Stack<Type>());
}
private void Kombinationen<Type>(IList<Type> Menge, int count, int start, Stack<Type> Elemente)
{
if (count == 0)
{
String kombi = "";
// evtl. Stringbuilder benutzen
foreach (var elem in Elemente)
{
kombi = elem.ToString() + ' ' + kombi;
}
listBox1.Items.Add(kombi);
}
else
{
for (int i = start; i < Menge.Count(); i++)
{
Elemente.Push(Menge[i]);
Kombinationen<Type>(Menge, count - 1, i, Elemente);
Elemente.Pop();
}
}
}
private void button1_Click(object sender, EventArgs e)
{
Kombinationen<char>(Buchstaben, 3);
}
}
Hier übrigens mein Ergebnis:
Code:
A A A
A A B
A A C
A A D
A B B
A B C
A B D
A C C
A C D
A D D
B B B
B B C
B B D
B C C
B C D
B D D
C C C
C C D
C D D
D D D
|
|
Zitat
|