Signaler

Ensemble des parties d'un ensemble [Résolu]

Posez votre question matt2421 16Messages postés jeudi 19 mai 2016Date d'inscription 28 novembre 2016 Dernière intervention - Dernière réponse le 25 nov. 2016 à 20:28
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?
Afficher la suite 
Utile
+0
moins plus
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.
matt2421 16Messages postés jeudi 19 mai 2016Date d'inscription 28 novembre 2016 Dernière intervention - 25 nov. 2016 à 20:22
suis pas tres pro java. ca pourrait donner quoi en code stp?
Répondre
le père. 5719Messages postés mardi 15 mai 2012Date d'inscription 11 décembre 2016 Dernière intervention - 25 nov. 2016 à 20:28
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 ?
Répondre
Ajouter un commentaire

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !