求助一个程序(perl程序)I003 38 ACTTA 42 48I001 21 GGAAG 25 50I002 35 AATATTAAAG 44 48假如中间大写字母的长度为L1,最后一个数字为L2,总数为m,求F=(L1/L2)/m;如第一行 L1=5,L2=48,m=3;第二行 L1=5,L2=50,m=3;第三

来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/16 01:22:38
求助一个程序(perl程序)I00338ACTTA4248I00121GGAAG2550I00235AATATTAAAG4448假如中间大写字母的长度为L1,最后一个数字为L2,总数为m,求F=(L1

求助一个程序(perl程序)I003 38 ACTTA 42 48I001 21 GGAAG 25 50I002 35 AATATTAAAG 44 48假如中间大写字母的长度为L1,最后一个数字为L2,总数为m,求F=(L1/L2)/m;如第一行 L1=5,L2=48,m=3;第二行 L1=5,L2=50,m=3;第三
求助一个程序(perl程序)
I003 38 ACTTA 42 48
I001 21 GGAAG 25 50
I002 35 AATATTAAAG 44 48
假如中间大写字母的长度为L1,最后一个数字为L2,总数为m,求F=(L1/L2)/m;
如第一行 L1=5,L2=48,m=3;第二行 L1=5,L2=50,m=3;第三行 L1=10,L2=48,m=3.
结果为:
0.0347
0.0333
0.0694

求助一个程序(perl程序)I003 38 ACTTA 42 48I001 21 GGAAG 25 50I002 35 AATATTAAAG 44 48假如中间大写字母的长度为L1,最后一个数字为L2,总数为m,求F=(L1/L2)/m;如第一行 L1=5,L2=48,m=3;第二行 L1=5,L2=50,m=3;第三
你没说m怎么得来的,全部都是3吗?
my $s,$l1,$l2,$m;
open(FD,'1.txt');
while($s=){
$s =~ s/^\s+|\s+$//g;
(undef,undef,$l1,undef,$l2)=split(/\s+/,$s);
$l1=length($l1);
$l2+=0;
$m=3;
printf("%.4f\n",$l1/$l2/$m);
}
close(FD);
把原来的数据存在文件1.txt里面