Alle Zahlenkombinationen aus 9 zahlen finden

DaCrazyJavaExpert

DaCrazyJavaExpert

Bekanntes Mitglied
Hallo,
ich habe versucht aus einem Integer-Array mit den Zahlen 1 bis 9
Integer[] neunZahlen = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
alle Zahlenkombinationen zu finden. Ich weiß aber nicht genau wie ich das richtig angehen soll...
Also sowas hier z.B. war einer meiner Versuche, aber irgendwie kann man aus einem Array die Zahlen nicht in ArrayList packen... :
Java:
package ZahlenErmittler;

import java.util.ArrayList;
import java.util.List;

public class Zahlenermittler {

    public static void main(String[] args) {
        Integer[] neunZahlen = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
        List<Integer> zahlen = new ArrayList<>();
        for(Integer neunZahl : neunZahlen) {
            neunZahl.add(zahlen); //die Methode add() hat hier eine Feheler gezeigt.
        }
    }
}

Außerdem hab ichs noch mit einer for-each Schleife prbiert, alle zahlen durchzugehen, aber dies hat auch nicht geklappt. Ich stehe ein wenig auf dem Schlauch :c.
Danke für Hilfe!
 
Robat

Robat

Top Contributor
neunZahl.add(zahlen); //die Methode add() hat hier eine Feheler gezeigt.
Schau mal genauer hin auf welchem Objekt du die Methode add() gerade aufrufst ;)
Momentan versuchst du einem Integer eine Liste hinzuzufügen. Du willst ja aber einer Liste einen Integer hinzufügen :p

Übrigens: Du kannst auch zahlen.addAll(Arrays.asList(neunZahlen)); benutzen
 
Wurstkopp

Wurstkopp

Bekanntes Mitglied
Kleiner Hinweis falls es bei der eigentlichen Logik noch klemmt: Der Fachbegriff für "Alle Kombinationen einer bestimmten Menge rausfinden" ist die "Permutation". Mit dem Fachbegriff wirst du dann zu diesem Problem ggf. schneller bei Google und Co. fündig.
 
JCODA

JCODA

Top Contributor
Kleiner Hinweis falls es bei der eigentlichen Logik noch klemmt: Der Fachbegriff für "Alle Kombinationen einer bestimmten Menge rausfinden" ist die "Permutation". Mit dem Fachbegriff wirst du dann zu diesem Problem ggf. schneller bei Google und Co. fündig.
Weil es falsch wäre ! Wie du schon leicht erkennst ist 999999999 keine gültige Permutation von 1,2,3,4,5,6,7,8,9
Also ich weiß zwar nicht, was der OP meint, aber eine "Kombination" ist etwas anderes als eine "Permutation". Siehe https://de.wikipedia.org/wiki/Kombination_(Kombinatorik)

Eine Kombination ist eine Auswahl von Objekten aus einer gegebenen Grundmenge, die (im Gegensatz zur Permutation) nicht alle Objekte der Grundmenge enthalten muss und bei der (ebenfalls im Gegensatz zur Permutation) die Reihenfolge unberücksichtigt bleibt. Können Objekte dabei mehrfach ausgewählt werden, so spricht man von einer Kombination mit Wiederholung, darf dagegen jedes Objekt nur genau einmal auftreten, spricht man von einer Kombination ohne Wiederholung.

Beim Hochzählen hat man allerdings das Problem, dass etwa 123 und 321 eigentlich die "gleiche" Kombination aus 1,2,3 ist, zudem kommt beim Hochzählen ja auch die 0 vor.
 
X

Xyz1

Gast
Zu starten in der Kommandozeile.
> HW.exe > HW.txt

Funktion a gibt alle Kombinationen der Menge 1 bis 9 der Länge 3 mit Wiederholungen aus,
Funktion b gibt alle Kombinationen der Menge 1 bis 9 der Länge 3 ohne Wiederholungen aus (auch Permutationen geheißen).

Beispiel.
Funktion a:
111
112
113
114
115
116
117
118
119
121
122
123 ....
Funktion b:
123
124
125
126
127
128
129
132
134
135
136
137
138
139
142
143
145 ....

Ich denke, ich habe deine Beschreibung des gesuchtem verstanden. Gern kann ich den Code offenlegen.

Länge 10 oder wtf(?) schien mir jetzt doch zu lang.
 

Anhänge

  • HW.zip
    2,2 KB · Aufrufe: 5
X

Xyz1

