早教吧作业答案频道 -->其他-->
perl编程求助,怎么把数字转换成编码?在1.txt文件中有几百行数字,数字没有规律,格式如下:72 37 25 41 2 15 6 17 2825 28 12 13 15 18 68 7 15...等等我现在要把他们转换成01编码该怎么转换?转换法则如下
题目详情
perl编程求助,怎么把数字转换成编码?
在1.txt文件中有几百行数字,数字没有规律,格式如下:
72 37 25 41 2 15 6 17 28
25 28 12 13 15 18 68 7 15
...等等
我现在要把他们转换成01编码该怎么转换?转换法则如下:
以最大数为依据,例子中最大数是72,所以编码总长72位.
于是72对应的01编码就是 000000000...1,前面71个0,第72位是1.
37对应的01编码就是 00...001...0000,前面36个0,第37是1,后面35个0
25对应的01编码就是 000...01...0000,前面24个0,第25位是1,后面47个0.
现在要把1.txt中这几百行数字都变成这种格式该怎么写代码?
在1.txt文件中有几百行数字,数字没有规律,格式如下:
72 37 25 41 2 15 6 17 28
25 28 12 13 15 18 68 7 15
...等等
我现在要把他们转换成01编码该怎么转换?转换法则如下:
以最大数为依据,例子中最大数是72,所以编码总长72位.
于是72对应的01编码就是 000000000...1,前面71个0,第72位是1.
37对应的01编码就是 00...001...0000,前面36个0,第37是1,后面35个0
25对应的01编码就是 000...01...0000,前面24个0,第25位是1,后面47个0.
现在要把1.txt中这几百行数字都变成这种格式该怎么写代码?
▼优质解答
答案和解析
my ($max, @data);
open f1, "1.txt" or die "Can't open 1.txt";
push @data, split /\s+/, $_ while ;
close f1;
foreach ( 0..$#data ) {
$max = $data[$_] if $data[$_] > $max;
} $max--;
foreach my $e ( @data ) {
# print "$e: "; # 给你侦错用的.
for my $po( 0.. $max ) {
my $p = $po == $e-1 ? 1 : 0;
print $p;
}
print " $/"; # 分开每笔资料的格式, 随喜改动
}
open f1, "1.txt" or die "Can't open 1.txt";
push @data, split /\s+/, $_ while ;
close f1;
foreach ( 0..$#data ) {
$max = $data[$_] if $data[$_] > $max;
} $max--;
foreach my $e ( @data ) {
# print "$e: "; # 给你侦错用的.
for my $po( 0.. $max ) {
my $p = $po == $e-1 ? 1 : 0;
print $p;
}
print " $/"; # 分开每笔资料的格式, 随喜改动
}
看了 perl编程求助,怎么把数字...的网友还看了以下:
有一个三位数,它的十位上的数字等于个位上的数字与百位上的数字的和,十位上的数减去个位上的数等于2,百 2020-03-31 …
一个三位数的个位数字等于十位数字与百位,数字之和,个位数字上的百位数字之和等于十位数字的2倍,百位 2020-06-05 …
有一个三位数,个位上的数字与百位上的数字的和等于十位上的数字,百位上的数字的2倍比个位上的数字与十 2020-06-10 …
阅读下面的文字,完成1~5题。百褶裙尤今一直在等,等百褶裙卷土重来。百褶裙来势汹汹的在新加坡流行时 2020-07-03 …
只要列式1.一个四位数,千位数字是一,若把一移到个位上去,新数就比原数的五倍少49,求这个数.2. 2020-07-18 …
数优化108页8一个三位数,其个位数字是百位数字的2倍,而百位数字与个位数数字的和等于十位数字,如 2020-07-18 …
有一个三位数,它的十位数字等于个位数字与百位数字的和,个位数字与十位数字的和等于8,百位数字与个. 2020-07-21 …
一个数每个数位上的数字都不相同,且个位与十位上的数字和等于百位上的数字;十位与百位上的数字和等于千 2020-07-29 …
三元一次方程组应用题甲乙丙三个数的和是35,甲数的2倍比乙数大5,乙数的1/3等于丙数的1/2,求 2020-08-03 …
1.解3元一次方程步骤2x+4y+3z=9{3x-2y+5z=115x-6y+7z=132.一个三位 2020-10-31 …