tommychahir,
Of course this can be done without
Quantum::Superpositions, but since this sounded like fun:
#! /usr/bin/perl
use strict;
use warnings;
use Quantum::Superpositions;
my @array_1 = (1 .. 4);
my @array_2 = qw{1 2 2 3 3 3 4 4 4 4 5 6 7};
my @array_3 = eigenstates( any(@array_2) != all(@array_1) );
my @array_4 = Quantum::Superpositions::eigenstates( any(@array_2) != a
+ll(@array_1) );
print "Ordered:\n";
print "$_\n" for @array_3;
print "Hash:\n";
print "$_\n" for @array_4;
{
no warnings 'redefine';
*eigenstates = *main::eigenstates;
sub eigenstates ($) {
my @uniq;
my %seen;
for ( Quantum::Superpositions::collapse( $_[0] ) ) {
push @uniq , $_ if ! $seen{$_};
$seen{$_}++;
}
return @uniq;
}
}
Cheers -
L~R