Gast
Das ist ja der Sinn der Frage
Nagut, aber nur, weil du es bist ....

Pseudo-Funktion a:
C:
    for (i = 0; i != -1;)
    {
        if (i == 3)
        {
            for (j = 0; j < 3; j++)
            {
                ca[j] = ia[j] + '0';
            }
            printf("%s\n", ca);
            i--;
        }
        else
        {
            ia[i]++;
            if (ia[i] == 10)
            {
                ia[i] = 0;
                i--;
            }
            else
            {
                i++;
            }
        }
    }

Pseudo-Funktion b:
C:
    for (i = 0; i != -1;)
    {
        if (i == 3)
        {
            for (j = 0; j < 3; j++)
            {
                ca[j] = ia[j] + '0';
            }
            printf("%s\n", ca);
            i--;
        }
        else
        {
            ia[i]++;
            for (j = 0; j < i;)
            {
                if (ia[j] == ia[i])
                {
                    ia[i]++;
                    j = 0;
                }
                else
                {
                    j++;
                }
            }
            if (ia[i] == 10)
            {
                ia[i] = 0;
                i--;
            }
            else
            {
                i++;
            }
        }
    }

Das ganze ist auch leicht anpassbar. Ich entschuldige mich schonmal, das ist nicht die kernighan and ritchie notation(!)

Im Fall i == 3 erfolgt die Ausgabe
 
DaCrazyJavaExpert

DaCrazyJavaExpert

Bekanntes Mitglied
Ok, ich wusste nicht,dass es so kompliziert ist alle Zahlenkombinationen aus 9 Zahlen zu finden :(. Ich glaube mit meinen Kenntnissen bin ich noch nicht so weit. Ich sollte mich wann später vielleicht nochmal dieser "Aufgabe"(Die ich mir selber gestellt hatte :p) zuwenden. Vorallem Funktionen hatte ich bisher in meinem Buch nur kurz gehabt :eek:. Aber vllt. schaff ichs ja bis zum Ende meines Java-Buches die Lösung selber zu finden xD.
Danke für die Hilfen. :)
 
X

Xyz1

