m * n 크기의 행렬로 모든 요소 조합을 인쇄합니다.

스왑 닐 라 히르

m * n 크기의 행렬로 모든 요소 조합을 인쇄합니다.

샘플 예 :

1  3  5  
2  6  7

예상 출력 :

1 , 3 , 5 
1 , 3 , 7 
1 , 6 , 5
1 , 6 , 7 
2 , 3 , 5
2 , 3 , 7
2 , 6 , 5
2 , 6 , 7

규칙 :

  • 모든 조합은 행렬의 왼쪽에서 시작하여 오른쪽으로 진행됩니다. 하지만 행을 전환 할 수 있습니다.
  • 모든 조합에는 열 수와 동일한 요소 수가 있어야합니다.
  • 조합에는 동일한 열의 요소가 두 번 표시 될 수 없습니다.
  • 열과 행의 수는 다를 수 있습니다. 따라서 솔루션은 일반적이어야합니다.

    import java.util.Scanner;
    
    class Combination {
    public static void main(String args[]) {
    int row, col, i, j;
    
    Scanner in = new Scanner(System.in);
    System.out.println("Enter the number of rows and columns of matrix:\n");
    row = in.nextInt();
    col = in.nextInt();
    
    int first[][] = new int[row][col];
    System.out.println("Enter the elements if matric m*n:\n");
    for (i = 0; i < row; i++) {
        for (j = 0; j < col; j++) {
            first[i][j] = in.nextInt();
        }
    }
    System.out.println("Matrix:\n");
    for (i = 0; i < row; i++) {
        for (j = 0; j < col; j++) {
            System.out.print(first[i][j] + "\t");
        }
        System.out.println();
    }
    // Final Logic from here...
    System.out.println("\nOut Matrix:\n");
    for (i = 0; i < 2; i++) {
        for (j = 0; j < 2; j++) {
            for (int k = 0; k < 2; k++) {
                System.out.println(first[i][0] + "," + first[j][1] + ","
                        + first[k][2]+"\n");
            }
        }
    }
     /* while (i < 2) {
        j = 0;
        while (j < 2) {
            k = 0;
            while (k < 2) {
                System.out.println(first[i][0] + "," + first[j][1] + ","
                        + first[k][2]);
                k++;
            }
            j++;
        }
        i++;
    }*/
    in.close();
    }
    }
    
특정 입력에는 잘 작동하지만 동적으로 수행 할 수 없습니다 .... 도움이 필요합니다 ..

미리 감사드립니다 ...

세르게이 파우 크

다음과 같이 재귀를 사용할 수 있습니다.

...
    // Final Logic from here...
    System.out.println("\nOut Matrix:\n");
    int[] outputRow = new int[col];
    print(0, row, col, first, outputRow);

}

private static void print(int j, int row, int col, int[][] first, int[] outputRow) {
    for (int i = 0; i < row; i++) {
        outputRow[j] = first[i][j];
        // recursively continue to populate outputRow until we reach the last column (j == col -1)
        if (j < col - 1) {
            print(j + 1, row, col, first, outputRow);               
        }
        // we have reached the last column (j == col -1) so now we could print current permutation
        if (j == col - 1) {
            for (int k = 0; k < col; k++) {
                System.out.print(" " + outputRow[k]);                   
            }
            System.out.println();                   
        }
    }
}

여기에서로 시작하는 재귀 호출 당 하나의 열을 처리 j==0합니다.

outputRow 현재 순열을 저장하고 재귀 적으로 업데이트됩니다.

재귀 적으로 마지막 열에 도달하면 현재 순열을 인쇄 할 시간입니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

R은 n 개 요소로 구성된 문자형 벡터에서 크기 m의 가능한 모든 조합을 생성합니다.

분류에서Dev

배열의 배열에서 모든 요소 조합을 인쇄합니다.

분류에서Dev

크기 n의 배열에서 크기 r의 모든 조합을 인쇄합니다.

분류에서Dev

Java에서 크기 n의 주어진 정수 배열에 r 요소의 가능한 모든 순열을 인쇄합니다.

분류에서Dev

c에서 행렬 요소의 조합을 인쇄하고 싶습니다.

분류에서Dev

부모 크기를 기준으로 한 요소로 위젯의 모든 자식을 축소합니다.

분류에서Dev

n * m 행렬 행의 가능한 모든 합계 목록을 얻는 방법

분류에서Dev

k 개의 세트로 분할 된 n 개의 요소의 모든 조합을 생성하는 알고리즘

분류에서Dev

2 차원 행렬의 numpy 행렬 요소를 해당 1 차원 위치에있는 모든 요소의 합으로 나눕니다.

분류에서Dev

openCV의 모든 행렬 요소에서 값을 뺍니다.

