o5a, совершенно верно, для других систем счисления будут свои множители, предлагаю их вам найти. А также подсчитать числа заканчивающиеся на ноль (аналог для десятичной системы 10-1 ноль, 20 -1 ноль 100-2 нуля, 110 - 1 ноль, 1000 -3 нуля и т.д.)
Да, в IM есть функция trim, которая делает автообрезку, но может выдавать координаты пустых полей.
А вообще, по идее, надо делать эрозию исходной картинки (+границы правая и нижняя) с надписью, как структурным элементом. Далее добавлять надпись в то место, где останутся белые пиксели. Вобщем задача легко решается мат. морфологией, без ИИ. :-)
Ищете векторное произведение двух соседних ребер полигона. Получаете нормаль. Затем эту нормаль скалярно умножаете на вектор (из начала координат) общей вершины этих двух ребер. Если скалярное произведение больше нуля, то все ок, если меньше - то инвертируйте нормаль.
Bavashi, в задаче как раз таки описаны правила, как происходят замены - по одной букве. Соответствие
это не достаточное условие.
Пример: алфавит из 0 и 1. Элементарными заменами нельзя из слова 01 сделать 10, хотя соответствие есть.
Bavashi, конечно, задача и состоит в том, чтобы определить, можно ли используя элементарные однобуквенные замены прербразовать строку в строку. Для тех строк, что вы привели - нельзя. Если считаете что это не так - приведите первую замену, как в примере.