Jasvir Nagra <[EMAIL PROTECTED]> writes:
> #!/usr/bin/perl -lw
>
> use Quantum::Superpositions;
> use strict;
>
> my $tree = my $num = any(1,5,6,7);
> my $op = any qw!+ - / *!;
>
> $tree = any eigenstates "($num $op $tree)",
> eigenstates "($tree $op $num)"
> for 1..3;
>
> print grep { 21 == eval and not /(\d).*\1/ } eigenstates $tree;
> __END__
#!/usr/bin/perl
sub permu {
return ([]) unless @_;
map { my $i=$_; map { [$_[$i],@$_] } permu(@_[0..$_-1,$_+1..$#_]) } 0..$#_;
}
sub combi {
my $n; ($n,@_)[EMAIL PROTECTED]; return ([]) unless $n;
map { my $i=$_; map { [EMAIL PROTECTED],$_] } @_ } combi($n-1,@_);
}
for $tree ("(%s %s %s) %s (%s %s %s)",
"((%s %s %s) %s %s) %s %s",
"(%s %s (%s %s %s)) %s %s",
"%s %s ((%s %s %s) %s %s)",
"%s %s (%s %s (%s %s %s))") {
for $nums (permu(1,5,6,7)) {
for $ops (combi(3,'+','-','*','/')) {
my $expr = sprintf(sprintf($tree,map{$_,"%s"[EMAIL PROTECTED]),@$ops);
print "$expr\n" if 21 == eval $expr;
}
}
}
__END__
In retrospect, I could also have put %%s in the format strings instead
of using that map.
--
Jed Davis |"But life wasn't yes-no, on-off. Life was shades of
<[EMAIL PROTECTED]> | gray, and rainbows not in the order of the spectrum."
<[EMAIL PROTECTED]>| -- L. E. Modesitt, Jr., _Adiamante_
PGP key (fingerable) F33659F9 A098:903E:9B9A:DEF4:168F:AA09:BF07:807E:F336:59F9