задача дня-17

Nov 13, 2022 17:11

Не так давно встретилась задача -- скорее всего, она известная. Слишком уж естественная у неё формулировка. В таких случаях кому-то может быть известно "авторское" решение, которое мне было бы интересно узнать ( Read more... )

задача-дня, математика

Leave a comment

dumart November 13 2022, 14:40:02 UTC

Что сразу приходит на ум: n проб для одного ключа, (n-1) для второго и т.д., так что n(n-1)/2 всего.

Reply

falcao November 13 2022, 15:08:03 UTC
Для первого ключа достаточно n-1 пробы, потом n-2, и так далее, что даёт 1+2+...+(n-1), то есть получается n(n-1)/2. И задача фактически состоит в том, что надо доказать оптимальность этого значения.

Reply

mns2012 November 13 2022, 15:28:06 UTC
Это число ребер в клике с n вершинами.

Как я понял задачу, надо показать, что выполняется условие для поиска без отката (backtrack free search). Это фактически достигается при максимально возможном constraint propagation. А оно таково для данной задачи при условии клики. ч.т.д.

Reply

falcao November 13 2022, 16:00:09 UTC
См. комментарий ниже.

Reply

mns2012 November 13 2022, 17:38:04 UTC
Это то же самое. Худший случай, чем n * (n - 1) /2, - это backtracking search, когда нужно было бы возвращаться к предыдущему выбору и менять дверь для фиксированного замка (a variable-value assignment), а это исключается по формулировке задачи (фиксированный ключ подходит только к одной из дверей). В constraint programming это называется all different constraint. Это именно n-клика. Товарищ akm762 кмк прав.

Reply

falcao November 13 2022, 18:08:15 UTC
Если уже есть план для n(n-1)/2 ходов, то худшие рассматривать не надо, а вот то, что нет лучшего способа (с меньшим числом проб) - это как раз и надо доказать.

Reply


Leave a comment

Up