perl – 给定输入的真值表生成

perl – 给定输入的真值表生成,第1张

概述我想为给定的input生成一个真值表.如果我给输入2输出将是假设的 10 01 11 00 如果输入为3,则输出为 111 000 110 101 011 100 001 010 我有一个代码片段 #!/usr/bin/perl#print "a|b|c\n";for $a (1, 0){ for $b (1, 0){ for $c (1,0) { 我想为给定的input生成一个真值表.如果我给输入2输出将是假设的

10 01 11 00 

如果输入为3,则输出为

111 000 110 101 011 100 001 010

我有一个代码片段

#!/usr/bin/perl#print "a|b|c\n";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 "@prefix\n";                                                            }                                                                             }

以下是一些示例案例:

> script.pl 101> script.pl 20 00 11 01 1> script.pl 30 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1
总结

以上是内存溢出为你收集整理的perl – 给定输入的真值表生成全部内容,希望文章能够帮你解决perl – 给定输入的真值表生成所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/langs/1229700.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存