1个回答
展开全部
sub randomElem {
my ($want, @array) = @_ ;
my (%seen, @ret);
while ( @ret != $want ) {
my $num = abs(int(rand($#array)));
if ( ! $seen{$num} ) {
++$seen{$num};
push @ret, $array[$num];
}
}
return @ret;
}
my @array = ( 'A'..'Z' );
for ( 1..10 ) { # 给你 random 10 个看看
my @new = randomElem ( 3 => @array ) ; # pick any 3 from @array
print "@new$/";
}
randomElem() 的第一个参数是你要从後面的数组中抽出几多个元素
追问
my @array = ( 'A'..'Z' )是说@array由A-Z这26个英文字母组成。for (1..10)random10个的意义是?randomElem ( 3 => @array )是从A-Z从随机取3个,还是从1-10中随机取3个?谢谢。
追答
你跑一下不就知道了吗 ? 1..10 是将 'A'-'Z' 随机抽 3 个, 做 10 次, 你会得出类似这样的结果:
Q G N
H B L
Y R H
V A F
U N L
P V H
J T N
V Q F
S C K
J O X
因为是随机的, 所以每次的结果都会不一样
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询