Представим, что нам необходимо реализовать какой-то нестандартный счётчик, с непостоянным шагом и при том на минимально возможном количестве триггеров. Первым делом хочется под каждый разряд выделить триггер, затем рассмотреть каждый разряд как отдельную функцию, минимизировать и попытаться избавиться от 1-2 (и то если повезёт) триггеров. Но ведь необязательно реализовывать счётчик исключительно на триггерах, почему не использовать, например, вместе с ними преобразователь кодов. При такой реализации количество триггеров зависит только от количества состояний счётчика, а сами состояния можно получать при помощи преобразователя. Итак, главное, что нужно понять при нашем подходе - как именно количество используемых триггеров зависит от количества состояний счётчика. Будем исходить из определения триггера, из него мы получаем, что количество возможных вариантов q, которые может принимать некоторое количество триггеров n зависит от этого количества как q = 2^n. Тогда необходимое количество