Quantum::Entanglement

おもしろいものみっけた。ネタなのかマジなのか。

http://www.perl.com/pub/a/2001/08/08/quantum.html

# EPR pair

use Quantum::Entanglement qw(:DEFAULT :complex);

$Quantum::Entanglement::destroy = 0;

sub root_not {
   my ($prob, $val) = @_;
   return( $prob * i / sqrt(2) , $val,
           $prob / sqrt(2) , !$val );
}

# fermion a (|0> applyed Hadamard matrix)
$a = entangle( 1 => 0, 1 => 1 );
# fermion b (|0>)
$b = entangle( 1 => 0 );

# ad-hoc controled not
$b = q_logic(?&root_not, $b);
$b = $a * $b;

# entangled
if ($a) { print "b must be 1 ($b).?n" }
else { print "b must be 0 ($b).?n" }

ちょっと書いてみたけど、controled not が卑怯くさいし、途中で観測が起きてない保証もない。とりあえず定数時間で素因数分解でもさせてみると良いのだろうか。

なにかあれば下記メールアドレスへ。
shinichiro.hamaji _at_ gmail.com
shinichiro.h