Я столкнулся с проблемой математики. Учитывая десять чисел (в данном случае числа от 1 до 10), сколько существует уникальных комбинаций из шести чисел? Короткий ответ - 210. Однако я хотел бы знать, что это за комбинации.
Я собрал следующий код. Первый цикл while работает отлично для создания множества отсортированных комбинаций, однако я не смог распечатать только уникальные комбинации строк. Как я могу распечатать эти уникальные строки?
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";
}