분류에서Dev

Haskell의 N 목록 요소의 모든 조합

분류에서Dev

다중 집합 요소의 모든 조합을 반복합니다.

분류에서Dev

n 개의 가능한 요소에서 3 개 값의 가능한 모든 조합을 가져옵니다.

분류에서Dev

세트의 모든 요소를 어떻게 인쇄합니까?

분류에서Dev

최소 크기 k에서 n까지의 모든 조합 찾기

분류에서Dev

행렬의 모든 셀을 해당 행 합계로 채우기

분류에서Dev

python pandas 데이터 프레임은 모든 요소를 (행의 요소 / 최대 요소)로 변경합니다.

분류에서Dev

구조체의 모든 멤버 이름을 인쇄합니다.

분류에서Dev

각 요소가 1에서 n까지 인 n ^ 2 요소 목록의 모든 조합을 생성 하시겠습니까?

분류에서Dev

구조체의 모든 요소 인쇄

분류에서Dev

목록의 모든 행에서 n 개의 임의의 요소를 선택합니다.

분류에서Dev

다차원 배열의 N 요소 조합을 모두 가져옵니다.

분류에서Dev

함수가 실행될 때마다 목록의 n 개 요소를 인쇄합니다.

분류에서Dev

2x2 행렬의 모든 요소 조합, 지정된 값과 동일한 행 및 열 합계

분류에서Dev

열의 모든 요소의 합으로 나누기

분류에서Dev

비트 크기 N의 가능한 모든 비트 조합을 얻기

분류에서Dev

":"의 모든 오른쪽을 같은 너비로 인쇄합니다.

분류에서Dev

요소의 임의의 수에 대한 모든 조합을 받기

분류에서Dev

M * N 행렬의 각 3x3 창을 numpy로 M / 3 * N / 3 행렬로 합산

Related 관련 기사

  1. 1

    R은 n 개 요소로 구성된 문자형 벡터에서 크기 m의 가능한 모든 조합을 생성합니다.

  2. 2

    배열의 배열에서 모든 요소 조합을 인쇄합니다.

  3. 3

    크기 n의 배열에서 크기 r의 모든 조합을 인쇄합니다.

  4. 4

    Java에서 크기 n의 주어진 정수 배열에 r 요소의 가능한 모든 순열을 인쇄합니다.

  5. 5

    c에서 행렬 요소의 조합을 인쇄하고 싶습니다.

  6. 6

    부모 크기를 기준으로 한 요소로 위젯의 모든 자식을 축소합니다.

  7. 7

    n * m 행렬 행의 가능한 모든 합계 목록을 얻는 방법

  8. 8

    k 개의 세트로 분할 된 n 개의 요소의 모든 조합을 생성하는 알고리즘

  9. 9

    2 차원 행렬의 numpy 행렬 요소를 해당 1 차원 위치에있는 모든 요소의 합으로 나눕니다.

  10. 10

    openCV의 모든 행렬 요소에서 값을 뺍니다.

  11. 11

    Haskell의 N 목록 요소의 모든 조합

  12. 12

    다중 집합 요소의 모든 조합을 반복합니다.

  13. 13

    n 개의 가능한 요소에서 3 개 값의 가능한 모든 조합을 가져옵니다.

  14. 14

    세트의 모든 요소를 어떻게 인쇄합니까?

  15. 15

    최소 크기 k에서 n까지의 모든 조합 찾기

  16. 16

    행렬의 모든 셀을 해당 행 합계로 채우기

  17. 17

    python pandas 데이터 프레임은 모든 요소를 (행의 요소 / 최대 요소)로 변경합니다.

  18. 18

    구조체의 모든 멤버 이름을 인쇄합니다.

  19. 19

    각 요소가 1에서 n까지 인 n ^ 2 요소 목록의 모든 조합을 생성 하시겠습니까?

  20. 20

    구조체의 모든 요소 인쇄

  21. 21

    목록의 모든 행에서 n 개의 임의의 요소를 선택합니다.

  22. 22

    다차원 배열의 N 요소 조합을 모두 가져옵니다.

  23. 23

    함수가 실행될 때마다 목록의 n 개 요소를 인쇄합니다.

  24. 24

    2x2 행렬의 모든 요소 조합, 지정된 값과 동일한 행 및 열 합계

  25. 25

    열의 모든 요소의 합으로 나누기

  26. 26

    비트 크기 N의 가능한 모든 비트 조합을 얻기

  27. 27

    ":"의 모든 오른쪽을 같은 너비로 인쇄합니다.

  28. 28

    요소의 임의의 수에 대한 모든 조합을 받기

  29. 29

    M * N 행렬의 각 3x3 창을 numpy로 M / 3 * N / 3 행렬로 합산

뜨겁다태그

보관