关于perl数组抽取的问题

@beads里有5个元素,想随机抽取3个组成一个新的数组,应该怎么弄呢?谢谢!... @beads里有5个元素,想随机抽取3个组成一个新的数组,应该怎么弄呢?谢谢! 展开
 我来答
百度网友c9e795dda
推荐于2016-09-24 · TA获得超过5167个赞
知道大有可为答主
回答量:1128
采纳率:0%
帮助的人:1137万
展开全部
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
因为是随机的, 所以每次的结果都会不一样
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式