Output errado

Boa tarde,

Crei este algoritmo que gera todas as sequencias de numeros de um vetor.
No entanto, quando rodo o programa imprimi sequencias repetidas. O que está errado?
Obrigado :slight_smile:

package permutacao;

import java.io.PrintStream;
import java.util.ArrayList;

import java.util.*;
import java.lang.Math; 

public class Permutacao {
    
    private static int[] v;   
    private final PrintStream saida = System.out;
    
    
    public static void permuta1(int [] seq) {
        
        
    
        for ( int i=0; i<24; i++){
            
            int m=i;
            int n=4;
            int d = n;
            int r=0;
            int aux=0;
        
            
              
                
            r = m%d;
            aux = seq[n-d+r];
            seq[n-d+r] = seq[n-d];
            seq[n-d] = aux;
            m = (int)Math.floor((m-r)/d);
            d = d-1;
            imprime();
                
            
        } 
    }
    
    private static void imprime() {
         
        System.out.println();
        for (int e=0; e< v.length; e++) System.out.print( v[e] + " ");
        
    }
    
    public static void main(String[] args) {
         
        v = new int[] {0, 1, 2, 3};
        permuta1(v);
        
    }
}

Que tal colocar mais informações no post?

  • O que está saindo?
  • O que deveria sair?
  • Você debugou o código?

Esta a sair isto:

0 1 2 3
1 0 2 3
2 0 1 3
3 0 1 2
3 0 1 2
0 3 1 2
1 3 0 2
2 3 0 1
2 3 0 1
3 2 0 1
0 2 3 1
1 2 3 0
1 2 3 0
2 1 3 0
3 1 2 0
0 1 2 3
0 1 2 3
1 0 2 3
2 0 1 3
3 0 1 2
3 0 1 2
0 3 1 2
1 3 0 2
2 3 0 1

Deveria sair isto:

0 1 2 3
0 1 3 2
0 2 1 3
0 2 3 1
0 3 1 2
0 3 2 1
1 0 2 3
1 0 3 2
1 2 0 3
1 2 3 0
1 3 0 2
1 3 2 0
2 0 1 3
2 0 3 1
2 1 0 3
2 1 3 0
2 3 0 1
2 3 1 0
3 0 1 2
3 0 2 1
3 1 0 2
3 1 2 0
3 2 0 1
3 2 1 0