簡単に言えば、Q# で NonUniform Discrete Fourier Transform を実装しようとしています。
私は古典的な方法でバグなしでそれを行うことができました(量子ゲートも量子ビットも使用されていません)が、リソース推定器は量子リソースが使用されていないと言っています。これにより、バックエンドの Q# は、操作タイプの関数を持っていても、量子固有の操作を使用しないと考える傾向があります。だから私は今、それを段階的に実行し、データをキュービットにロードして(私は考えています)、潜在的な有用なゲートを利用しようとしています.
問題は、私のデータが、複素数の実数部と虚数部を表す倍精度数で構成される 2 つの配列で構成されていることです。将来的には、これを単純な複雑な値の配列に再設計する必要があるかもしれません。
しかし、本質的に問題は、複素数を 1 つ以上のキュービットにロードして、その上で何らかの処理を行い、結果を得るにはどうすればよいかということです。
アルゴリズムは以前に試みられたことのないものであるため、コードを共有することにあまり熱心ではありません。しかし、小さなコードと、特に私が喜んで提供するさらなる説明。