Benutzer mit den meisten Antworten
Alle Kombination von Werten ausgeben

Frage
-
Hallo,
ich lese aus einem String verschiedene Substrings aus, abhängig von bestimmten Trennzeichen, es kann also sein, dass ich dann in einem Array 1-n verschiedene Strings habe..
Jetzt möchte ich jede mögliche Kombination der Strings ausgeben, Bedingung aber hierbei, dass immer alle ausgegen werden.
Bsp:
Werte:
- String 1
- String 2
Ausgabe:
- String1 String2
- String2 String1
Das Problem, die Formel zu Berechnung der Anzahl wäre ja A=N!/(N-k)! * k!, wenn die N und k aber gleich sind, also die Anzahl der Auswahlwerte der Anzahl der Auszuwählenden Werte entspricht, ergibt sich im Divisor 0..
Wo ist mein Denkfehler, und wie kann ich das Programmtechnisch umsetzen??
Danke für die Hilfe!!
Antworten
-
Hallo KiloMike,
schau dafür mal hier vorbei: http://www.codeproject.com/KB/recipes/Combinatorics.aspx
Viel Erfolg!
Mathias- Als Antwort vorgeschlagen Robert Breitenhofer Montag, 9. November 2009 13:38
- Als Antwort markiert Robert Breitenhofer Dienstag, 10. November 2009 10:10
-
Hallo KiloMike,
Hier gibt es ein Artikel der zeigt wie man Alle Kombination von Werten ausgeben kann.
http://dotnet.sys-con.com/node/231946
Aus dem Beispiel Artikel Man muss man die StringCombinationsLib kompilieren und eine dll erstellen.Nachher kann man die dll in der Anwendung referenzieren.
Die Anwendung wurde dann in C# so aussehen:
using System; using System.Text; namespace Combinations { class Program { static void Main(string[] args) { try { Console.WriteLine(Environment.NewLine + "Begin string combination demo" + Environment.NewLine); string[] animals = new string[] { "ant", "bat", "cow", "dog", "elk" }; int i; Console.Write("The original set of string elements is: [ "); for (i = 0; i <= animals.Length - 1; i++) { Console.Write(animals[i] + " "); } Console.WriteLine("]" + Environment.NewLine); int n = animals.Length; Console.WriteLine("Size original elements (n) = " + n); Console.Write("Enter your subset size (k) : "); int k; k = Convert.ToInt32(Console.ReadLine()); Console.WriteLine(Environment.NewLine + "There are " + StringCombinationsLib.StringCombination.Choose(n,k) + " elements "); StringCombinationsLib.StringCombination c = new StringCombinationsLib.StringCombination(animals, k); Console.WriteLine(Environment.NewLine + "The combination elements are: "); i = 0; while (c != null) { Console.WriteLine("[" + i + "] " + c.ToString()); i = i + 1; c = c.Successor(); } Console.WriteLine(Environment.NewLine + "End demo"); Console.ReadLine(); } catch (Exception ex) { Console.WriteLine("Fatal error: " + ex.Message); Console.ReadLine(); } } } }
Grüße,
Robert
- Als Antwort vorgeschlagen Robert Breitenhofer Montag, 9. November 2009 13:38
- Als Antwort markiert Robert Breitenhofer Dienstag, 10. November 2009 10:11
Alle Antworten
-
Hallo KiloMike,
schau dafür mal hier vorbei: http://www.codeproject.com/KB/recipes/Combinatorics.aspx
Viel Erfolg!
Mathias- Als Antwort vorgeschlagen Robert Breitenhofer Montag, 9. November 2009 13:38
- Als Antwort markiert Robert Breitenhofer Dienstag, 10. November 2009 10:10
-
Hallo KiloMike,
Hier gibt es ein Artikel der zeigt wie man Alle Kombination von Werten ausgeben kann.
http://dotnet.sys-con.com/node/231946
Aus dem Beispiel Artikel Man muss man die StringCombinationsLib kompilieren und eine dll erstellen.Nachher kann man die dll in der Anwendung referenzieren.
Die Anwendung wurde dann in C# so aussehen:
using System; using System.Text; namespace Combinations { class Program { static void Main(string[] args) { try { Console.WriteLine(Environment.NewLine + "Begin string combination demo" + Environment.NewLine); string[] animals = new string[] { "ant", "bat", "cow", "dog", "elk" }; int i; Console.Write("The original set of string elements is: [ "); for (i = 0; i <= animals.Length - 1; i++) { Console.Write(animals[i] + " "); } Console.WriteLine("]" + Environment.NewLine); int n = animals.Length; Console.WriteLine("Size original elements (n) = " + n); Console.Write("Enter your subset size (k) : "); int k; k = Convert.ToInt32(Console.ReadLine()); Console.WriteLine(Environment.NewLine + "There are " + StringCombinationsLib.StringCombination.Choose(n,k) + " elements "); StringCombinationsLib.StringCombination c = new StringCombinationsLib.StringCombination(animals, k); Console.WriteLine(Environment.NewLine + "The combination elements are: "); i = 0; while (c != null) { Console.WriteLine("[" + i + "] " + c.ToString()); i = i + 1; c = c.Successor(); } Console.WriteLine(Environment.NewLine + "End demo"); Console.ReadLine(); } catch (Exception ex) { Console.WriteLine("Fatal error: " + ex.Message); Console.ReadLine(); } } } }
Grüße,
Robert
- Als Antwort vorgeschlagen Robert Breitenhofer Montag, 9. November 2009 13:38
- Als Antwort markiert Robert Breitenhofer Dienstag, 10. November 2009 10:11