Subconjunto de um conjunto

7 respostas
T

Tou com alguma dificuldade em resolver:

dado por expl. um conjunto {2,5,6,9}
criar e imprimir os subconjuntos:

{2,5}

{2,6}

{2,9}

{5,6}

{5,9}

{6,9}

Alguem tem uma ideia?!
obrigada!

7 Respostas

sergiotaborda

titania:
Tou com alguma dificuldade em resolver:

dado por expl. um conjunto {2,5,6,9}
criar e imprimir os subconjuntos:

{2,5}

{2,6}

{2,9}

{5,6}

{5,9}

{6,9}

Alguem tem uma ideia?!

O que vc quer são combinações 2 a 2 dos elementos do conjunto.
Crie uma iteração entre os elementos que lhe permite iterar o primeiro elemento e depois uma outra iteração
que lhe permite iterar o segundo.

T

Sim é isso que queria…mas tou com dificuldade no codigo…
Alguem pode-me me dar uma luz como se faz o codigo?

Omeganosferatu

Posta ai o que você já fez até agora que a gente te da uma luz, por que postar o código inteiro só pagando =)
rsrs

T

Isto foi o que fiz....mas tá mal...

import java.util.Scanner;

public class ex_4_3 {
	
	public static void subconjuntos(int[]x){
		
		for(int i=0,j=1;i< x.length;i++){
			System.out.print("{"+i+","+j+"}");
		 j++;
		}
	}
	
	public static void main (String[] args){	
		
		Scanner keyboard = new  Scanner(System.in);
		
		//n--> número de elementos
		System.out.print("Insira o nº de elementos do conjunto: ");
		int n = keyboard.nextInt();
		
		int [] X = new int [n];
		
		System.out.println("Insira os valores do conjunto: ");
		
		for (int i= 0; i< X.length; i++){
			System.out.print((i+1)+"º Elemento ");
				X [i]= keyboard.nextInt();
				}
		
		subconjuntos(X);
		}
	
}
jingle

Tente ver se é isso.

import java.util.Scanner;

public class ex_4_3 {

    public static void subconjuntos(int[] x) {

        for (int i = 0; i < x.length; i++) {
            for (int j = 0; j < x.length; j++) {
                if (i != j && j > i) {
                    System.out.print("{" + x[i] + "," + x[j] + "}");
                }
            }
        }
    }

    public static void main(String[] args) {

        Scanner keyboard = new Scanner(System.in);

        //n--> número de elementos
        System.out.print("Insira o nº de elementos do conjunto: ");
        int n = keyboard.nextInt();

        int[] X = new int[n];

        System.out.println("Insira os valores do conjunto: ");

        for (int i = 0; i < X.length; i++) {
            System.out.print((i + 1) + "º Elemento ");
            X[i] = keyboard.nextInt();
        }

        subconjuntos(X);
    }
}
peczenyj

Humm.... eu posso fazer uso de dois Sets

import java.util.*;

public class A{
	public static void main(String [] xxx){		
		Set<Integer> numeros, outros;
		
		numeros = new TreeSet<Integer>();
		
		numeros.add(2);
		numeros.add(5);
		numeros.add(6);
		numeros.add(9);
		
		outros = new TreeSet<Integer>(numeros);
		
		for(Integer i : numeros){			
			outros.remove(i);
			for(Integer j : outros){
				System.out.printf("{%d,%d}\n",i ,j);
			}
		}		
	}
}

sem o "outros.remove(i)" eu faria uma matriz com todas as combinações.

entretanto eu combino todos os numeros com os numeros 'restantes'.

Bem que eu queria fazer no mesmo Set, mas eu recebo diversos "ConcurrentModificationException" :?

T

Muito obrigada!!!
Valeu a ajuda
:smiley:

Criado 25 de março de 2008
Ultima resposta 26 de mar. de 2008
Respostas 7
Participantes 5