Größe der Zahlenkombinationen eines Arrays begrenzen

Duardo

Mitglied
Hallo, ich habe es hier jetzt letzendlich geschafft alle möglichen Kombinationen eines Arrays herauszufinden und auszugeben. Nun würde ich gerne meinen Code so bearbeiten dass man die Größe der Kombinationen begrenzen kann. Momentan sind die Kombinationen so groß wie das Array. So werden aus 1, 2, 3, 4 Kombinationen wie 1, 2, 4, 3 usw. gemacht. Mein Ziel wäre es nun, dass man dann daraus Kombinationen wie: 1, 2, 3 ; 1, 2, 4 usw. machen kann. Schonmal danke im voraus. Hier mein Code:

Code:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Vector;

import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.ScrollPaneConstants;

public class GridBagLayoutExample extends JFrame implements ActionListener {
    
    private JPanel panel;
    private JButton ok;
    private JTextArea text;
    private String str;
    private String a;
    private String b;
    private int zahlKombi;
    private JScrollPane scroll;
    
    public GridBagLayoutExample() {
        
        panel = new JPanel();
        ok = new JButton("OK");
        ok.addActionListener(this);
        str = ("1, 2, 3, 4");
        text = new JTextArea(str, 16, 16);
        text.setEditable(false);    
        scroll = new JScrollPane(text);
        scroll.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
    
        panel.add(scroll);
        panel.add(ok);
        
        add(panel);    
        
        pack();
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
    }

    public static void main(String[] args) {
        new GridBagLayoutExample();
    }
    
    public void permute(java.util.List intList, int k){
        for(int i = k; i < intList.size(); i++){
            java.util.Collections.swap(intList, i, k);
            permute(intList, k+1);
            java.util.Collections.swap(intList, k, i);
        }
        if (k == intList.size() -1){
            text.append(Arrays.toString(intList.toArray()) +" " + ", " + "\n");
            b=text.getText();
            b = b.replace( "[", "" );
            b = b.replace( "]", "" );
            text.setText(b);
        }
    }   
    @Override
    public void actionPerformed(ActionEvent arg0) {
        
        int k = 0;
        a = text.getText();    
        
        String[] zahlenstring = a.split(", ");
        int[] zahlenint = new int[zahlenstring.length];
        
        for(int i=0; i < zahlenstring.length ;i++) {
            zahlenint[i] = Integer.parseInt(zahlenstring[i]);
        }
        
        ArrayList intList = new ArrayList();
        for (int i = 0; i < zahlenint.length; i++) {
            intList.add(zahlenint[i]);
        }
        
        permute(intList, k);
      
    }
}
 

Anfänger2011

Bekanntes Mitglied
Ich weiß nicht ob ich dein Vorhaben richtig, aber ich würde das mit einer Abfrage machen, die array bis zu der gewünschten Größe zulässt. Wenn das nicht ganz auf dein Problem zutrifft, dann beschreib es noch Mal ein bisschen genauer ;)
 

Duardo

Mitglied
Also meine Methode generiert alle möglichen Kombinationen des Inhalts eines Arrays. Hier aber nur mit Verschiebungen, also darf eine Zahl in einer Kombination nicht zwei mal vorkommen. Nun möchte ich diese Kombinationen auf drei Stellplätze begrenzen. Aber weiterhin sollen diese nur aus dem Inhalt des Arrays bestehen und durch alle möglichen Verschiebungen von diesem.
 

Barista

Top Contributor
> Also meine Methode generiert alle möglichen Kombinationen des Inhalts eines Arrays.

Seltsamerweise heisst die Methode permut.

Schau mal auf Wikipedia nach,
was der Unterschied zwischen Permutationen
und Kombinationen ist.

> Hier aber nur mit Verschiebungen, also darf eine Zahl in einer Kombination nicht zwei mal vorkommen.

Wahrscheinlich meinst Du Vertauschungen, statt Verschiebungen.

Bei Vertauschungen ändert sich an der Anzahl einer Zahl nichts.

> Nun möchte ich diese Kombinationen auf drei Stellplätze begrenzen.

Kannst Du das noch mal genauer beschreiben?

> Aber weiterhin sollen diese nur aus dem Inhalt des Arrays bestehen und durch alle möglichen Verschiebungen von diesem.

Wie oben gesagt, bei Vertauschungen wird diese Bedingung eingehalten.

Für Kombinationen funktioniert nach meiner Meinung folgender Algorithmus:

Der Rahmen ist eine rekursive Methode.

Übergeben wird eine Menge (Array) von Werten.

In einer Schleife wird jeweils ein Wert
(einer nach dem anderen) ausgewählt.

Von der Menge (Array) wird eine Kopie
ohne den ausgewählten Wert erzeugt.

Mit der Kopie wird die Methode rekursiv
aufgerufen.

Die Methode liefert Arrays oder Listen (jetzt ist die
Position der Werte relevant) aller Kombinationen
der Restmenge (ohne ausgewählten Wert).

