Ensemble des parties d'un ensemble

Résolu
matt2421 Messages postés 16 Date d'inscription   Statut Membre Dernière intervention   -  
 Utilisateur anonyme -
Bonjour,
j'aimerais creer un code qui me permettrait d'obtenir ceci:

This program prints the power set of the set of natural numbers 0 ... N.
Enter N (0 <= N <= 10): 1,5
Illegal numeric format
Enter N (0 <= N <= 10): -2
Enter N (0 <= N <= 10): 31
Enter N (0 <= N <= 10): 2
The powerset of { 0, 1, 2 } is
{ { }, { 0 }, { 1 }, { 0, 1 }, { 2 }, { 0, 2 }, { 1, 2 }, { 0, 1, 2 } }

VOICI MON CODE REDIGE PAR MOI:

import acm.program.ConsoleProgram;

public class PowerSet extends ConsoleProgram {

public void run(){
println("This program prints the power set of the set of natural numbers 0");

int N = readInt("Insert a natural number:");
while(true){
if(0> N||N >10 ){
readInt("Insert a natural number:");

}


}




if(0<=N ||N<=10 ){ // SI LE NOMBRE EST COMPRIS ENTRE 0 ET 10....la Formule magique...

}

comment continuer svp?

1 réponse

Utilisateur anonyme
 
Bonjour

Si tu associes un bit à chaque élément de ton ensemble, une partie de l'ensemble correspond à un nombre binaire à N chiffres avec la convention :
si un bit est à 0, l'élément correspondant n'appartient pas à la partie
si un bit est à 1, l'élément correspondant n'appartient pas à la partie
Pour lister toutes les parties de l'ensemble, il suffit d'énumérer tous les nombres à N bits, c'est à dire de compter de 0 à (2^N)-1.
Il ne reste qu'à traduire les nombres en binaires, ce qui est généralement inutile puisque les entiers sont représentés en binaire dans les ordinateurs, et à faire la liste des éléments associés aux bits qui sont à 1 dans le nombre en question.
0
matt2421 Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
suis pas tres pro java. ca pourrait donner quoi en code stp?
0
Utilisateur anonyme
 
Je t'ai juste donné le principe. Je ne connais pas Java.
C'est un algorithme très simple, pas besoin d'être pro.
Attention, comme il se base sur le fait que (2^N)-1 est un entier, avec une implémentation simple, la valeur autorisée pour N reste assez faible. Mais qui irait afficher l'ensemble des parties d'un ensemble de 30 éléments ?
0