Generieren alle möglichen Kombinationen in Java

Sheeraz Gul 12 Oktober 2023
  1. Verwenden Sie Wiederholung, um alle möglichen Kombinationen in Java zu generieren
  2. Verwenden Sie Include-Exclude, um alle möglichen Kombinationen in Java zu generieren
Generieren alle möglichen Kombinationen in Java

Dieses Tutorial zeigt, wie Sie alle möglichen Kombinationen der Elemente eines Arrays in Java generieren.

Verwenden Sie Wiederholung, um alle möglichen Kombinationen in Java zu generieren

Zuerst erstellen wir ein leeres Array, das die Ausgaben speichert. Die Idee ist, Elemente einzeln zu reparieren und dann die Wiederholung zu verwenden.

Schließlich, wenn die Anzahl der Elemente im anfänglichen Array gleich der Größe der Kombinationen wird, drucken wir das anfängliche Array. Lassen Sie uns versuchen, es in Java zu implementieren.

package delftstack;

import java.io.*;

public class Possible_Combinations {
  static void CombinationPossible(int Input_Array[], int Empty_Array[], int Start_Element,
      int End_Element, int Array_Index, int r) {
    // Current combination is ready to be printed, print it
    if (Array_Index == r) {
      for (int x = 0; x < r; x++) {
        System.out.print(Empty_Array[x] + " ");
      }
      System.out.println("");
      return;
    }

    for (int y = Start_Element; y <= End_Element && End_Element - y + 1 >= r - Array_Index; y++) {
      Empty_Array[Array_Index] = Input_Array[y];
      CombinationPossible(Input_Array, Empty_Array, y + 1, End_Element, Array_Index + 1, r);
    }
  }

  static void Print_Combination(int Input_Arrary[], int n, int r) {
    int Empty_Array[] = new int[r];
    CombinationPossible(Input_Arrary, Empty_Array, 0, n - 1, 0, r);
  }

  public static void main(String[] args) {
    int Input_Array[] = {10, 30, 50, 70, 90, 100};
    int r = 3;
    int n = Input_Array.length;
    Print_Combination(Input_Array, n, r);
  }
}

Der obige Code generiert alle möglichen Kombinationen des angegebenen Arrays in Form von drei Zahlen. Siehe Ausgabe:

10 30 50
10 30 70
10 30 90
10 30 100
10 50 70
10 50 90
10 50 100
10 70 90
10 70 100
10 90 100
30 50 70
30 50 90
30 50 100
30 70 90
30 70 100
30 90 100
50 70 90
50 70 100
50 90 100
70 90 100

Verwenden Sie Include-Exclude, um alle möglichen Kombinationen in Java zu generieren

Auf ähnliche Weise erstellen wir ein leeres Array und verwenden das Pascal-Identitätsproblem, um alle möglichen Kombinationen eines Arrays zu generieren.

In dieser Methode betrachten wir die Elemente des gegebenen Arrays und verwenden die beiden Fälle. Der erste Fall ist das Element, das in der aktuellen Kombination enthalten ist.

Der zweite Fall ist, dass das Element in der aktuellen Kombination ausgeschlossen ist. Versuchen wir, diese Methode in Java zu implementieren.

package delftstack;

import java.io.*;

public class Possible_Combinations {
  static void PossibleCombinations(
      int Input_Array[], int n, int Length, int Array_Index, int Empty_Array[], int x) {
    if (Array_Index == Length) {
      for (int y = 0; y < Length; y++) System.out.print(Empty_Array[y] + " ");
      System.out.println("");
      return;
    }

    if (x >= n)
      return;

    Empty_Array[Array_Index] = Input_Array[x];
    PossibleCombinations(Input_Array, n, Length, Array_Index + 1, Empty_Array, x + 1);

    PossibleCombinations(Input_Array, n, Length, Array_Index, Empty_Array, x + 1);
  }

  static void Print_Combination(int Input_Array[], int n, int Length) {
    int Empty_Array[] = new int[Length];

    PossibleCombinations(Input_Array, n, Length, 0, Empty_Array, 0);
  }

  public static void main(String[] args) {
    int Input_Array[] = {10, 30, 50, 70, 90, 100};
    int Length = 3;
    int n = Input_Array.length;
    Print_Combination(Input_Array, n, Length);
  }
}

Der obige Code generiert alle möglichen Kombinationen des angegebenen Arrays in Form von drei Zahlen. Siehe Ausgabe:

10 30 50
10 30 70
10 30 90
10 30 100
10 50 70
10 50 90
10 50 100
10 70 90
10 70 100
10 90 100
30 50 70
30 50 90
30 50 100
30 70 90
30 70 100
30 90 100
50 70 90
50 70 100
50 90 100
70 90 100
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook