Hi,
ich versuche ein Programm zu schreiben das mir aus einer unbegrenzten Zahl an eingegebenen Buchstaben alle möglichen Kombinationen erstellt. Dabei ist es mir egal ob die Sinn ergeben oder nicht.
Die Formel zum Ausrechnen wie viele Kombinationen es gibt habe ich schon (wenn sie stimmt). Nach meiner Formel muss man die Anzahl der Buchstaben mal die Anzahl der Buchstaben - 1 nehmen. Solange bis man bei 2 angekommen ist. Also bei 6 Buchstaben 6 * 5 * 4 * 3 * 2 = 720 möglich Kombinationen.
Mein Problem ist ein Algorithmus zu finden indem java alle Kombinationen erstellen kann.
Dazu habe ich das folgende Programm erstellt.
In dem Programm soll ein Wort eingegeben werden. Die einzelnen Buchstaben werden in einem char Array geschrieben und dann sollten eigendlich alle Kombinationen in der test.txt abgespeichert werden. Das der Algorithmus falsch sein muss war mir nach dem ausprobieren sofort klar. Er funktioniert nur bei maximal 3 Buchstaben.
Irgendwie scheine ich mich festgefahren zu haben mir fällt einfach keine Möglichkeit ein alle Kombinationen in der Textdatei abzuspeichern. Ich hoffe mir kann jemand helfen.
ich versuche ein Programm zu schreiben das mir aus einer unbegrenzten Zahl an eingegebenen Buchstaben alle möglichen Kombinationen erstellt. Dabei ist es mir egal ob die Sinn ergeben oder nicht.
Die Formel zum Ausrechnen wie viele Kombinationen es gibt habe ich schon (wenn sie stimmt). Nach meiner Formel muss man die Anzahl der Buchstaben mal die Anzahl der Buchstaben - 1 nehmen. Solange bis man bei 2 angekommen ist. Also bei 6 Buchstaben 6 * 5 * 4 * 3 * 2 = 720 möglich Kombinationen.
Mein Problem ist ein Algorithmus zu finden indem java alle Kombinationen erstellen kann.
Dazu habe ich das folgende Programm erstellt.
Code:
import java.io.*;
public class woerter
{
public static void main (String args[]) throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String wort, eingabe;
char dumb;
System.out.print("Geben Sie Ihr Wort ein: ");
wort = br.readLine();
System.out.println(wort);
char[] chr = new char[wort.length()];
for(int i=0; i<wort.length(); i++)
{
chr[i] = wort.charAt(i);
}
FileWriter fw = new FileWriter("test.txt");
for(int h=0; h<wort.length(); h++)
{
for(int i=0; i<wort.length()-1; i++)
{
dumb = chr[i];
chr[i] = chr[i+1];
chr[i+1] = dumb;
for(int j=0; j<wort.length(); j++) fw.write(chr[j]);
fw.write("\r\n");
}
}
fw.close();
}
}
In dem Programm soll ein Wort eingegeben werden. Die einzelnen Buchstaben werden in einem char Array geschrieben und dann sollten eigendlich alle Kombinationen in der test.txt abgespeichert werden. Das der Algorithmus falsch sein muss war mir nach dem ausprobieren sofort klar. Er funktioniert nur bei maximal 3 Buchstaben.
Irgendwie scheine ich mich festgefahren zu haben mir fällt einfach keine Möglichkeit ein alle Kombinationen in der Textdatei abzuspeichern. Ich hoffe mir kann jemand helfen.