量子刷題

推銷 qcoder.jp

qcoder 是一個專注在量子演算法的 Online Judge 平台。

和 codeforces 上的 Microsoft Q# Coding Contest 有點類似,不過在 qcoder 上是使用 python 的 qiskit 套件。我個人覺得這比較親民,畢竟我不會安裝 Q# 的環境但 qiskit 很簡單就可以弄起來了(?)

qcoder 裡面並沒有直接的題目列表,想要練習的話可以點開過去比賽的題目寫。比賽的題目大致上會按照字母 + 數字編號,同一個字母代表是同一個大題。通常一個大題內的難度是有按照順序排好的,此外過去問都有完整的 editorial,所以我認為很適合學習,應該很適合正在修量子資訊與計算的人(?),特別是裡面會出現不少「只要你有從頭到尾學過經典演算法就高機率會」的題目,例如 Grover’s algorithm 的細節。
註:此經典非彼經典

qcoder 評測時並非使用真正的量子電腦,而是(消耗指數量級資源的)模擬。因此實際上題目的 qubit 數並不太多,通常在 5 到 10 左右。在一般的競程當中一個很重要的點是要壓時間複雜度,避免 TLE;而在 qcoder 有一些題目是要求你構造出的 circuit 深度不能超過某個限度,也就是說除了要求「正確的」構造一個 circuit 以外,也可能要求要「有效率」。

如何安裝 qiskit

首先要有 python 且可以 pip install。如果條件允許的話,建議可以創一個 virtual environment

1
2
python3 -m venv myenv
. myenv/bin/activate
1
pip install qiskit

參考資料

最近剛好要開始久違的 一個 round 了,時間是 7/27,趕緊把這篇拖延好久的推銷文寫了。
順帶一提,比賽是有獎品的!第一名會拿到 10000 yen 的 amazon 禮品卡(詳細規則請見網站),不過必須要住在日本才有領獎資格。

comments powered by Disqus