1 августа 2013 в 01:24

Автограммы

В связи с тем, что моя первая статья, Мультиязыковые квайны, похоже, понравилась коллегам-программистам, хочу продолжить и написать ещё несколько статей про всякие автореферентные штуки. Меня всегда поражала автореферентность — рекурсия, фракталы, квайны, человеческое самосознание… Сейчас я начну разглагольствовать и мне совершенно справедливо накидают чего-нибудь нехорошего в карму. Я лучше посоветую прочитать «Гёдель Эшер Бах» Хофштадтера тем, кто ещё не читал. Это гениальная книга и гимн автореферентности. А теперь к делу.

Автограммы.

Пока программисты пишут квайны на разных языках, те, кто программирование ещё по каким-либо причинам не освоил, могут заняться не менее интересным и довольно таки похожим делом — сочинением автограмм.
Автограммы — это предложения на естественном языке, описывающие собственную внутреннюю структуру.

Примеры автограмм:

Это предложение на русском языке.

В этом предложении пять слов.

В этом предложении один предлог, одно указательное местоимение, семь существительных, одно прилагательное, один союз и шесть числительных.

Фраза, которую Вы читаете, содержит: два слова «Фраза», два слова «которую», два слова «Вы», два слова «читаете», два слова «содержит», двадцать пять слов «слова», два слова «слов», два слова «двоеточие», два слова «запятых», два слова «по», два слова «левых», два слова «и», два слова «правых», два слова «кавычек», два слова «а», два слова «также», два слова «точку», два слова «одно», два слова «одну», двадцать два слова «два», три слова «три», два слова «четыре», три слова «пять», четыре слова «двадцать», два слова «тридцать», одно двоеточие, тридцать запятых, по двадцать пять левых и правых кавычек, а также одну точку.

В этом предложении есть сорок четыре буквы «а», тридцать четыре буквы «б», сорок четыре буквы «в», одна буква «г», тридцать четыре буквы «д», двадцать семь букв «е», одна буква «е», две буквы «ж», одна буква «з», триднацать букв «и», одна буква «й», тридцать шесть букв «к», две буквы «л», шесть букв «м», девятнадцать букв «н», двадцать букв «о», три буквы «п», восемнадцать букв «р», одиннадцать букв «с», тридцать шесть букв «т», тридцать четыре буквы «у», одна буква «ф», одна буква «х», пятнадцать букв «ц», семь букв «ч», четыре буквы «ш», одна буква «щ», одна буква «ъ», восемнадцать букв «ы», двадцать одна буква «ь», две буквы «э», одна буква «ю», и три буквы «я».


Принцип построения таких предложений (ну кроме самого первого примера) чем-то похож на принцип построения квайнов — оставляются незаполненные места, обеспечивающие «свободу облегания» и заполняются когда остальная часть автограммы уже дописана.

А теперь задачка (решить можно с применением программирования (признаюсь, сам решил именно так), а можно на бумаге).
Несколько лет назад я придумал максимально упрощённую разновидность автограмм. Автограмма представляет из себя список пар. Первый элемент в паре — цифра, второй — число раз, которое эта цифра встречается в автограмме.
Ну например:

0 — 1
1 — 2
2 — 3
3 — 2


Читать это следует так:
0 в этой автограмме встречается 1 раз, 1 — 2 раза, 2 — 3 раза, 3 — 2 раза.

Полной автограммой обзовём автограмму, которая использует все цифры системы счисления.
Для двоичной системы полная автограмма может выглядеть например так:

0 — 11
1 — 100


Для троичной, так:

0 — 10
1 — 10
2 — 2


Для четверичной вполне подойдёт самая первая из приведённых автограмм (она будет являться автограммой так же в любой системе с основанием большим четырёх, но там она не будет полной).

Ну и вопрос — можно ли составить полную автограмму для любой системы счисления и существует ли универсальный метод для составления таких автограмм.

Решение задачки здесь: dl.dropboxusercontent.com/u/20473637/autograms_solution.txt

P.S. Попытался найти авторов автограмм про слова и буквы. Про буквы — Вячеслав Кабанович. Про слова найти не смог.
Про части речи — эксклюзив, придумал специально для этой статьи!
@gromozeka1980
карма
100,5
рейтинг 0,0
Пользователь
Похожие публикации
Самое читаемое Разработка

Комментарии (15)

  • –1
    Подобные штуки можно на собеседовании спрашивать.
    • +5
      Ну если уж совсем не о чем поговорить — можно и об этом. Или о магистральных направлениях в Макраме.
  • +8
    А ещё шикарная штука — self-referential quizes. Например, вот.
    • 0
      Класс! Спасибо!
  • +2
    Для десятичной системы известно число 6210001000 (0 встречается 6 раз, 1 — два раза, 2 — один раз, ..., 9 — 0 раз)
    • 0
      ух ты! тоже интересный вариант автограммы!
      правда можно ещё проще — 9000000000 :)
      • 0
        Не годится: 9 встречается один раз, а в числе написано, что ни одного :)
        • 0
          ой… и точно… не проснулся ещё :)
    • 0
      вышел на перерыв, написал тупую перебирушку, поискать ещё такие числа.
      пока нашла 1210, 2020, 21200, 3211000 и 42101000
  • +1
    В любой системе счисления, начиная с 7-ричной, существует полная автограмма вот такого вида (пример для 10-ричной, для остальных строится аналогично):
    0 - 1
    1 - 7
    2 - 3
    3 - 2
    4 - 1
    5 - 1
    6 - 1
    7 - 2
    8 - 1
    9 - 1
    

    Доказать, что в этих системах она единственна, я еще не пробовал, но это очень правдоподобно.
    • 0
      Здорово! Но не единственное. Решение, которое по ссылке, намного проще.
      • 0
        Действительно. Убрать лишнюю единицу с помощью двойки я не догадался.
    • 0
      А как искали? Вручную или програмно?
      • +2
        Вручную, да ещё и в уме :)
  • +1
    «Эта фраза не автограмма».

Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.