Error[8]: Undefined offset: 1, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

概述#!/usr/bin/env perluse warnings;use strict;die "perl $0 <样本总个数> <样本子集组合> <样本子集>\ne.g. perl $0 96 100 2 > 96.txt \n" unless @ARGV eq 3;my $sample = $ARGV[0]; # 样本数目my $n = $ARGV[1]; # 取出样本的子集数
#!/usr/bin/env perluse warnings;use strict;dIE "perl [+++] <样本总个数> <样本子集组合> <样本子集>\ne.g. perl [+++] 96 100 2 > 96.txt \n" unless @ARGV eq 3;my $sample =  $ARGV[0]; # 样本数目my $n = $ARGV[1]; # 取出样本的子集数目my $ex_samp = $ARGV[2]; # 取出样本的个数my $fac_samp = &fac($sample);my $fac_ex_samp = &fac($ex_samp);dIE "不可能取出比样本数目还要多的情况!!!" if($sample < $ex_samp);my $c = $fac_samp / ($fac_ex_samp * &fac($sample - $ex_samp));dIE "这是一个取出有放回且子集不重复的组合,取出的子集组合不能大于全集所有可能的排列组合!!!" if($n > $c);my %hash;for(my $i = 0;$i < $n; $i ++){	my @sub;	for(my $j = 0; $j < $ex_samp; $j ++)	{		push @sub,int(rand($sample) + 1);	}	my $str = join "-",sort @sub;	my $repeat;	my %rep;	foreach my $k(@sub)	{ 		 $rep{$k} ++; 		 if($rep{$k} eq 2)		 { 			  $repeat = 1; 			  last; 		 }	}	if(exists $hash{$str} or $repeat eq 1)	{		$n ++;	}else{		$hash{$str} = 0;		print "$str\n";	}}#print "$n\n";sub fac(){	if($_[0] eq 1)	{		return 1;	}elsif($_[0] eq 0){		return 1; #可以写0,不过1更好,因为涉及到组合的公式~	}else{		return ($_[0] * &fac($_[0] - 1));	}}
总的来说,满足等概率取出样本,并且组合形式不重复,涉及到了一些高中的知识,还好没忘。。。 总结

以上是内存溢出为你收集整理的perl 取出放回且子集不重复的组合情况全部内容,希望文章能够帮你解决perl 取出放回且子集不重复的组合情况所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 165, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
Error[8]: Undefined offset: 2, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

概述#!/usr/bin/env perluse warnings;use strict;die "perl $0 <样本总个数> <样本子集组合> <样本子集>\ne.g. perl $0 96 100 2 > 96.txt \n" unless @ARGV eq 3;my $sample = $ARGV[0]; # 样本数目my $n = $ARGV[1]; # 取出样本的子集数
#!/usr/bin/env perluse warnings;use strict;dIE "perl  <样本总个数> <样本子集组合> <样本子集>\ne.g. perl [+++] 96 100 2 > 96.txt \n" unless @ARGV eq 3;my $sample =  $ARGV[0]; # 样本数目my $n = $ARGV[1]; # 取出样本的子集数目my $ex_samp = $ARGV[2]; # 取出样本的个数my $fac_samp = &fac($sample);my $fac_ex_samp = &fac($ex_samp);dIE "不可能取出比样本数目还要多的情况!!!" if($sample < $ex_samp);my $c = $fac_samp / ($fac_ex_samp * &fac($sample - $ex_samp));dIE "这是一个取出有放回且子集不重复的组合,取出的子集组合不能大于全集所有可能的排列组合!!!" if($n > $c);my %hash;for(my $i = 0;$i < $n; $i ++){	my @sub;	for(my $j = 0; $j < $ex_samp; $j ++)	{		push @sub,int(rand($sample) + 1);	}	my $str = join "-",sort @sub;	my $repeat;	my %rep;	foreach my $k(@sub)	{ 		 $rep{$k} ++; 		 if($rep{$k} eq 2)		 { 			  $repeat = 1; 			  last; 		 }	}	if(exists $hash{$str} or $repeat eq 1)	{		$n ++;	}else{		$hash{$str} = 0;		print "$str\n";	}}#print "$n\n";sub fac(){	if($_[0] eq 1)	{		return 1;	}elsif($_[0] eq 0){		return 1; #可以写0,不过1更好,因为涉及到组合的公式~	}else{		return ($_[0] * &fac($_[0] - 1));	}}
总的来说,满足等概率取出样本,并且组合形式不重复,涉及到了一些高中的知识,还好没忘。。。 总结

以上是内存溢出为你收集整理的perl 取出放回且子集不重复的组合情况全部内容,希望文章能够帮你解决perl 取出放回且子集不重复的组合情况所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 165, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
<样本总个数> <样本子集组合> <样本子集"og:type" content="webpage"> <样本总个数> <样本子集组合> <样本子集" /> <样本总个数> <样本子集组合> <样本子集"> perl 取出放回且子集不重复的组合情况_语言综合_内存溢出

阅读 32

perl 取出放回且子集不重复的组合情况,第1张

概述#!/usr/bin/env perluse warnings;use strict;die "perl $0 <样本总个数> <样本子集组合> <样本子集>\ne.g. perl $0 96 100 2 > 96.txt \n" unless @ARGV eq 3;my $sample = $ARGV[0]; # 样本数目my $n = $ARGV[1]; # 取出
样本的子集数                        
#!/usr/bin/env perluse warnings;use strict;dIE "perl <样本总个数> <样本子集组合> <样本子集>\ne.g. perl 96 100 2 > 96.txt \n" unless @ARGV eq 3;my $sample = $ARGV[0]; # 样本数目my $n = $ARGV[1]; # 取出样本的子集数目my $ex_samp = $ARGV[2]; # 取出样本的个数my $fac_samp = &fac($sample);my $fac_ex_samp = &fac($ex_samp);dIE "不可能取出比样本数目还要多的情况!!!" if($sample < $ex_samp);my $c = $fac_samp / ($fac_ex_samp * &fac($sample - $ex_samp));dIE "这是一个取出有放回且子集不重复的组合,取出的子集组合不能大于全集所有可能的排列组合!!!" if($n > $c);my %hash;for(my $i = 0;$i < $n; $i ++){ my @sub; for(my $j = 0; $j < $ex_samp; $j ++) { push @sub,int(rand($sample) + 1); } my $str = join "-",sort @sub; my $repeat; my %rep; foreach my $k(@sub) {   $rep{$k} ++;   if($rep{$k} eq 2)  {    $repeat = 1;    last;   } } if(exists $hash{$str} or $repeat eq 1) { $n ++; }else{ $hash{$str} = 0; print "$str\n"; }}#print "$n\n";sub fac(){ if($_[0] eq 1) { return 1; }elsif($_[0] eq 0){ return 1; #可以写0,不过1更好,因为涉及到组合的公式~ }else{ return ($_[0] * &fac($_[0] - 1)); }}总的来说,满足等概率取出样本,并且组合形式不重复

,涉及到了一些高中的知识,还好没忘。。。

总结

以上是内存溢出为你收集整理的perl 取出放回且子集不重复的组合情况全部内容,希望文章能够帮你解决perl 取出放回且子集不重复的组合情况所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:

内存溢出

原文地址:

http://outofmemory.cn/langs/1282030.html
情况
(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
信息化咨询 信息化咨询 一级用户组
perl学习记录(一)
上一篇
2022-06-09
Perl包和模块
2022-06-09

发表评论
请登录后评论... 登录
提交

    评论列表(0条)
保存
{label} {label} {script} {script} {script} {script}