обнаружение различных способов сказать число, имеющее несколько повторяющихся непрерывных цифр - PullRequest
0 голосов
/ 09 января 2012

если есть целое число, скажем 111, то есть 4 способа, которыми можно сказать: 1. один один один 2. двойной два один 3. один двойной два 4. тройной

так как можно генерировать все возможные пути для любого целого числа, например. 33356777 и т. Д. Я думаю, что это может быть сделано автоматами, но не могу понять, насколько программно Спасибо.

1 Ответ

2 голосов
/ 09 января 2012

Количество способов «сказать» d^n, где d - это цифра, а n - это количество повторений, просто 2^(n-1).

Почему? Для каждого места между повторяющейся цифрой в месте i и месте (i + 1): вы можете либо «остановиться на этом» и сказать сгенерированное число, либо перейти к следующему - или вы можете продолжать считать d и продолжать. Вы повторяете это для каждого я.

Чтобы подвести итог, вы набираете номер и умножаете все это: например, 33356777 будет 2^2 * 2^0 * 2^0 * 2^2 = 16

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...