Гугология Вики

Нотация фунтовых звёздочек (англ. Pound-Star Notation) — текущая нотация SuperJedi224.[1] Последняя редакция нотации, мульти-вложенная гиперразрывающаяся фунтовая звёздочка (H#*<<>>), определяется следующим образом:

Выражение состоит из одной или нескольких записей, разделённых группами, состоящими из одного или нескольких элементов, каждый из которых может быть символом звёздочки (*), каратом (^), массивом эксплодоном, обозначаемым как разделённый двоеточием список неотрицательных целых чисел, из которых по крайней мере одно должно быть положительным, заключённым в фигурные скобки; знак at (@), вложенная группа (обозначается как любая допустимая группа разделителей - даже та, которая содержит другие вложенные группы или суперзнаки - заключенные в угловые скобки) или суперзнак, обозначаемый либо как неотрицательное целое число, либо как любая допустимая группа разделителей в квадратных скобках, либо как пустая пара квадратных скобок. Первой записью должен быть знак фунта (#). Последующие записи могут быть либо знаком фунта, либо одним положительным целым числом, упорядоченным набором из одного или нескольких неотрицательных целых чисел, разделённых запятыми, из которых по крайней мере одно должно быть положительным, заключённым в один набор круглых скобок; или "протонабор", обозначаемый как одно положительное целое число, заключённое в две пары круглых скобок.

Например, одним допустимым выражением является #[@]{0:3}((2)){2}(1,3){2}2**#*7.

Правила[]

  1. Начните с n=1.
  2. Если конечная группа разделителей является чем-либо иным, кроме одного *:
    1. Если последний элемент в группе является самым высоким:
      1. Если он пуст, поместите в него текущее значение n
      2. Если он содержит цифру 0, замените её знаком at
      3. Если он содержит какое-либо другое число, уменьшите это число на единицу и оберните самое большое в n слоёв вложенных групп
      4. Если он содержит группу разделителей:
        1. Если последним элементом в надстройке является символ звёздочки, удалите его и оберните надстройку в n слоёв вложенных групп
        2. В противном случае уменьшите его, как если бы вы использовали обычную группу разделителей
    2. Если конечным элементом в группе является любая вложенная группа, замените её n объединёнными копиями любой подгруппы, которую она содержит
    3. Если последним элементом в группе является знак at, замените его массивом эксплодоном из n терминов, из которых последний термин равен 1, а все предыдущие термины равны 0.
    4. Если конечным элементом в группе является массив эксплодон:
      1. Если есть два или более слагаемых, последнее из которых равно 0, удалите последнее слагаемое.
      2. Иначе, если первый член равен 0:
        1. Если это единственный термин, замените этот массив эксплодон на карат.
        2. В противном случае уменьшите первый ненулевой член на единицу и установите для всех предыдущих членов значение n.
      3. В противном случае замените этот массив эксплодон на n идентичных массивов эксплодонов, у которых первый член уменьшен на 1.
    5. Если последним символом в группе является карат, замените его на n звёздочек.
    6. Если последним символом в группе является звёздочка, замените последнюю запись серией из n идентичных записей, в группах-разделителях которых была удалена последняя звёздочка.
  3. Еще:
    1. Если последняя запись является числом, умножьте n на это число, затем удалите его из выражения.
    2. Если последней записью является знак фунта, замените его на текущее n.
    3. Если последняя запись является протонабором ((x)), замените её набором из n элементов, каждый из которых равен x.
    4. Если последняя запись является набором:
      1. Если набор содержит только один элемент, замените набор на это число, возведённое в степень текущего n.
      2. Иначе, если конечный элемент равен 0, удалите его и увеличьте n на 1.
      3. В противном случае уменьшите конечный элемент на 1 и увеличьте предшествующий ему элемент на n.
  4. Повторяйте правила 2-3 до тех пор, пока выражение не сократится до одного числа. Это значение выражения.

Основные правила[]

Этот раздел написан неточно. Пожалуйста, помогите создателю этого раздела, добавив точное описание.

n=a, #....*b => n=(a*b) , #.... 

n=a , #....*(...,0) => n=a+1 , #....*(...) 

n=a , #....*(...b,c) (b>=0,c>0) => n=a , #....*(...b+a,c-1) 

n=a , #....*(b) => #*

n=a , # => значение выражения, равное a

Темпы роста[]

Последнее расширение имеет ординальный уровень ограничения, равный примерно в быстрорастущей иерархии.

Низкоуровневый пример[]

#*(1,0,1)*2

n=1, #*(1,0,1)*2

n=2, #*(1,0,1)

n=2, #*(1,2,0)

n=3, #*(1,2)

n=3, #*(4,1)

n=3, #*(7,0)

n=4, #*(7)

n=4, #*2,401

n=9,604, #

9,604

Примечания[]