Я намагаюся звикнути до IBM Q, реалізуючи три кубіти алгоритму Гровера, але у мене виникли труднощі з реалізацією oracle.
Чи можете ви показати, як це зробити, або запропонувати якісь хороші ресурси, щоб звикнути до програмування ланцюгів IBM Q?
Що я хочу зробити - це позначити одне довільне стан, перевернувши його знак, як повинен робити оракул.
Наприклад, у мене є
.
і я хочу позначити , перевернувши його знак на . Я якось розумію, що ворота CCZ вирішили б цю проблему, але у нас немає ворота CCZ в IBM Q. Комбінація деяких воріт буде діяти так само, як CCZ, але я не впевнений, як це зробити. І я також борюся за інші випадки не лише за .
Випадок з двома кубітами досить простий для мене, але догляд за трьома кубітами все ще мене бентежить.