Premiers pas avec l'informatique quantique, Azure Quantum et Q#
Microsoft a publié, il y a quelques temps, un SDK pour exécuter/simuler un ordinateur quantique. Ce SDK manipule des qbits, des états superposés et des mesures de propriétés.
SI vous ne connaissez rien à la physique quantique, c'est peut être mieux de suivre ce cours qui est abordable sans bagage mathématique : Quantum mechanics for everyone .
Un qbit est l'élément constituant d'un ordinateur quantique. Lorsqu'il est dans l'état superposé (avant la mesure), la propriété peut prendre la valeur 0 ou 1 (50% de chance d'obtenir 1 et 50% de chances d'obtenir 0).
Si je veux écrire une fonction qui retourne un nombre aléatoire, j'écris une fonction pour obtenir l'état superposé de la propriété. En Q# cela donne :
namespace Qrng {
open Microsoft.Quantum.Convert;
open Microsoft.Quantum.Math;
open Microsoft.Quantum.Measurement;
open Microsoft.Quantum.Canon;
open Microsoft.Quantum.Intrinsic;
//operation qui retourne l'état d'un qbit
operation SampleQuantumRandomNumberGenerator() : Result {
using (q = Qubit()) { // Alloue un qubit.
H(q); // Positionne le qbit dans les états superposés. Il y a donc 50% de probabilité pour |0> et 50% pour |1>. Cette fonction H est une porte de Hadamard!
return MResetZ(q); // On réalise la mesure.
}
}
//Operation qui retourne un nombre aleatoire
operation SampleRandomNumberInRange(max : Int) : Int {
mutable bits = new Result[0];
for (idxBit in 1..BitSizeI(max)) {
set bits += [SampleQuantumRandomNumberGenerator()];
}
let sample = ResultArrayAsInt(bits);
return sample > max
? SampleRandomNumberInRange(max)
| sample;
}
//Point d'entrée de programme quantique
@EntryPoint()
operation SampleRandomNumber() : Int {
let max = 50;
Message($"Sampling a random number between 0 and {max}: ");
return SampleRandomNumberInRange(max);
}
}
Tout ceci peut être consulté sur le site de Microsoft et testé sur Azure Quantum !
https://docs.microsoft.com/en-us/quantum/
N'hésitez pas aussi à vous plonger dans la physique quantique qui est une merveilleuse théorie jamais mise à défaut pour le moment et à son formalisme mathématique qui vaut le détour (la Ket et Bra notation).