Autor |
Beitrag |
TheSoul
      
Beiträge: 73
Erhaltene Danke: 2
Win 95, Win 98, WIN 2000, Win XP, Win Vista, Win 7
Visual C#
|
Verfasst: Di 20.10.09 09:35
Morgen Allerseits
Bin wieder am C-Sharp üben und habe die Aufgabe bekommen eine Konsolen-Applikation zu machen. Diese Applikation sollte die alle möglichen Kombinationen des Inputs aufzählen.
Beispiel :
Input: ABC
Output:
ABC
CBA
BCA
CAB
ACB
BAC
Ich möchte nicht von euch, dass ihr die Aufgabe löst, sondern mir zum weiterdenken helft. Ich habe keine Ahnung wie man diese Sache angeht.
Hier mal mein Code bis hier, weiter hab ichs nicht gebracht.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35:
| using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace vertauscher { class Program { public string vertauscher(string input, int position1, int position2) { if (position1 != position2) { StringBuilder tmp = new StringBuilder(input); tmp.Remove(position1, 1); tmp.Insert(position1, input[position2]); tmp.Remove(position2, 1); tmp.Insert(position2, input[position1]); return tmp.ToString(); }
return input; } static void Main(string[] args) { string a = "ABCD";
} } } |
_________________ Fluchen ist die einzige Sprache, die alle Programmierer wirklich beherrschen.
Ich würd so gern die Welt verändern, aber Gott gibt mir den Quellcode nicht
|
|
TheSoul 
      
Beiträge: 73
Erhaltene Danke: 2
Win 95, Win 98, WIN 2000, Win XP, Win Vista, Win 7
Visual C#
|
Verfasst: Di 20.10.09 11:01
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52:
| using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace vertauscher { class Program { static int zaehler = 1; static void Main(string[] args) { string input = "ABCDEFGH"; permutation(input, 0); Console.In.ReadLine(); }
public static void permutation(string input, int position) { if (position == input.Length - 1) { Console.Out.WriteLine(zaehler++ + ": " + input); return; }
for (int i = position; i < input.Length; i++) { input = vertausche(input, position, i); permutation(input, position + 1); input = vertausche(input, position, 1); }
} public static string vertausche(string input, int position1, int position2) { if (position1 != position2) { StringBuilder tmp = new StringBuilder(input); tmp.Remove(position1, 1); tmp.Insert(position1, input[position2]); tmp.Remove(position2, 1); tmp.Insert(position2, input[position1]); return tmp.ToString(); }
return input; }
} } |
_________________ Fluchen ist die einzige Sprache, die alle Programmierer wirklich beherrschen.
Ich würd so gern die Welt verändern, aber Gott gibt mir den Quellcode nicht
|
|
Nemag
      
Beiträge: 132
Erhaltene Danke: 2
|
Verfasst: Di 20.10.09 14:47
Hab nur mal ne kurze Zwischenfrage bevor ich was richtiges zu posten hab.
Wie soll denn mit doppelter Eingabe verfahren werden? Soll also wirklich alle Kombinationen ausgegeben werden oder Unique(Alle Kombination).
Eingabe: AAB
AAB, ABA, BAA
oder
AAB,AAB, ABA,ABA, BAA, BAA ?
|
|
TheSoul 
      
Beiträge: 73
Erhaltene Danke: 2
Win 95, Win 98, WIN 2000, Win XP, Win Vista, Win 7
Visual C#
|
Verfasst: Di 20.10.09 15:01
Bei Eingabe von AAB gibt es folgendes aus:
1: AAB
2: ABA
3: AAB
4: ABA
5: BAA
6: BAA
Freundliche Grüsse
TheSoul
_________________ Fluchen ist die einzige Sprache, die alle Programmierer wirklich beherrschen.
Ich würd so gern die Welt verändern, aber Gott gibt mir den Quellcode nicht
|
|
Nemag
      
Beiträge: 132
Erhaltene Danke: 2
|
Verfasst: Di 20.10.09 15:01
So hier ich nochmals, ich denke mal das hier könnte dir weiterhelfen:
www.codeproject.com/...s/Combinatorics.aspx
|
|
TheSoul 
      
Beiträge: 73
Erhaltene Danke: 2
Win 95, Win 98, WIN 2000, Win XP, Win Vista, Win 7
Visual C#
|
Verfasst: Di 20.10.09 15:03
Danke für deine Hilfe nemag. Jedoch bin ich mit dieser Aufgabe schon fertig geworden (Siehe zweiter Beitrag). Ich werde mir trotzdem deinen Link anschauen und die Lösung mit meiner Vergleichen.
_________________ Fluchen ist die einzige Sprache, die alle Programmierer wirklich beherrschen.
Ich würd so gern die Welt verändern, aber Gott gibt mir den Quellcode nicht
|
|
|