воскресенье, 6 апреля 2025 г.

Задачи по квантовой механике.

Disclaimer: Этот пост пролежал в черновиках какое-то время, но, всё-таки, достоин того, чтобы его опубликовать.
 
В квантовой механике одним из стандартных типов задач является такой
Найти уровни энергии в потенциале .
Однако, такие задачи довольно сильно ограниченны выбором потенциала , для которого можно найти решение. Какое-то время назад я придумал другой тип задач: 
Найти число связанных состояний в потенциале с энергией меньше .
Конечно, если для выбранного потенциала решается первая задача, то решается и вторая с произвольным выбором . Но есть красивые примеры, для которых решается только вторая задача для подходящего выбора
Интересно рассматривать потенциалы, зависящие от параметра и разбираться как меняется число состояний при изменении параметра.
Вот несколько примеров таких задач. Последняя задача особенно естественна, поскольку задаёт вопрос о полном числе связанных состояний.




Задача 1. Вычислить число состояний с отрицательной энергией в потенциале .


Понятно, что при потенциал везде положителен, и состояний с отрицательной энергией нет. Но при возрастании появляется область (см. рисунок), в которой потенциал отрицателен, а значит, могут появится и состояния. Фактически, задача состоит в том, чтобы определить при каких есть уровень с нулевой энергией. При переходе через эти значения как раз и изменяется число  .


Задача 2. Вычислить число состояний с отрицательной энергией в потенциале .


Задача 3. Вычислить число связанных состояний в потенциале
.



понедельник, 3 февраля 2025 г.

Решение задачи

Задача вот отсюда.
Алисе и Бобу предлагается играть против казино в следующую игру: Казино в присутствии Боба загадывает последовательность длиной n из орлов и решек. Далее проводится n раундов. В каждом раунде Алиса и Боб одновременно называют каждый свою догадку для очередного члена последовательности (Боб, конечно, знает правильный ответ). Если обе догадки оказались правильными, то они выигрывают этот раунд, иначе выигрывает казино. Вопрос: какую стратегию им выбрать, чтобы гарантированно выигрывать 6 раундов из n=9. Дополнительный вопрос: Как максимизировать выигрыш при другом числе раундов, в том числе и при бесконечном?

 

Сначала разберёмся с асимптотическим случаем. Разбиваем всю последовательность на блоки длиной . Технология будет такая: в первом блоке Боб просто сигнализирует биты второго. Конечно, он может это сделать без ощибок, но может и намеренно "ошибаться". Сейчас станет понятно зачем. Когда дело доходит до второго блока, в некоторых битах происходят "сбои": либо Алиса называет неправильный  результат, либо Боб, либо они вместе. Пусть таких битов . Сколько информации может передать Боб через эти биты? Учитывая произвольность мест этих битов и три различных ситуации для каждой "ошибки", получаем вариантов. Если потребовать, чтобы это число было не меньше, чем , то с помощью таких "битых" битов мы сможем передать информацию о следующем блоке. И дальше ситуация будет повторяться. Если записать и вычислить асимптотику от функции , то получим . Численно получаем . То есть, в асимптотике можно ошибаться меньше, чем в 20%.  Заметим, что на достаточно длинных конечных последовательностях к этому числу можно приближаться сколь угодно близко.

Решение для случая "6 из 9" тоже использует похожий приём. Главное, это то, что можно использовать для передачи не просто "битый" бит, а ещё и его положение.

