Не всё так просто. В таких задачах часто есть подвохи.
Например, в данном примере, переложив 2 спички из единицы, можно получить "-976". И это только вариант сходу. Может и ещё что-то похитрее есть.
Как минимум на шаге 1 надо ещё уметь распознавать хотя бы основные математические знаки.
А так да: надо тупым перебором рассмотреть все возможные перестановки любых пар спичек. Из всех вариантов оставить только имеющие смысл (дающие цифры и знаки, а не абракадабру).
Если стоит речь об оптимизации, то можно сначала руками выписать то, что имеет смысл переставлять. Например, если разрешена перестановки одной, то из 5 можно забрать только одну спичку и то, только для превращения её в 3. А подставлять одну можно в любой из 2 мест. Если разрешено переставлять 2, то там вариантов уже намного больше. Честно говоря, замучаешься описывать все варианты заранее.
Зачем 16? 8 хватит за глаза. Вряд ли человек будет учиться на таких задачах, которые займут кучу гигов. И как раз для обучения лучше не перебарщивать, чтобы неэффективный код ощущался лучше. Как и разные утечки памяти и прочее.
ССД - да, для комфорта нужен. Проца хватит любого современного (21 и выше года).
Например, в данном примере, переложив 2 спички из единицы, можно получить "-976". И это только вариант сходу. Может и ещё что-то похитрее есть.
Как минимум на шаге 1 надо ещё уметь распознавать хотя бы основные математические знаки.
А так да: надо тупым перебором рассмотреть все возможные перестановки любых пар спичек. Из всех вариантов оставить только имеющие смысл (дающие цифры и знаки, а не абракадабру).
Если стоит речь об оптимизации, то можно сначала руками выписать то, что имеет смысл переставлять. Например, если разрешена перестановки одной, то из 5 можно забрать только одну спичку и то, только для превращения её в 3. А подставлять одну можно в любой из 2 мест. Если разрешено переставлять 2, то там вариантов уже намного больше. Честно говоря, замучаешься описывать все варианты заранее.