
Квантовая монетка на IBM Quantum: как я переложил выбор свидания на 8 кубитов
ashotagabekov 10 минут назад Квантовая монетка на IBM Quantum: как я переложил выбор свидания на 8 кубитов 7 мин 202 Python * Когда не можешь выбрать, куда пойти на свидание, можно мучиться между кофейней, баром и...
Anthropic — What company has the best second artificial intelligence model at the end of June?
В сфере искусственного интеллекта произошло заметное событие. ashotagabekov 10 минут назад Квантовая монетка на IBM Quantum: как я переложил выбор свидания на 8 кубитов 7 мин 202 Python * Когда не можешь выбрать, куда пойти на свидание, можно мучиться между кофейней, баром и прогулкой. А можно поступить взросло: отправить задачу на квантовый компьютер IBM и переложить ответственность на физику. Внутри — Qiskit, 8 кубитов, реальный job_id и самый пафосный способ заменить подбрасывание обычной монетки.
GitHub репо по ссылкеПроблема выбораДа, это максимально избыточный способ заменить random. Зато в конце будет настоящий job_id, запуск на IBM Quantum и моральное право сказать: «Это не я выбрал. Это квантовая механика так решила».
Технические детали
Обычная монетка vs Квантовая монеткаХарактеристикаОбычная монеткаКвантовая монетка Количество вариантов2до 256 в этой версииJob IDНетJob ID — подтверждение, что задача была отправлена и выполнена на выбранном IBM Quantum backend. Стоимость0 ₽0 ₽, но нужно 5 минут на регистрациюПрактическая пользавысокаясомнительная Уровень избыточностиНормальныйБожественный Победитель очевиден - выбираем, конечно же, квантовую монетку, сегодня мы не мыслим практично :) Что понадобитсяPython и библиотека qiskitpip install qiskit qiskit-aer qiskit-ibm-runtimeБесплатный токен IBM Quantum. Регистрируетесь на quantum.
com, получаете токен, копируете в переменную окружения IBM_QUANTUM_TOKEN. КодСхема такая: 8 кубитов, гейт Адамара на каждом, измерение, 256 повторных запусков. На выходе получаем набор битстрингов, берём один из реально измеренных результатов, превращаем его в число и маппим на индекс в списке вариантов.
В квантовые вычисления я заходил как разработчик, поэтому часть терминов пришлось отдельно разобрать по документации и примерам. Но в итоге схема оказалась вполне понятной. Код под спойлером:```python import os import sys import secrets from dataclasses import dataclass from collections import Counter # pip install qiskit qiskit-aer qiskit-ibm-runtime # # Для реального IBM Quantum: # export IBM_QUANTUM_TOKEN="ваш_api_key" # # Опционально, но желательно: # export IBM_QUANTUM_INSTANCE="ваш_CRN_или_service_name" SHOTS = 256 QUBITS = 8 REGISTER_NAME = "coin" # ======================== # ВАШ СПИСОК ВАРИАНТОВ # ======================== OPTIONS = [ "Кофейня", "Бар", "Кино", "Прогулка", "Не идти никуда и наконец-то выспаться", ] # ======================== @dataclass(frozen=True) class CoinRun: bitstrings: list counts: dict backend: str job_id: str | None = None def validate_options() -> None: if not OPTIONS: raise ValueError("Список OPTIONS пуст.
Даже квантовая механика тут бессильна. max_values = 2 ** QUBITS if len(OPTIONS) > max_values: raise ValueError( f"Слишком много вариантов: {len(OPTIONS)}. " f"При {QUBITS} кубитах доступно максимум {max_values} базовых значений.
Событие, по словам экспертов, усилит конкуренцию в сфере ИИ.





