Skip to content

Instantly share code, notes, and snippets.

@bpatra
Created December 6, 2020 09:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bpatra/6848499c79dacee27553d94bd0c305eb to your computer and use it in GitHub Desktop.
Save bpatra/6848499c79dacee27553d94bd0c305eb to your computer and use it in GitHub Desktop.
Operation in QSharp
operation TwoBitstringSuperposition (qs : Qubit[], bits1 : Bool[], bits2 : Bool[]) : Unit {
mutable i0 = Length(qs);
for (i in 0..Length(qs)-1){
if(bits1[i] == bits2[i]){
if(bits1[i]){
X(qs[i]);
}
}else{
if(i > i0){
if(bits1[i] == bits1[i0]){
CNOT(qs[i0], qs[i]);
}else{
X(qs[i0]);
CNOT(qs[i0], qs[i]);
X(qs[i0]);
}
}else{
H(qs[i]);
set i0 = i;
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment