gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 00:44:12 25 4
gpt4 key购买 nike

我想为给定的输入生成一个真值表。假设如果我给输入 2,输出将是

10 01 11 00 

if the input is 3 the output will be

111 000 110 101 011 100 001 010

i have a code snippet

#!/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, @prefix, 1);
} else {
print "@prefix\n";
}
}

以下是一些示例案例:
> 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

关于perl - 给定输入的真值表生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1666799/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com