gpt4 book ai didi

Perl 算法:排列和列表::AllUtils (uniq)

转载 作者:行者123 更新时间:2023-12-02 11:50:26 27 4
gpt4 key购买 nike

use Modern::Perl;
use Algorithm::Permute;
use List::AllUtils qw/uniq/;

find_perms(1151);

sub find_perms {
my ($value) = @_;
my @others;
my @digits = split(//, $value);

my $perm = Algorithm::Permute->new( \@digits );

while (my @next = $perm->next()) {
my $number = join('', @next);
push @others, $number;
}
@others = sort uniq @others;

# this one works correctly
# @others = sort ( uniq( @others ));

say "FOUND @others";
}

Output:
FOUND 1115 1115 1115 1115 1115 1115 1151 1151 1151 1151 1151 1151 1511 1511 1511 1511 1511 1511 5111 5111 5111 5111 5111 5111

嗨,

发现Algorithm::Permute后正在产生重复项,很可能是由于“1151”中“1”的数量,我决定使用 uniq。但是,使用不带括号的 sort uniq 不会产生预期的结果。但 sort(uniq(@x)) 确实如此。给出了什么?

最佳答案

perldoc -f sort 列出 sort 的三种语法功能:

sort SUBNAME LIST
sort BLOCK LIST
sort LIST

sort uniq @others匹配sort SUBNAME LIST排序的语法。它预计 uniq是一个比较全局变量 $a 的函数和$b ,并返回<0 , 0 ,或>0指示 $a 的相对顺序和$b .

看起来您正在期待并想要 sort LIST语法,这是当您说出以下之一时得到的结果

sort(uniq(@others))
sort(uniq @others)

关于Perl 算法:排列和列表::AllUtils (uniq),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11235248/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com