4501
правка
Irina (обсуждение | вклад) |
Irina (обсуждение | вклад) |
||
Строка 63: | Строка 63: | ||
Инициализация; | Инициализация; | ||
(b)<math> \mapsto r^{-1} \sum_{x, y \in \mathbb{Z}_r} |x \rangle |y \rangle |0 \rangle</math> | (b) <math> \mapsto r^{-1} \sum_{x, y \in \mathbb{Z}_r} |x \rangle |y \rangle |0 \rangle</math> | ||
Применить <math>QFT_{\mathbb{Z}_r}</math> к первым двум регистрам; | Применить <math>QFT_{\mathbb{Z}_r}</math> к первым двум регистрам; | ||
(c) | |||
(c) <math> \mapsto r^{-1} \sum_{x, y \in \mathbb{Z}_r} |x \rangle |y \rangle |b^x a^y \rangle</math> | |||
Применить U | Применить U | ||
(d) | |||
(d) <math> \mapsto r^{-1/2} \sum_{l = 0}^{r - 1} |sl mod r \rangle |l \rangle |\hat{l} \rangle</math> | |||
Применить <math>QFT_{\mathbb{Z}_r}</math> к первым двум регистрам; | Применить <math>QFT_{\mathbb{Z}_r}</math> к первым двум регистрам; | ||
(e) | |||
(e) <math> \mapsto</math> (sl mod r, l) | |||
Измерить первые два регистра; | Измерить первые два регистра; | ||
2. Если | |||
3. Пусть | 2. Если <math>l_1</math> не совпадает с <math>l_2</math>, прервать вычисление. | ||
Вывести | |||
3. Пусть <math>k_1, k_2</math> - целые числа, такие, что <math>k_1 l_1 + k_2 l_2 = 1</math>. Вывести <math>s = k_1(sl_1) + k_2(sl_2) mod r</math>. | |||
правка