J'ai été mis au défi avec un problème de mathématiques. Étant donné dix nombres (dans ce cas, des nombres de 1 à 10), combien y a-t-il de combinaisons uniques de six nombres? La réponse courte est 210. Cependant, j'aimerais savoir quelles sont ces combinaisons.imprimer des lignes uniques en Perl
J'ai mis le code suivant ensemble. La première boucle fonctionne bien pour créer beaucoup de combinaisons triées, mais je n'ai pas pu imprimer uniquement les combinaisons de lignes uniques. Comment puis-je imprimer ces lignes uniques?
my %hash;
my @sorted_numbers;
# make all permutations with numbers from 1 to 10
my $permutor = List::Permutor->new (1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
while (my @permutation = $permutor->next()) {
my $string = "@permutation";
my ($N1, $N2, $N3, $N4, $N5, $N6, $N7, $N8, $N9, $N10) = split (/ /, $string);
# chose only the first six numbers and sort them in ascending order
my @numbers = ($N1, $N2, $N3, $N4, $N5, $N6);
@sorted_numbers = sort {$a <=> $b} @numbers;
}
# print out the unique number combinations from the temp file
my @unique_combinations = uniq @sorted_numbers;
foreach (@unique_combinations) {
print $_, "\n";
}
Vous ne devez d'abord tour '@ permutation' dans une chaîne, puis le partage encore. Utilisez simplement '@numbers = @permutation [0..5]'. Et il semble un peu étrange de trier les chiffres ... le but de cet exercice n'est-il pas de trouver les différentes permutations? – TLP
combinaisons uniques en fait. J'ai juste des façons bizarres de faire les choses: S mais j'apprends;) – Steve
Aussi, utiliser un hash est souvent le moyen le plus rapide de trouver des trucs uniques: my @stuff = (1,2,3,3, "somestring"); mon% unique; foreach mon $ foo (@stuff) {$ unique {$ foo} = 1; } imprimer les clés% unique; –