Вот решение из того же источника:
  1. Сначала определим стратегию, когда хотя бы одна из групп битов 234, 567, 89 имеет одинаковое значение. В первом бите Боб называет медианное значение группы 234.
    • Если все биты этой группы одинаковые, то они будут угаданы, а бит 5 Боб использует для передачи медианного значения группы 678. В этой группе будет угадано не меньше двух бит, а третий можно использовать для передачи бита 9.
    • Если не все биты 234 одинаковы, то в этой группе будут угаданы два бита, а третий Боб использует для передачи медианного значения группы 567.
    • Если все биты 567 одинаковы, то все три будут угаданы, а в бите 8 Боб сообщит значение бита 9.
    • Если не все биты 567 одинаковы, то два будут угаданы, а оставшимся Боб передаст значение для группы 89.
    Алиса, зная эту стратегию, следует базовому правилу: всегда называет значение, переданное последним сигнальным битом Боба.
    На этом этапе нам остались случаи, когда каждая группа 234, 567, 89 содержит оба значения. Мы должны научиться как можно раньше сигнализировать об этой ситуации отклонениями от стратегии, описанной выше. Когда Алиса видит эти отклонения, она может действовать уже не в рамках своего базового правила, см. ниже.
    Разобьем оставшиеся конфигурации на три группы:
  2. бит 5 отличается от битов 67. В этом случае Боб первым битом сообщает медианное значение группы 234, как и раньше. В группе 234 он передаёт один бит, как и раньше, но ещё намеренно ошибается в одном из двух правильных битах. В каком именно --- это даёт второй бит информации, пусть, например, это будет значение бита 8. После 4 бита Алиса понимает, что Боб отклонился от основной стратегии пункта 1, причём определённым образом: правильно передал медианное значение в бите 1, но намеренно ошибся в одном из правильных битов. Это является сигналом того, что это случай 2, и тогда Алиса знает значения всех пяти оставшихся битов 56789.
  3. бит 6 отличается от битов 57. Здесь мы применим другую стратегию. Боб первым битом намеренно неправильно сообщит медианное значение группы 234. В группе 234 у него тогда опять появится возможность передать два бита. После 4 бита Алиса понимает, что Боб отклонился от основной стратегии пункта 1, причём теперь уже другим образом: неправильно передал медианное значение в бите 1. Значит, как и в пункте №2 Алиса знает значения битов 56789.
  4. бит 7 отличается от битов 56. Здесь Боб следует обычной стратегии вплоть до бита 4. Алиса после 4 бита знает медианное значение группы 567. Причем, в группе 234 уже угаданы два бита. Но тогда Боб может намеренно ошибиться в одном из двух битов 56, передавая посредством положения "ошибки" значение бита 8. После хода 6 Алиса видит, что комбинация может принадлежать только группе №4. Значит, она понимает, что бит 7 будет противоположен 56, а также, знает значение битов 89 (поскольку восьмой был передан, а девятый ему противоположен). Получаем два угаданных бита в группе 567 и два в группе 89.

четверг, 21 ноября 2024 г.

Быки и Коровы

Если кто не знает игры "Быки и Коровы", то вот статья в Википедии. Тут сегодня возник вопрос, насколько игра станет сложнее, если загадывающему игроку будет позволено менять загаданное число в процессе игры, но так, чтобы не было противоречия с ранее данными им ответами. Скрипт ниже это реализует по самой простейшей стратегии: после каждого хода угадывающего игрока он выбирает такой ответ, чтобы он подходил к максимальному числу вариантов загаданного числа. Поиграв немного с этим алгоритмом, можно заметить несколько интересных моментов:
  • После первого хода он всегда даёт одну корову.
  • Если во втором ходе не использовать цифры первого хода, то он даст две коровы.
  • Если во втором ходе использовать ровно одну цифру первого хода, то он даст одну корову.
Любопытно, конечно, найти наименьшее возможное число попыток при худшем варианте и оптимальную стратегию.

числобк (# ответов)# вариантов

Upd: прикрутил ещё вторую часть алгоритма, которая предлагает свой вариант угадывающему (это предложение показывается прямо в поле ввода). Главный вопрос, конечно, всегда ли можно за семь ходов угадать.
Upd2: Исправил баг и разрешил второй части проверять и противоречивые комбинации. Теперь, кажется, угадывается всегда за 7 ходов.

воскресенье, 15 сентября 2024 г.

вторник, 7 сентября 2021 г.

Задачки

Забавно, Мишустин задал задачу, которую я когда-то упоминал в моём блоге. Задача слишком хорошая для импровизации --- думаю не обошлось без предварительной подготовки.

Услышал вчера неплохую задачу на логику.

Есть три друга: Илья, Лёша и Стас. Илья всегда говорит правду, Лёша всегда врёт, а Стас выбирает ответ случайно.

Повстречав эту троицу и задав три вопроса типа да-нет (каждый вопрос задаётся одному человеку), как определить кто из них кто?

Задача простая, конечно.

понедельник, 11 января 2021 г.

Mathematica 12.2

В новом релизе Mathematica (12.2)  наконец-то перестал работать мой пакет LiteRed разлива 2015г. Суматошное разбирательство показало, что причина в измененной процедуре ValueQ. Выяснилось, что код

f[x]^=1;ValueQ[g[x]]

теперь даёт при вычислении True (и код x=x;ValueQ[x] тоже даёт True). В ярости написал вопрос в Mathematica Stack Exchange, и да, таки, всё правильно, как в том анекдоте.

Из любопытства прошёлся по списку багов, который я когда-то составлял. Баги №№5,8,9 всё ещё живы. Девятый я тоже запостил в Mathematica.SE. Самое смешное --- что случилось с багом №2: до версии 12.2 DiscreteRatio[Sin[Pi x], x] вычислялось в 1, а в 12.2 этот баг "исправили": теперь DiscreteRatio[Sin[Pi x], x] остаётся невычисленным. Прогресс!

четверг, 22 октября 2020 г.

Объять необъятное

Вот есть такое тождество для :
Я даже, если очень захочется, смогу его доказать, наверное. Но вот откуда такие монстры берутся, и как их находить, я совершенно не представляю. И если об этом думать, по-моему, можно мозг сломать. Особенно страшно становится, если записать тождество в виде
и выяснить, что и связаны с вот такими алгебраическими уравнениями: