Définition du problème
Imprimez le jeu de puissance d'un ensemble donné. Par exemple:
[1, 2, 3] => [[], [1], [2], [3], [1, 2], [1, 3], [2, 3], [1, 2, 3]]
Chaque élément doit être imprimé sur une ligne distincte, donc l'exemple ci-dessus serait imprimé comme suit:
[]
[1]
[2]
...
[1, 2, 3]
Exemple de code (en D, exemple python ici ):
import std.stdio;
string[][] powerset(string[] set) {
if (set.length == 1) {
return [set, []];
}
string[][] ret;
foreach (item; powerset(set[1 .. $])) {
ret ~= set[0]~item;
ret ~= item;
}
return ret;
}
void main(string[] argv) {
foreach (set; powerset(argv[1 .. $]))
writeln(set);
}
Contribution
Les éléments seront passés comme arguments. Par exemple, l'exemple fourni ci-dessus serait passé à un programme appelé powerset
comme:
powerset 1 2 3
Les arguments seront alphanumériques.
Règles
- Pas de bibliothèques à part io
- La sortie n'a pas besoin d'être commandée
- Le PowerSet ne doit pas être stocké, seulement imprimé
- Les éléments de l'ensemble doivent être délimités (par exemple
1,2,3
,[1,2,3]
et['1','2','3']
sont acceptables, mais123
ne sont pas- Les délimiteurs de fin sont corrects (par exemple
1,2,3, == 1,2,3
)
- Les délimiteurs de fin sont corrects (par exemple
- Le meilleur est déterminé en fonction du nombre d'octets
La meilleure solution sera décidée au moins 10 jours après la première soumission.
lambda L:reduce(lambda r,x:r+[s+[x]for s in r],L,[[]])
.