perl – 给定输入的真值表生成
发布时间:2020-12-16 06:12:15 所属栏目:大数据 来源:网络整理
导读:我想为给定的input生成一个真值表.如果我给输入2输出将是假设的 10 01 11 00 如果输入为3,则输出为 111 000 110 101 011 100 001 010 我有一个代码片段 #!/usr/bin/perl#print "a|b|cn";for $a (1,0){ for $b (1,0){ for $c (1,0) { for $d ( 1,0) { print
我想为给定的input生成一个真值表.如果我给输入2输出将是假设的
10 01 11 00 如果输入为3,则输出为 111 000 110 101 011 100 001 010 我有一个代码片段 #!/usr/bin/perl #print "a|b|cn"; for $a (1,0){ for $b (1,0){ for $c (1,0) { for $d ( 1,0) { print "$a $b $c $d"; #print $x = ($a & $b & $c); print "n"; } } } } print "n"; 上面的代码是4. 如果不编写多个for循环,我不知道如何做到这一点.这里的值为2我需要写两个for循环,依此类推. 任何机构都可以告诉我如何为几个输入值调整此代码. 任何帮助将非常感谢 解决方法
递归
这是一个使用递归的简单解决方案: #!/usr/bin/perl -w my $variables=$ARGV[0]||0; show_combinations($variables); sub show_combinations { my($n,@prefix)=@_; if($n > 0) { show_combinations( $n-1,@prefix,0); show_combinations( $n-1,1); } else { print "@prefixn"; } } 以下是一些示例案例: > script.pl 1 0 1 > script.pl 2 0 0 0 1 1 0 1 1 > script.pl 3 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |