
Cognitive Bias

Personal collective of ideas, thoughts and notes

Young men speak about the future because they have no past, and old men speak of the past because they have no future.
Boyd K. Packer
One of the benefits of Quantum Computing is their ability to generate truly random numbers.
Since classical computers are deterministic machines, governed by algorithms, they are inherently predictable. Therefor any number generated by a classical computer, even if it seems complex is actually based on a set of conditions or algorithm, which therefor makes it a “pseudo random number”, rather than truly random.
To generate truly random numbers you need to rely on a physical processor or phenomena that are unpredictable, examples of this include radioactive decay, electronic noise or even atmospheric noise.
Since QC is essentially based on a physical process and the probabilistic nature of quantum mechanics, its qubits can exist in a superposition state, this means they can represent a combination of 0 and 1 simultaneously, this state/property can be harnessed by QRNG (Quantum random number generators) to produce truly random numbers.
As a fun project, I decided to build a small physical QRNG using an Arduino, laser diode, beam splitter and two photo resistors. The basic premise is that you pulse the laser, it sends a wave/particle (both!) through the beam splitter, 50% of the time it should hit one of the two photo resistors, providing you with a random string of “1”s or “0”s.
While a very simple, basic and small example, it is a fun experiment. Check out OpenQbit.com if you would like to build your own. To make this a little easier, I laser cut a template/outline for the beam splitter for holding each of the components.
Enjoy Randomness? Check out these blog, sites, references: http://www.reallyreallyrandom.com
Non Quantum RNG generator using zener noise: http://www.reallyreallyrandom.com/zener/breadboard/
Nice video explaining the seed variables used and middle squares: https://www.khanacademy.org/computing/computer-science/cryptography/crypt/v/random-vs-pseudorandom-number-generators




/* Annotated QRNGv1 Firmware V1.1
Author: Noah G. Wood
Modified: Paul Aschmann
Copyright (c) 2019 Spooky Manufacturing, LLC
License: GPLv3.0
*/
int triggerPin = 2; // This pin will pulse our quantum circuit
int hPin = A0; // This pin measures the horizontal polarized photons
int vPin = A1; // This pin measures the vertically polarized photons
float H = 0;
float V = 0;
long previousMillis = 0;
long interval = 1000;
float maxH = 0;
float maxV = 0;
void setup() {
// Just setting up triggerPin and serial connection
//pinMode(13, OUTPUT);
pinMode(triggerPin, OUTPUT);
Serial.begin(9600);
}
int Random() {
// Pulse the laser
digitalWrite(triggerPin, HIGH);
//delay(1);
digitalWrite(triggerPin, LOW);
}
void loop() {
// The main program
// Run our program and print the random bit to serial
//delay(1000);
unsigned long currentMillis = millis();
if (currentMillis - previousMillis > interval) {
previousMillis = currentMillis;
Random();
}
// Read the photoresistors
H = analogRead(hPin);
V = analogRead(vPin);
// Determine random bit
if (H > V) { // More photons in the H mode, return 0
Serial.println("-------------------- > H: ");
Serial.println(H);
Serial.println("V: ");
Serial.println(V);
if (H > maxH) {
maxH = H;
Serial.println("New max H");
}
} else if (V > H) { // More photons in the V mode, return 1
Serial.println("-------------------- > V: ");
Serial.println(V);
Serial.println("H: ");
Serial.println(H);
if (V > maxV) {
maxV = V;
Serial.println("New max V");
}
} else {
Serial.println("Same values");
}
delay(1000);
}
Generating true random strings using classical computers is not as easy as you may think. Unlike deterministic processes that follow specific algorithms and patterns, achieving true randomness poses a challenge in the realm of classical computing. Classical computers operate based on predetermined instructions and logical operations, which inherently lack the inherent unpredictability required for true randomness.
In contrast, true randomness involves an element of unpredictability that goes beyond the deterministic nature of classical computing. Attempts to generate random strings on classical computers often involve algorithms that simulate randomness, but these are ultimately constrained by the deterministic nature of the underlying hardware and software.
List of Mobile Apps I have designed, developed and published, mainly under the Lithium Labs umbrella.
During the NFT hype, generative art got a lot of attention due to its ability to programmatically, and algorithmically generate designs and art. These are a few resources I used and developed digging a little bit deeper into the subject.
Skill Share Course: https://www.skillshare.com/classes/Programming-Graphics-I-Introduction-to-Generative-Art/782118657
We have owned a Glowforge since their introduction and it has been a fun tool to work with. Here a few of my notes on cutting various materials, some acronyms and details which I found useful on this learning journey.
The cost of your deployment is based on 5 things, with a 6th affecting the estimated cost of deployment:
The flat fee of 32k gas. The CREATE op code, which is called during contract creation, costs a fixed 32k gas. This is of course on top of the 21k gas of a normal tx. Note: During contract creation from an EOA (non-contract address), the CREATE opcode isn’t explicitly called. The return value of the tx is actually used to create the contract, but the fixed 32k fee is the same. The amount of bytecode in the compiled contract. More bytecode means more storage, and each byte costs 200 gas. This adds up very quickly. Note that inherited parent contracts are also included in the bytecode. The TX data. All the bytecode your sending as tx data costs 68 for non-zero bytes and 4 for zero bytes. The code actually runs before creation of the contract, e.g. the constructor of the contract. If the constructor requires a lot of computation to generate the bytecode, then it’ll be even more expensive. The gas price. The higher gas price you use, the higher it will cost. Seeethgasstation.info
Here are a few random things to do …
I am currently doing a SAFe Training (Leading SAFe) and this was one of the slides shown, it really resonated with me and wanted to save it for posterity … I am wondering where we are in the progression of the Software & Digital Age …


You must be logged in to post a comment.