Gast
Es kann auch hochgezählt werden - und alle Zahlen mit 0en oder mit doppelten Ziffern "übersprungen" werden. Laufzeittechnisch beisst sich das nicht, da das erstellen der Zahlen hier nicht das Problem darstellt.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Programm, dass alle 3 Tage eine Webseite öffnet? Java Basics - Anfänger-Themen 20
J Alle .java Dateien von einem Verzeichnis in eine Zip speichern Java Basics - Anfänger-Themen 2
J Alle Dateien aus einem Verzeichnis laden Java Basics - Anfänger-Themen 10
Bademeister007 Operatoren Alle Zahlen einer ArrayList die durch 5 teilbar ist Java Basics - Anfänger-Themen 2
E Wie gebe ich alle Daten zwischen zwei Zeitpunkten aus? Java Basics - Anfänger-Themen 2
crrnogorka Letzte Zeile einer Tabelle "überschreibt" alle anderen Zeilen Java Basics - Anfänger-Themen 1
C alle möglichen Kombinationen zweier Ziffern auf drei / vier / und 'n" Stellen Java Basics - Anfänger-Themen 11
H Alle Geraden zahlen bis 10 ausgeben Java Basics - Anfänger-Themen 11
L Alle Ziele in einem Raster abknallen Java Basics - Anfänger-Themen 17
J Alle Werte eines Strings zusammen addieren Java Basics - Anfänger-Themen 15
S Laufzeit Quicksort wenn alle Elemente gleich sind Java Basics - Anfänger-Themen 4
B Alle Links in einem Text suchen und ersetzen mit einem neuen Link Java Basics - Anfänger-Themen 18
K Array alle Werte aufsummieren und ausgeben Java Basics - Anfänger-Themen 6
Dimax Erste Schritte String replace alle Zeichen Java Basics - Anfänger-Themen 10
L Wie vergrößere ich ein Rechteck in alle Richtungen um eins und bekomme dessen Rand? Java Basics - Anfänger-Themen 2
L Breadth-First Search statt einem Pfad, alle Pfade herausfinden Java Basics - Anfänger-Themen 4
X Erste Schritte String: Alle doppelten Leerzeilen entfernen Java Basics - Anfänger-Themen 21
M Regex-Ausdruck: Alle Zeichen bis auf ein bestimmtes erlauben (p{L}) Java Basics - Anfänger-Themen 5
I Alle Elemente von zwei Listen vergleichen Java Basics - Anfänger-Themen 1
Kirby.exe Alle möglichen Error Möglichkeiten abfangen Java Basics - Anfänger-Themen 33
M Unterklasse soll nicht alle Methoden erben Java Basics - Anfänger-Themen 3
V Erste Schritte for-Schleife; Ausgabe soll alle 5 Sekunden erfolgen. Java Basics - Anfänger-Themen 4
A Alle true Werte eines boolean Arrays herausfiltern Java Basics - Anfänger-Themen 19
D Alle Möglichkeiten, n-Anzahl aus Elementen aus einem Array zu wählen, ausgeben? Java Basics - Anfänger-Themen 23
M prüfen ob alle array werte gleich sind Java Basics - Anfänger-Themen 27
F Alle Zeichenkombinationen eines Strings iterativ herausfinden Java Basics - Anfänger-Themen 26
L Classpath Alle Dateien im Classpath finden Java Basics - Anfänger-Themen 4
G Überprüfen ob alle Ziffern von 1-9 in einem Integer vorhanden sind Java Basics - Anfänger-Themen 6
J Erste Schritte Alle möglichen ausgaben von 5 Zahlen als Vector Java Basics - Anfänger-Themen 7
R Methoden Entferne alle identische Knoten (Typ String) aus verkettete Liste Java Basics - Anfänger-Themen 8
D Methoden Eigene Methode um alle Ausgaben aufzurufen Java Basics - Anfänger-Themen 17
F Ordner auf alle Unterdatein abfragen Java Basics - Anfänger-Themen 3
A In einem String alle Eigennamen zählen Java Basics - Anfänger-Themen 6
B Klassen Alle Unter-Objekte durchlaufen in der Hauptklasse Java Basics - Anfänger-Themen 10
W ArrayList löscht alle Elemente bis auf eines Java Basics - Anfänger-Themen 2
B Webservice -> alle parameter bekommen von form Java Basics - Anfänger-Themen 2
das_leon Alle Zeilen einer CSV-Datei auslesen Java Basics - Anfänger-Themen 1
C HashMap - alle keys haben values der letzten put-Anweisung Java Basics - Anfänger-Themen 3
F Eclipse alle Projekt weg Java Basics - Anfänger-Themen 6
V Alle Komponenten eines JPanels Java Basics - Anfänger-Themen 14
I gemeinsame Config-Datei für alle Windows-User Java Basics - Anfänger-Themen 5
H JButton - Wechsel der Textfarbe alle 500ms Java Basics - Anfänger-Themen 10
F Alle Objekte einer Klasse nach Eigenschaft durchsuchen Java Basics - Anfänger-Themen 8
M Alle Instanzen einer Klasse ansprechen Java Basics - Anfänger-Themen 4
S Problem: Array alle Einträge gleich Java Basics - Anfänger-Themen 10
Z Enter Taste alle 0,5 Sekunden ausführen Java Basics - Anfänger-Themen 1
U RegEx alle Kommas bei den Zahlen in Punkt umwandeln Java Basics - Anfänger-Themen 3
K alle Vorkommen einer bestimmten Ziffer in einer Zahl zählen Java Basics - Anfänger-Themen 2
X Minimax-Algorithmus über alle Kanten möglich? - Kanten darstellen Java Basics - Anfänger-Themen 1
C Alle Zweierpotenzen bis 2^10 ausgeben lassen Java Basics - Anfänger-Themen 15
B Alle Attribute von Klasse bekommen und ändern Java Basics - Anfänger-Themen 12
M Input/Output Alle Zeilen auslesen und in Variable speichern Java Basics - Anfänger-Themen 5
W Mozilla Thunderbird email an alle Kontakte Java Basics - Anfänger-Themen 3
F Methode alle 15min ausführen Java Basics - Anfänger-Themen 5
D Alle möglichen Kombinationen in einem Array ausgeben Java Basics - Anfänger-Themen 2
I Alle Laufwerke und deres Pfade ausgeben Java Basics - Anfänger-Themen 6
S Classpath: Alle .jars innerhalb eines Ordners einbinden Java Basics - Anfänger-Themen 4
G Alle Objekte und Variablen automatisch ausgeben Java Basics - Anfänger-Themen 7
I Programm, welches eine Textzeile einliest und alle darin enthaltenen Buchstaben umwandelt Java Basics - Anfänger-Themen 3
G Wie bekomme ich alle Ausgaben von runTime.exec() Java Basics - Anfänger-Themen 7
L Best Practice Alle Kombinationen aus Listenelementen, Anzahl Listen unterschiedlich Java Basics - Anfänger-Themen 6
M Compiler-Fehler Alle Methoden eines Interfaces Implementiert dennoch Fehler Java Basics - Anfänger-Themen 3
I Alle Zeitzonen in Liste speichern Java Basics - Anfänger-Themen 4
F alle 100ms Befehle ausführen Java Basics - Anfänger-Themen 26
M Alle Sublisten einer bestimmten Laenge berechnen Java Basics - Anfänger-Themen 2
F Alle DEMOS fast veraltet...? Java Basics - Anfänger-Themen 13
J Alle Leerzeichen aus String entfernen Java Basics - Anfänger-Themen 13
D Methoden Alle Siebenstelligen Primpalidrome von PI Java Basics - Anfänger-Themen 6
K Durch alle Attribute eines Objektes iterieren Java Basics - Anfänger-Themen 6
P Klassen Alle Strings einer ArrayList<eigeneKlasse> anspre Java Basics - Anfänger-Themen 2
W String von hinten alle drei Zeichen abschneiden und in umgekehrter Reihenfolge ausgeben. Java Basics - Anfänger-Themen 9
M Stürzen alle Rekursive Methoden irgendwann ab? Java Basics - Anfänger-Themen 11
M Alle möglichen Strings Java Basics - Anfänger-Themen 5
J Alle Wörter der Länge n mit 0 und 1 Java Basics - Anfänger-Themen 17
T Alle Threads .notify() Java Basics - Anfänger-Themen 13
G Methoden Alle Objekte der ArrayList ausgeben funktioniert nicht. Java Basics - Anfänger-Themen 12
N Klassen Class nur einmal ausführen und sie speichert daten für alle anderen classes? Java Basics - Anfänger-Themen 3
M Klassen Auf Alle Array Methoden gleichzeitig zugreifen Java Basics - Anfänger-Themen 8
D Frame schließt gleich alle Frames Java Basics - Anfänger-Themen 5
T Wie mache ich einen Timer der alle 2 sekunden aufgerufen wird? Java Basics - Anfänger-Themen 5
D JFileChooser "alle Dateien" unterbinden Java Basics - Anfänger-Themen 3
S Aus zwei Dateipfaden alle Dateien auslesen Java Basics - Anfänger-Themen 11
B Frage zur Effizienz - alle Array-Felder initialisieren oder jedes Feld auf null prüfen? Java Basics - Anfänger-Themen 4
F Geht in alle Case rein, warum?? Java Basics - Anfänger-Themen 12
R Alle Klassen ermitteln, die Interface implementieren / Reflection Java Basics - Anfänger-Themen 51
M Primzahlen - es werden alle Nicht-Primzahlen ausgegeben Java Basics - Anfänger-Themen 5
L RandomAccessFile liest nicht alle Zeichen Java Basics - Anfänger-Themen 3
S Warten bis alle Threads fertig sind Java Basics - Anfänger-Themen 12
M Class will alle Variablen als static haben Java Basics - Anfänger-Themen 11
E Erste Schritte Eclipse kompiliert alle Projekte im Workspace Java Basics - Anfänger-Themen 10
J Alle Vorkommen eines chars in einem Array durch einen anderen char ersetzen Java Basics - Anfänger-Themen 10
S Alle 60min prüfen ob eine Datei da ist Java Basics - Anfänger-Themen 6
Dit_ Funktion alle 24 Stunden ein mal aufrufen Java Basics - Anfänger-Themen 3
Dit_ Input/Output Alle Exceptions protokollieren Java Basics - Anfänger-Themen 9
S Regex - alle Matches ausgeben? Java Basics - Anfänger-Themen 2
2 Alle Werte die mit n Würfeln mit m Seiten geworfen werden können in ein n Dimensionales Array Java Basics - Anfänger-Themen 15
B Alle Benutzer anzeigen Java Basics - Anfänger-Themen 17
S Suchmaske alle Möglichkeiten effinzent durchgehen Java Basics - Anfänger-Themen 4
R Kurze Linien alle x-Pixel Java Basics - Anfänger-Themen 2
K Alle vorkommen eines Zeichens in StringBuffer Objekt löschen Java Basics - Anfänger-Themen 6

Ähnliche Java Themen


Oben