Der ausgewählte Wert und die gelieferten Kombinationen
der Restmenge werden jeweils hintereinander verbunden
(konkateniert).

Dies sind die Ergebnis-Kombinationen.

Die Rekursion terminiert, wenn die Restmenge nur noch
ein Element hat.

Also gibt die rekursive Methode bei Übergabe einer
Werte-Menge der Größe 1 genau diese Werte-Menge
(eventuell eine unveränderliche Kopie) als Ergebnis
zurück.

Eine übergebene leere Menge (Array der Größe 0)
ergibt eine leere Menge von Kombinationen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Encera Größe eines Objektes in Byte berechnen Allgemeine Java-Themen 2
J Größe einer CD ermitteln Allgemeine Java-Themen 10
D Integer-Array variabler Größe mit Zahlen befüllen (Schleifen) Allgemeine Java-Themen 0
N Kombinationen beliebiger Größe berechnen Allgemeine Java-Themen 1
heyluigi Random Integer Array Ausgabe nach Größe sortieren Allgemeine Java-Themen 6
C Ein Array mit der Größe von 1 KB erstellen Allgemeine Java-Themen 3
L Größe eines Objekts im Arbeitsspeicher Allgemeine Java-Themen 1
M ZipOutputStream gleiche Datei andere Größe? Allgemeine Java-Themen 0
M Array "Größe" anpassen Allgemeine Java-Themen 2
V Files mit Umlauten ergeben keine Größe Allgemeine Java-Themen 9
E ArrayList mit unbekannter Größe Allgemeine Java-Themen 8
F String in feste Größe zerlegen Allgemeine Java-Themen 11
F JFreeChart Größe anpassen Allgemeine Java-Themen 8
Z Position/Größe von Windows-Fenstern ermitteln Allgemeine Java-Themen 12
B JScrollPane und JPanel: Scrollen nur nach Größe des JPanels Allgemeine Java-Themen 2
W Größe des eingebauten Arbeitsspeichers auslesen Allgemeine Java-Themen 13
Developer_X Java3D-Ball größe angeben Allgemeine Java-Themen 12
reibi Größe Array aus bytes Allgemeine Java-Themen 14
data89 Die Größe eines Strings in Byte berechnen? Allgemeine Java-Themen 12
G ändernde größe des GrindBagL Allgemeine Java-Themen 2
L unterschiedliche Größe beim serialisieren eines Objektes! Allgemeine Java-Themen 6
G itext größe von image Allgemeine Java-Themen 2
S array von unbekannter größe Allgemeine Java-Themen 2
T Größe eine Variablen in Bytes? Allgemeine Java-Themen 22
C Größe von einem File Allgemeine Java-Themen 9
D JFrame vergrößert nicht auf die gewünschte Größe Allgemeine Java-Themen 2
S Bild Größe verändern Allgemeine Java-Themen 2
G String Array Größe begrenzt? Allgemeine Java-Themen 4
B ArrayList mit Größe initialisieren Allgemeine Java-Themen 16
P Größe eines Directories ermitteln mit allen SubDIR`s Allgemeine Java-Themen 28
P Maximale Größe einer Klasse Allgemeine Java-Themen 9
G Image in der Größe ändern Allgemeine Java-Themen 2
S Swing - Problem mit Fenster-/Komponenten-Größe Allgemeine Java-Themen 3
R Größe der JRE anpassen Allgemeine Java-Themen 18
G http maximale transfer größe? Allgemeine Java-Themen 3
M Datein einlesen und in feste Größe aufsplitten Allgemeine Java-Themen 2
J Größe von 2D-Arrays Allgemeine Java-Themen 3
H Größe eines Bildes ändern und Bild speichern Allgemeine Java-Themen 11
E JPEG Datei Größe und Qualität ändern (für Thumbnails) Allgemeine Java-Themen 4
H Größe eines Schriftzeichens ermitteln Allgemeine Java-Themen 2
thE_29 Größe bzw. Zeilen einer Datei Allgemeine Java-Themen 4
L Java-Programm Zahlenkombinationen ausgeben Allgemeine Java-Themen 10
M alle möglichen Zahlenkombinationen Allgemeine Java-Themen 5
S Hilfe Zahlenkombinationen Allgemeine Java-Themen 15
O regulärer Ausdruck zum durchsuchen eines Strings verwenden Allgemeine Java-Themen 2
T Rotationswinkel eines Bildes bestimmen Allgemeine Java-Themen 4
C Probleme beim Erstellen eines runnable-jar files Allgemeine Java-Themen 1
J JavaScript innerhalb eines Java Projekts ausführen Allgemeine Java-Themen 2
8u3631984 Prüfen ob min. ein Element eines Sets in einem anderen Set enh Allgemeine Java-Themen 4
M Array Rang eines Elements Allgemeine Java-Themen 4
OnDemand Teile eines Links entfernen Allgemeine Java-Themen 6
H Auslesen eines (LDAP-)Attributs in Active Directory Allgemeine Java-Themen 2
W JSON parsen eines ,mit JS.stringify erstellten Strings Allgemeine Java-Themen 27
H Textposition eines gedrehten Textes verschieben Allgemeine Java-Themen 8
berserkerdq2 run-methode eines Threads so programmieren, dass 30x die Sekunde etwas ausgeführt wird. Allgemeine Java-Themen 44
E Ersetzen eines Bildes in der Kopfzeile eines Word-Docx-Dokuments mit Apache POI XWPF Allgemeine Java-Themen 0
N Fahrtrichtung eines selbstfahrenden Auto ändern Allgemeine Java-Themen 3
T Letztes Zeichen eines Strings enfernen Allgemeine Java-Themen 14
S Übergabe eines Sortierkriteriums für ein Artikel Array mittels BiPredicate<Artikel, Artikel> Allgemeine Java-Themen 13
gotzi242 Schatzsuche mithilfe eines O(log n) Algorithmus Allgemeine Java-Themen 2
C Koordinaten LONG/LAT eines neuen Punktes in bestimmter Entfernen und Winkel berechnen Allgemeine Java-Themen 3
Tobero Meine Funktion für das beinhalten eines Punktes in einem Kreis funktioniert nicht Allgemeine Java-Themen 5
LimDul Direktes return eines Array geht nicht Allgemeine Java-Themen 20
S Mittelwert anhand eines Stream berechnen Allgemeine Java-Themen 5
kodela Breite eines erweiterten Monitors feststellen Allgemeine Java-Themen 5
R Zeilen eines 2d Arrays abwechselnd links und rechts mit Nullen auffüllen Allgemeine Java-Themen 14
Zrebna Alternative Darstellung eines Codesnippets Allgemeine Java-Themen 33
kodela Inhalt eines Arrays ändert sich mysteriös Allgemeine Java-Themen 2
bueseb84 Wget mit Wildcards - oder wie lädt man bei JFrog die letzte Version eines Artifacts herunter Allgemeine Java-Themen 3
N Erkennen eines Programs Allgemeine Java-Themen 2
N Pausieren eines Programmes Allgemeine Java-Themen 4
D Input/Output Implementierung eines CommandHandlers/Parsers für viele Eingaben Allgemeine Java-Themen 26
M Gibt es eine API die den aktuellen Wert eines Indikators beim Trading zurückgibt? Allgemeine Java-Themen 7
F Wie bekommt man alle Filenamen eines Webserver Verzeichnisses Allgemeine Java-Themen 6
A Fehler beim Öffnen eines Projekts Allgemeine Java-Themen 6
N Eigenschaften eines Buttons per Setter verändern Allgemeine Java-Themen 5
S Ausfuehrung eines Programms aufzeichnen..? Allgemeine Java-Themen 4
X Ermittlung eines doppelte Paars mit Streams Allgemeine Java-Themen 50
Stonie Prüfen von direkter Implementierung eines Interfaces Allgemeine Java-Themen 7
S Vorbereitung eines Praktikums Allgemeine Java-Themen 4
H Aufruf eines Web Service anhand übergebenen Parameter Allgemeine Java-Themen 2
M Weiterleiten von empfangenen Nachrichten eines StompSessionHandlers Allgemeine Java-Themen 1
J Programm zum Suchen eines Wortes im Dateisystem Allgemeine Java-Themen 4
H Rename eines Projekts Allgemeine Java-Themen 1
J Fenstergröße eines anderen Programmes auslesen Allgemeine Java-Themen 9
ReinerCoder auf Klassen innerhalb eines package zugreifen Allgemeine Java-Themen 22
Meeresgott Erste Schritte Sourcetree - Git | Suchen eines Commits Allgemeine Java-Themen 2
E Status eines USB Mikrofon abfragen Allgemeine Java-Themen 2
DaCrazyJavaExpert OOP Ansätze und Tipps zum Porgrammieren eines Taschenrechners Allgemeine Java-Themen 25
A OOP Problem beim Berechnen der größten Fläche eines Ringes Allgemeine Java-Themen 19
JavaNewbie2.0 Start eines Anderen Programm erkennen Allgemeine Java-Themen 6
I Verbindung eines Java-Plugins mit Webserver Allgemeine Java-Themen 3
L Auswertung eines Testes funktioniert nicht Allgemeine Java-Themen 37
G Iteratoren - Wie kann man mithilfe von Iteratoren nur jeden zweiten Wert eines TreeSets ausgeben? Allgemeine Java-Themen 4
GreenTeaYT Elemente eines 2Dim LinkedList von links nach rechts ausgeben? Allgemeine Java-Themen 0
B Spalten eines 2d-Arrays Allgemeine Java-Themen 2
M Rechenprogramm eines wissenschaftlichen Taschenrechners Allgemeine Java-Themen 4
S Eigenschaften (hier Verknüpfung) eines Files lesen Allgemeine Java-Themen 2
E Typüberprüfung eines chars Allgemeine Java-Themen 5
H Hilfe bei Erstellung eines Hilfe Fenster bei Tastendruck (F1 bei Win98) Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben