-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathBinaryFormOfState.java
More file actions
40 lines (33 loc) · 1.13 KB
/
Copy pathBinaryFormOfState.java
File metadata and controls
40 lines (33 loc) · 1.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import java.lang.Math;
class BinaryFormOfState {
private boolean tableWithBinaryFormOfState[][];
private int totalQubits;
public BinaryFormOfState(int givenTotalQubits) {
totalQubits = givenTotalQubits;
int totalStates=(int)Math.pow(2,givenTotalQubits);
tableWithBinaryFormOfState = new boolean [totalQubits][totalStates];
String BinaryString;
for (int state=0; state<totalStates; state++){
BinaryString=Integer.toBinaryString(state);
for (int qubit=0; qubit<totalQubits; qubit++){
if(BinaryString.length()>qubit){
if(BinaryString.charAt(qubit)=='1'){
tableWithBinaryFormOfState[BinaryString.length()-1-qubit][state]=true;
}
}
}
}
}
public boolean QubitIsOneInState(int qubit, int state){
return tableWithBinaryFormOfState[qubit][state];
}
public void PrintResults(){
int totalStates=(int)Math.pow(2,totalQubits);
for (int state=0; state<totalStates; state++){
System.out.println("Binary form of state " + state + " is "+ Integer.toBinaryString(state));
for (int qubit=0; qubit<totalQubits; qubit++){
System.out.println("In state "+ state + ", qubit " + qubit + " is " + QubitIsOneInState(qubit,state));
}
}
}
}