Найдите самые короткие числа в скобках

15

Числа в скобках предоставляют простой способ выразить большие целые числа, используя только левую скобку, пробел и правую скобку ( [ ]).

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

Количество пробелов между каждым фрагментом определяет гипероперацию между ними. Отсутствие пробелов означает сложение, 1 пробел означает умножение, 2 пробела означает возведение в степень, 3 пробела означает тетрацию и так далее. Гипероперации более высокого порядка имеют приоритет, поэтому тетрация происходит до возведения в степень, возведение в степень происходит до умножения и т. Д. Они также являются ассоциативными справа, поэтому a^b^cвычисляется как a^(b^c). (Но a^b*cвсе еще (a^b)*c.)

Каждый кусок может быть пустым ( []) или содержать другой номер скобки. Пустые чанки имеют значение 0. Непустые чанки имеют значение содержащихся в них скобок плюс 1.

Примеры: ( ^^это тетрация, ^^^это пенсия )

  • [[]]имеет значение 1, потому что это 0 ( []) увеличивается на 1
  • [[[]]]имеет значение 2, но так же, [[]][[]]так как два [[]]добавлены ( )
  • [[[]]] [[[[]]] [[[[]]]]][[[]]] имеет значение 20 = (2 * ((2 ^ 3) +1)) + 2
  • [[[]]] [[[[]]]] имеет значение 65536 = 2 ^^^ 3 = 2 ^^ (2 ^^ 2) = 2 ^^ 4 == 2 ^ (2 ^ (2 ^ 2))
  • [[[[]]]] [[[]]] [[]] имеет значение 7625597484987 = 3 ^^^ (2 ^^^ 1) = 3 ^^^ 2 = 3 ^^ 3 = 3 ^ (3 ^ 3)

В действительных скобках:

  • Там никогда не будет ведущих или конечных пробелов.
  • Всегда будет хотя бы одна пара совпадающих скобок.
  • Все левые скобки будут иметь соответствующую правую скобку.
  • Пробел никогда не появится прямо справа [или слева от] .
  • Значение всегда является неотрицательным целым числом.

Вызов

Обратите внимание, что может быть много форм для номера скобки, которые дают одинаковое значение. [[[[[[[[[[[[[[[[[]]]]]]]]]]]]]]]]]и [[[]]] [[[[]]]]оба представляют 16, но последний намного короче.

Ваша задача - написать алгоритм, который пытается найти представление кратчайшего числа скобок для заданного значения. Например, я считаю, что самый короткий способ представить 16 - это 17 символов [[[]]] [[[[]]]].

Оценка (Обновлено)

Пусть S будет набором целых чисел от 1 до 256 (включительно), а также следующими десятью значениями:

8191 13071 524287 2147483647 1449565302 1746268229 126528612 778085967 1553783038 997599288

(Первые 4 - простые числа Мерсенна, остальные случайные.)

Представление, которое генерирует самый короткий набор номеров скобок для всего в S , выиграет. Ваша оценка - это сумма длин ваших чисел в скобках для всех значений в S (чем меньше, тем лучше).

С вашим кодом, пожалуйста, отправьте список номеров ваших скобок для всех S , точный порядок не очень важен. например:

1=[[]]
2=[[[]]]
3=[[[[]]]]
...
2147483647=[...]
...

(Я знаю, что это не оптимальный метод подсчета очков, но я не настроен на запуск набора случайных эвристических тестов при каждой отправке. Извините :()

правила

  • Вы не можете жестко закодировать любые числа скобок, кроме тривиальных пошаговых решений ( [], [[]], [[[]]], ...). Ваша программа на самом деле должна искать оптимально короткие представления. (Хотя результаты могут быть неоптимальными.)
  • Ваш алгоритм должен работать для всех неотрицательных целых чисел ниже 2 147 483 648 (2 ^ 31). Вы не можете конкретно сосредоточиться на значениях S .
  • Для любого конкретного ввода ваш алгоритм должен работать не более 10 минут на приличном современном компьютере (~ 2,5 ГГц процессор, ~ 6 ГБ ОЗУ).
  • В (на первый взгляд) редкой вероятности ничьей побеждает победитель, получивший наибольшее количество голосов.
  • Если вы копируете другое решение или пересматриваете его без указания авторства, вы будете дисквалифицированы.
Кальвин Хобби
источник
Я думаю, что 256 может быть слишком низким. Вы даже не очень далеко зашли с гипероперациями в этих числах. Но я могу ошибаться, я не могу понять, сколько существует возможностей для представления 256, что не может быть легко исключено.
Мартин Эндер
@ MartinBüttner, я знаю. Я рассмотрел 512 или 1024, но я боялся, что это заставит людей отправлять огромные блоки текста для своих списков скобочных номеров. Что еще кто-то думает?
Увлечения Кэлвина
@ Calvin'sHobbies: А как насчет запроса большого числа в дополнение к 1..256? Скажем, простое Мерсенна 2 ^ 31 - 1.
Чарльз
@ Calvin'sHobbies Выберите 10-20 конкретных больших чисел в дополнение к вашему диапазону?
hmatt1
9
Хорошо, обновленное имя пользователя .... Я не хочу, чтобы мое плохое поведение было неправильно отнесено
не то, что Чарльз

Ответы:

5

Python 11455b

Это решение использует жадный подход к поиску способов разбиения простых чисел, а не исчерпывающий подход. Мне нужно 9875b для 1-256 по сравнению с 8181 для, вероятно, оптимального решения Мартина в этом пространстве.

Большая таблица результатов умножения и возведения в степень дает небольшие улучшения в больших тестовых случаях. Решение ниже заняло около 7 минут. Увеличение времени работы свыше 30 минут оказывает минимальное влияние на производительность.

У меня, как и у Мартина, была проблема с приоритетом. Мое решение в ограничении выбора операций может быть неоптимальным.

#!/usr/bin/env python

# http://codegolf.stackexchange.com/questions/35480/find-the-shortest-bracket-numbers

import sys, math

reps = {}
forwards = {}
backwards = {}

MAX = 2**31

TABLE_SIZE = 2**12

def op_dec(op):
    if op>1:
        return op-1
    return op

def rep_op(a,op,b):
    return rep_num(a) +  (" "*op) + rep_num(b)
def min_rep_op(a,op,b,op_max):
    return min_rep(a,op_max) +  (" "*op) + min_rep(b,op_dec(op_max))

def rep_num(a):
    return ("["*(a+1)) + ("]"*(a+1))

def min_rep(n,op_max):
    if n < 9:
        return ("["*(n+1))+("]"*(n+1))
    for op in range(op_max,-1,-1):
        if (n, op) in reps:
            return reps[(n, op)]
    for op in range(op_max,-1,-1):
        if (n, op) in backwards:
            a,op,b = backwards[(n, op)]
            return min_rep_op(a,op,b,op_max)
    else:
        for m in rep_list:
            c = m[0]
            if c < n:
                r = n - c
                for op in range(op_max,-1,-1):
                    if (c, op) in backwards:
                        a,op,b = backwards[(c, op)]
                        if r<10:
                            return ("["*r) + min_rep_op(a,op,b,op_max) + ("]"*r)
                        else:
                            return "[" + min_rep(r-1,op_max) + min_rep_op(a,op,b,op_max) + "]"
                break

def expand(a,op,b):
    if op == 0:
        n = a+b
    elif op == 1:
        n = a*b
    elif op == 2:
        if b*math.log10(a) > math.log10(MAX):
            n = MAX
        else: 
            n = a**b
    elif (a,op,b) in forwards:
        n = forwards[(a,op,b)]
    else: # tetration and higher
        t = a
        for i in xrange(b-1):
            t = expand(a,op-1,t)
            if t>=MAX:
                break
        n = t

    if n > MAX-1:
        n = MAX
    forwards[(a,op,b)] = n

    if (n, op) in backwards:
        c = len(rep_op(*backwards[(n, op)]))
        if c > (a*2+op+b*2):
            backwards[(n, op)] = (a,op,b)
    else:
        backwards[(n, op)] = (a,op,b)

    return n

t = 0

# populate the multiplication, exponentiation, and tetration tables
for op in range(1,4):
    for a in range((1,2,2,2)[op],TABLE_SIZE):
        for b in range((1,2,2,2)[op],TABLE_SIZE):
            t = expand(a,op,b)
            if t == MAX:
                break
rep_list = sorted(backwards.keys(),key=lambda x: x[0]*4-x[1],reverse=True)

for i in list(range(1, 257))+[8191,13071,524287,2147483647,1449565302,1746268229,126528612,778085967,1553783038,997599288]:
    t = min_rep(i,3)
    reps[i] = t
    print i, t

Выход:

1 [[]]
2 [[[]]]
3 [[[[]]]]
4 [[[[[]]]]]
5 [[[[[[]]]]]]
6 [[[[[[[]]]]]]]
7 [[[[[[[[]]]]]]]]
8 [[[[[[[[[]]]]]]]]]
9 [[[[]]]]  [[[]]]
10 [[[[[[]]]]]] [[[]]]
11 [[[[[[[]]]]]] [[[]]]]
12 [[[[[[[]]]]]]] [[[]]]
13 [[[[[[[[]]]]]]] [[[]]]]
14 [[[[[[[[]]]]]]]] [[[]]]
15 [[[[[[]]]]]] [[[[]]]]
16 [[[]]]   [[[[]]]]
17 [[[[]]]   [[[[]]]]]
18 [[[[[[[]]]]]]] [[[[]]]]
19 [[[[[[[[]]]]]]] [[[[]]]]]
20 [[[[[[]]]]]] [[[[[]]]]]
21 [[[[[[[[]]]]]]]] [[[[]]]]
22 [[[[[[[]]]]]] [[[]]]] [[[]]]
23 [[[[[[[[]]]]]] [[[]]]] [[[]]]]
24 [[[[[[[[[]]]]]]]]] [[[[]]]]
25 [[[[[[]]]]]]  [[[]]]
26 [[[[[[[[]]]]]]] [[[]]]] [[[]]]
27 [[[[]]]]   [[[]]]
28 [[[[[[[[]]]]]]]] [[[[[]]]]]
29 [[[[[[[[[]]]]]]]] [[[[[]]]]]]
30 [[[[[[[]]]]]]] [[[[[[]]]]]]
31 [[[[[[[[]]]]]]] [[[[[[]]]]]]]
32 [[[]]]  [[[[[[]]]]]]
33 [[[[[[[]]]]]] [[[]]]] [[[[]]]]
34 [[[[]]]   [[[[]]]]] [[[]]]
35 [[[[[[[[]]]]]]]] [[[[[[]]]]]]
36 [[[[[[[]]]]]]]  [[[]]]
37 [[[[[[[[]]]]]]]  [[[]]]]
38 [[[[[[[[]]]]]]] [[[[]]]]] [[[]]]
39 [[[[[[[[]]]]]]] [[[]]]] [[[[]]]]
40 [[[[[[]]]]]] [[[]]] [[[[[]]]]]
41 [[[[[[[]]]]]] [[[]]] [[[[[]]]]]]
42 [[[[[[[[]]]]]]]] [[[[[[[]]]]]]]
43 [[[[[[[[[]]]]]]]] [[[[[[[]]]]]]]]
44 [[[[[[[]]]]]] [[[]]]] [[[[[]]]]]
45 [[[[]]]]  [[[]]] [[[[[[]]]]]]
46 [[[[[[[[]]]]]] [[[]]]] [[[]]]] [[[]]]
47 [[[[[[[[[]]]]]] [[[]]]] [[[]]]] [[[]]]]
48 [[[[[[[[[]]]]]]]]] [[[[[[[]]]]]]]
49 [[[[[[[[]]]]]]]]  [[[]]]
50 [[[[[[]]]]]] [[[]]] [[[[[[]]]]]]
51 [[[[]]]   [[[[]]]]] [[[[]]]]
52 [[[[[[[[]]]]]]] [[[]]]] [[[[[]]]]]
53 [[[[[[[[[]]]]]]] [[[]]]] [[[[[]]]]]]
54 [[[[]]]]  [[[]]] [[[[[[[]]]]]]]
55 [[[[[[[]]]]]] [[[]]]] [[[[[[]]]]]]
56 [[[[[[[[[]]]]]]]]] [[[[[[[[]]]]]]]]
57 [[[[[[[[]]]]]]] [[[[]]]]] [[[[]]]]
58 [[[[[[[[[]]]]]]]] [[[[[]]]]]] [[[]]]
59 [[[[[[[[[[]]]]]]]] [[[[[]]]]]] [[[]]]]
60 [[[[[[[]]]]]]] [[[]]] [[[[[[]]]]]]
61 [[[[[[[[]]]]]]] [[[]]] [[[[[[]]]]]]]
62 [[[[[[[[]]]]]]] [[[[[[]]]]]]] [[[]]]
63 [[[[]]]]  [[[]]] [[[[[[[[]]]]]]]]
64 [[[[[]]]]]  [[[[]]]]
65 [[[[[[[[]]]]]]] [[[]]]] [[[[[[]]]]]]
66 [[[[[[[]]]]]] [[[]]]] [[[[[[[]]]]]]]
67 [[[[[[[[]]]]]] [[[]]]] [[[[[[[]]]]]]]]
68 [[[[]]]   [[[[]]]]] [[[[[]]]]]
69 [[[[[[[[]]]]]] [[[]]]] [[[]]]] [[[[]]]]
70 [[[[[[]]]]]] [[[]]] [[[[[[[[]]]]]]]]
71 [[[[[[[]]]]]] [[[]]] [[[[[[[[]]]]]]]]]
72 [[[[[[[]]]]]]] [[[]]] [[[[[[[]]]]]]]
73 [[[[[[[[]]]]]]] [[[]]] [[[[[[[]]]]]]]]
74 [[[[[[[[]]]]]]]  [[[]]]] [[[]]]
75 [[[[[[]]]]]] [[[[]]]] [[[[[[]]]]]]
76 [[[[[[[[]]]]]]] [[[[]]]]] [[[[[]]]]]
77 [[[[[[[]]]]]] [[[]]]] [[[[[[[[]]]]]]]]
78 [[[[[[[[]]]]]]] [[[]]]] [[[[[[[]]]]]]]
79 [[[[[[[[[]]]]]]] [[[]]]] [[[[[[[]]]]]]]]
80 [[[[[[]]]]]] [[[]]] [[[[[[[[[]]]]]]]]]
81 [[[[]]]]  [[[[[]]]]]
82 [[[[[[[]]]]]] [[[]]] [[[[[]]]]]] [[[]]]
83 [[[[[[[[]]]]]] [[[]]] [[[[[]]]]]] [[[]]]]
84 [[[[[[[[]]]]]]]] [[[]]] [[[[[[[]]]]]]]
85 [[[[]]]   [[[[]]]]] [[[[[[]]]]]]
86 [[[[[[[[[]]]]]]]] [[[[[[[]]]]]]]] [[[]]]
87 [[[[[[[[[]]]]]]]] [[[[[]]]]]] [[[[]]]]
88 [[[[[[[]]]]]] [[[]]]] [[[[[[[[[]]]]]]]]]
89 [[[[[[[[]]]]]] [[[]]]] [[[[[[[[[]]]]]]]]]]
90 [[[[[[]]]]]] [[[]]] [[[[]]]]  [[[]]]
91 [[[[[[[[]]]]]]] [[[]]]] [[[[[[[[]]]]]]]]
92 [[[[[[[[]]]]]] [[[]]]] [[[]]]] [[[[[]]]]]
93 [[[[[[[[]]]]]]] [[[[[[]]]]]]] [[[[]]]]
94 [[[[[[[[[]]]]]] [[[]]]] [[[]]]] [[[]]]] [[[]]]
95 [[[[[[[[]]]]]]] [[[[]]]]] [[[[[[]]]]]]
96 [[[[[[[]]]]]]] [[[]]] [[[[[[[[[]]]]]]]]]
97 [[[[[[[[]]]]]]] [[[]]] [[[[[[[[[]]]]]]]]]]
98 [[[[[[[[]]]]]]]] [[[]]] [[[[[[[[]]]]]]]]
99 [[[[[[[]]]]]] [[[]]]] [[[[]]]]  [[[]]]
100 [[[[[[]]]]]] [[[]]]  [[[]]]
101 [[[[[[[]]]]]] [[[]]]  [[[]]]]
102 [[[[]]]   [[[[]]]]] [[[[[[[]]]]]]]
103 [[[[[]]]   [[[[]]]]] [[[[[[[]]]]]]]]
104 [[[[[[[[]]]]]]] [[[]]]] [[[[[[[[[]]]]]]]]]
105 [[[[[[]]]]]] [[[[]]]] [[[[[[[[]]]]]]]]
106 [[[[[[[[[]]]]]]] [[[]]]] [[[[[]]]]]] [[[]]]
107 [[[[[[[[[[]]]]]]] [[[]]]] [[[[[]]]]]] [[[]]]]
108 [[[[[[[]]]]]]] [[[]]] [[[[]]]]  [[[]]]
109 [[[[[[[[]]]]]]] [[[]]] [[[[]]]]  [[[]]]]
110 [[[[[[[]]]]]] [[[]]]] [[[[[[]]]]]] [[[]]]
111 [[[[[[[[]]]]]]]  [[[]]]] [[[[]]]]
112 [[[]]]   [[[[]]]] [[[[[[[[]]]]]]]]
113 [[[[]]]   [[[[]]]] [[[[[[[[]]]]]]]]]
114 [[[[[[[[]]]]]]] [[[[]]]]] [[[[[[[]]]]]]]
115 [[[[[[[[]]]]]] [[[]]]] [[[]]]] [[[[[[]]]]]]
116 [[[[[[[[[]]]]]]]] [[[[[]]]]]] [[[[[]]]]]
117 [[[[[[[[]]]]]]] [[[]]]] [[[[]]]]  [[[]]]
118 [[[[[[[[[[]]]]]]]] [[[[[]]]]]] [[[]]]] [[[]]]
119 [[[[]]]   [[[[]]]]] [[[[[[[[]]]]]]]]
120 [[[[[[]]]]]] [[[[]]]] [[[[[[[[[]]]]]]]]]
121 [[[[[[[]]]]]] [[[]]]]  [[[]]]
122 [[[[[[[[]]]]]]] [[[]]] [[[[[[]]]]]]] [[[]]]
123 [[[[[[[]]]]]] [[[]]] [[[[[]]]]]] [[[[]]]]
124 [[[[[[[[]]]]]]] [[[[[[]]]]]]] [[[[[]]]]]
125 [[[[[[]]]]]]  [[[[]]]]
126 [[[[[[[[]]]]]]]] [[[]]] [[[[]]]]  [[[]]]
127 [[[[[[[[[]]]]]]]] [[[]]] [[[[]]]]  [[[]]]]
128 [[[]]]  [[[[[[[[]]]]]]]]
129 [[[[[[[[[]]]]]]]] [[[[[[[]]]]]]]] [[[[]]]]
130 [[[[[[[[]]]]]]] [[[]]]] [[[[[[]]]]]] [[[]]]
131 [[[[[[[[[]]]]]]] [[[]]]] [[[[[[]]]]]] [[[]]]]
132 [[[[[[[]]]]]]] [[[]]] [[[[[[[]]]]]] [[[]]]]
133 [[[[[[[[]]]]]]] [[[[]]]]] [[[[[[[[]]]]]]]]
134 [[[[[[[[]]]]]] [[[]]]] [[[[[[[]]]]]]]] [[[]]]
135 [[[[[[]]]]]] [[[[]]]] [[[[]]]]  [[[]]]
136 [[[[]]]   [[[[]]]]] [[[[[[[[[]]]]]]]]]
137 [[[[[]]]   [[[[]]]]] [[[[[[[[[]]]]]]]]]]
138 [[[[[[[[]]]]]] [[[]]]] [[[]]]] [[[[[[[]]]]]]]
139 [[[[[[[[[]]]]]] [[[]]]] [[[]]]] [[[[[[[]]]]]]]]
140 [[[[[[[[]]]]]]]] [[[]]] [[[[[[]]]]]] [[[]]]
141 [[[[[[[[[]]]]]] [[[]]]] [[[]]]] [[[]]]] [[[[]]]]
142 [[[[[[[]]]]]] [[[]]] [[[[[[[[]]]]]]]]] [[[]]]
143 [[[[[[[[]]]]]]] [[[]]]] [[[[[[[]]]]]] [[[]]]]
144 [[[[[[[]]]]]]] [[[]]]  [[[]]]
145 [[[[[[[[[]]]]]]]] [[[[[]]]]]] [[[[[[]]]]]]
146 [[[[[[[[]]]]]]] [[[]]] [[[[[[[]]]]]]]] [[[]]]
147 [[[[[[[[]]]]]]]] [[[[]]]] [[[[[[[[]]]]]]]]
148 [[[[[[[[]]]]]]]  [[[]]]] [[[[[]]]]]
149 [[[[[[[[[]]]]]]]  [[[]]]] [[[[[]]]]]]
150 [[[[[[]]]]]] [[[[]]]] [[[[[[]]]]]] [[[]]]
151 [[[[[[[]]]]]] [[[[]]]] [[[[[[]]]]]] [[[]]]]
152 [[[[[[[[]]]]]]] [[[[]]]]] [[[[[[[[[]]]]]]]]]
153 [[[[]]]   [[[[]]]]] [[[[]]]]  [[[]]]
154 [[[[[[[[]]]]]]]] [[[]]] [[[[[[[]]]]]] [[[]]]]
155 [[[[[[[[]]]]]]] [[[[[[]]]]]]] [[[[[[]]]]]]
156 [[[[[[[[]]]]]]] [[[]]]] [[[[[[[]]]]]]] [[[]]]
157 [[[[[[[[[]]]]]]] [[[]]]] [[[[[[[]]]]]]] [[[]]]]
158 [[[[[[[[[]]]]]]] [[[]]]] [[[[[[[]]]]]]]] [[[]]]
159 [[[[[[[[[]]]]]]] [[[]]]] [[[[[]]]]]] [[[[]]]]
160 [[[]]]   [[[[]]]] [[[[[[]]]]]] [[[]]]
161 [[[[[[[[]]]]]] [[[]]]] [[[]]]] [[[[[[[[]]]]]]]]
162 [[[[[[[]]]]]]] [[[[]]]] [[[[]]]]  [[[]]]
163 [[[[[[[[]]]]]]] [[[[]]]] [[[[]]]]  [[[]]]]
164 [[[[[[[]]]]]] [[[]]] [[[[[]]]]]] [[[[[]]]]]
165 [[[[[[]]]]]] [[[[]]]] [[[[[[[]]]]]] [[[]]]]
166 [[[[[[[[]]]]]] [[[]]] [[[[[]]]]]] [[[]]]] [[[]]]
167 [[[[[[[[[]]]]]] [[[]]] [[[[[]]]]]] [[[]]]] [[[]]]]
168 [[[[[[[[]]]]]]]] [[[]]] [[[[[[[]]]]]]] [[[]]]
169 [[[[[[[[]]]]]]] [[[]]]]  [[[]]]
170 [[[[]]]   [[[[]]]]] [[[[[[]]]]]] [[[]]]
171 [[[[[[[[]]]]]]] [[[[]]]]] [[[[]]]]  [[[]]]
172 [[[[[[[[[]]]]]]]] [[[[[[[]]]]]]]] [[[[[]]]]]
173 [[[[[[[[[[]]]]]]]] [[[[[[[]]]]]]]] [[[[[]]]]]]
174 [[[[[[[[[]]]]]]]] [[[[[]]]]]] [[[[[[[]]]]]]]
175 [[[[[[]]]]]]  [[[]]] [[[[[[[[]]]]]]]]
176 [[[]]]   [[[[]]]] [[[[[[[]]]]]] [[[]]]]
177 [[[[[[[[[[]]]]]]]] [[[[[]]]]]] [[[]]]] [[[[]]]]
178 [[[[[[[[]]]]]] [[[]]]] [[[[[[[[[]]]]]]]]]] [[[]]]
179 [[[[[[[[[]]]]]] [[[]]]] [[[[[[[[[]]]]]]]]]] [[[]]]]
180 [[[[[[]]]]]] [[[[[]]]]] [[[[]]]]  [[[]]]
181 [[[[[[[]]]]]] [[[[[]]]]] [[[[]]]]  [[[]]]]
182 [[[[[[[[]]]]]]]] [[[]]] [[[[[[[[]]]]]]] [[[]]]]
183 [[[[[[[[]]]]]]] [[[]]] [[[[[[]]]]]]] [[[[]]]]
184 [[[[[[[[]]]]]] [[[]]]] [[[]]]] [[[[[[[[[]]]]]]]]]
185 [[[[[[[[]]]]]]]  [[[]]]] [[[[[[]]]]]]
186 [[[[[[[[]]]]]]] [[[[[[]]]]]]] [[[[[[[]]]]]]]
187 [[[[]]]   [[[[]]]]] [[[[[[[]]]]]] [[[]]]]
188 [[[[[[[[[]]]]]] [[[]]]] [[[]]]] [[[]]]] [[[[[]]]]]
189 [[[[[[[[]]]]]]]] [[[[]]]] [[[[]]]]  [[[]]]
190 [[[[[[[[]]]]]]] [[[[]]]]] [[[[[[]]]]]] [[[]]]
191 [[[[[[[[[]]]]]]] [[[[]]]]] [[[[[[]]]]]] [[[]]]]
192 [[[]]]   [[[[]]]] [[[[[[[]]]]]]] [[[]]]
193 [[[[]]]   [[[[]]]] [[[[[[[]]]]]]] [[[]]]]
194 [[[[[[[[]]]]]]] [[[]]] [[[[[[[[[]]]]]]]]]] [[[]]]
195 [[[[[[]]]]]] [[[[]]]] [[[[[[[[]]]]]]] [[[]]]]
196 [[[[[[[[]]]]]]]] [[[]]]  [[[]]]
197 [[[[[[[[[]]]]]]]] [[[]]]  [[[]]]]
198 [[[[[[[]]]]]]] [[[[]]]] [[[[[[[]]]]]] [[[]]]]
199 [[[[[[[[]]]]]]] [[[[]]]] [[[[[[[]]]]]] [[[]]]]]
200 [[[[[[]]]]]] [[[[[]]]]] [[[[[[]]]]]] [[[]]]
201 [[[[[[[[]]]]]] [[[]]]] [[[[[[[]]]]]]]] [[[[]]]]
202 [[[[[[[]]]]]] [[[]]]  [[[]]]] [[[]]]
203 [[[[[[[[[]]]]]]]] [[[[[]]]]]] [[[[[[[[]]]]]]]]
204 [[[[]]]   [[[[]]]]] [[[[[[[]]]]]]] [[[]]]
205 [[[[[[[]]]]]] [[[]]] [[[[[]]]]]] [[[[[[]]]]]]
206 [[[[[]]]   [[[[]]]]] [[[[[[[]]]]]]]] [[[]]]
207 [[[[[[[[]]]]]] [[[]]]] [[[]]]] [[[[]]]]  [[[]]]
208 [[[]]]   [[[[]]]] [[[[[[[[]]]]]]] [[[]]]]
209 [[[[[[[[]]]]]]] [[[[]]]]] [[[[[[[]]]]]] [[[]]]]
210 [[[[[[]]]]]] [[[[]]]] [[[[[[[[]]]]]]]] [[[]]]
211 [[[[[[[]]]]]] [[[[]]]] [[[[[[[[]]]]]]]] [[[]]]]
212 [[[[[[[[[]]]]]]] [[[]]]] [[[[[]]]]]] [[[[[]]]]]
213 [[[[[[[]]]]]] [[[]]] [[[[[[[[]]]]]]]]] [[[[]]]]
214 [[[[[[[[[[]]]]]]] [[[]]]] [[[[[]]]]]] [[[]]]] [[[]]]
215 [[[[[[[[[]]]]]]]] [[[[[[[]]]]]]]] [[[[[[]]]]]]
216 [[[[[[[]]]]]]]  [[[[]]]]
217 [[[[[[[[]]]]]]] [[[[[[]]]]]]] [[[[[[[[]]]]]]]]
218 [[[[[[[[]]]]]]] [[[]]] [[[[]]]]  [[[]]]] [[[]]]
219 [[[[[[[[]]]]]]] [[[]]] [[[[[[[]]]]]]]] [[[[]]]]
220 [[[[[[[]]]]]] [[[]]]] [[[]]] [[[[[[]]]]]] [[[]]]
221 [[[[]]]   [[[[]]]]] [[[[[[[[]]]]]]] [[[]]]]
222 [[[[[[[[]]]]]]]  [[[]]]] [[[[[[[]]]]]]]
223 [[[[[[[[[]]]]]]]  [[[]]]] [[[[[[[]]]]]]]]
224 [[[]]]   [[[[]]]] [[[[[[[[]]]]]]]] [[[]]]
225 [[[[[[]]]]]] [[[[]]]]  [[[]]]
226 [[[[]]]   [[[[]]]] [[[[[[[[]]]]]]]]] [[[]]]
227 [[[[[]]]   [[[[]]]] [[[[[[[[]]]]]]]]] [[[]]]]
228 [[[[[[[[]]]]]]] [[[[]]]]] [[[[[[[]]]]]]] [[[]]]
229 [[[[[[[[[]]]]]]] [[[[]]]]] [[[[[[[]]]]]]] [[[]]]]
230 [[[[[[[[]]]]]] [[[]]]] [[[]]]] [[[[[[]]]]]] [[[]]]
231 [[[[[[[[]]]]]]]] [[[[]]]] [[[[[[[]]]]]] [[[]]]]
232 [[[[[[[[[]]]]]]]] [[[[[]]]]]] [[[[[[[[[]]]]]]]]]
233 [[[[[[[[[[]]]]]]]] [[[[[]]]]]] [[[[[[[[[]]]]]]]]]]
234 [[[[[[[]]]]]]] [[[[]]]] [[[[[[[[]]]]]]] [[[]]]]
235 [[[[[[[[[]]]]]] [[[]]]] [[[]]]] [[[]]]] [[[[[[]]]]]]
236 [[[[[[[[[[]]]]]]]] [[[[[]]]]]] [[[]]]] [[[[[]]]]]
237 [[[[[[[[[]]]]]]] [[[]]]] [[[[[[[]]]]]]]] [[[[]]]]
238 [[[[]]]   [[[[]]]]] [[[[[[[[]]]]]]]] [[[]]]
239 [[[[[]]]   [[[[]]]]] [[[[[[[[]]]]]]]] [[[]]]]
240 [[[[[[]]]]]] [[[[[]]]]] [[[[[[[]]]]]]] [[[]]]
241 [[[[[[[]]]]]] [[[[[]]]]] [[[[[[[]]]]]]] [[[]]]]
242 [[[[[[[]]]]]] [[[]]]] [[[]]] [[[[[[[]]]]]] [[[]]]]
243 [[[[]]]]  [[[[[[]]]]]]
244 [[[[[[[[]]]]]]] [[[]]] [[[[[[]]]]]]] [[[[[]]]]]
245 [[[[[[[[]]]]]]]] [[[[[[]]]]]] [[[[[[[[]]]]]]]]
246 [[[[[[[]]]]]] [[[]]] [[[[[]]]]]] [[[[[[[]]]]]]]
247 [[[[[[[[]]]]]]] [[[[]]]]] [[[[[[[[]]]]]]] [[[]]]]
248 [[[[[[[[]]]]]]] [[[[[[]]]]]]] [[[[[[[[[]]]]]]]]]
249 [[[[[[[[]]]]]] [[[]]] [[[[[]]]]]] [[[]]]] [[[[]]]]
250 [[[[[[]]]]]]  [[[]]] [[[[[[]]]]]] [[[]]]
251 [[[[[[[]]]]]]  [[[]]] [[[[[[]]]]]] [[[]]]]
252 [[[[[[[[]]]]]]]] [[[[]]]] [[[[[[[]]]]]]] [[[]]]
253 [[[[[[[[]]]]]] [[[]]]] [[[]]]] [[[[[[[]]]]]] [[[]]]]
254 [[[[[[[[[]]]]]]]] [[[]]] [[[[]]]]  [[[]]]] [[[]]]
255 [[[[]]]   [[[[]]]]] [[[[[[]]]]]] [[[[]]]]
256 [[[[[]]]]]   [[[]]]
8191 [[[[[[[[[]]]]]]] [[[]]]] [[[[[[[[]]]]]]]] [[[[[[]]]]]] [[[]]] [[[[]]]] [[[[]]]]]
13071 [[[[[[[[[[[]]]]]]] [[[[]]]] [[[[]]]]  [[[]]]] [[[[[]]]]]] [[[]]]] [[[[[[]]]]]] [[[]]]]
524287 [[[[[[[[[]]]]]]] [[[[]]]]] [[[]]] [[[[[[[[]]]]]]]] [[[[]]]] [[[[[[[[]]]]]]] [[[]]] [[[[[[[]]]]]]]] [[[[]]]] [[[[]]]]]
2147483647 [[[[[[[[[[[]]]]]]]]] [[[[]]]] [[[[[[[[]]]]]]]] [[[]]]] [[[[]]]] [[[[[[[[[]]]]]]] [[[]]]] [[[[[[]]]]]] [[[]]]] [[[[[[[]]]]]]][[[[[[[[[]]]]]]]] [[[[[[[]]]]]]]] [[[[[[[]]]]]]] [[[[[[]]]]]]  [[[[]]]]]
1449565302 [[[[[[[[[[[[[]]]]]]]] [[[]]] [[[[]]]]  [[[]]]] [[[[[]]]]]] [[[]]]] [[[]]]] [[[[[[[[[]]]]]] [[[]]]] [[[]]]] [[[[[[[]]]]]]]] [[[[[[]]]]]] [[[]]][[[[[[[[]]]]]]] [[[]]]] [[[[]]]] [[[[[[[[[]]]]]]]] [[[[[]]]]]]  [[[[]]]]]
1746268229 [[[[[[[[[[]]]]]] [[[]]]] [[[[[[[]]]]]]]] [[[[]]]  [[[[[]]]]]] [[[[[[[[[]]]]]]]] [[[[[[[]]]]]]]] [[[[[[[[]]]]]]] [[[[]]]]]][[[[[[[[[]]]]]]]] [[[[[[[]]]]]]]] [[[[[[[[]]]]]]]] [[[[[]]]]]  [[[[]]]]]
126528612 [[[[[[[[[[[]]]]]] [[[]]]] [[[[[[[]]]]]]]] [[[[[]]]]]] [[[[[[[]]]]]]] [[[]]]] [[[[[[[[]]]]]]]][[[[[[[]]]]]]  [[[]]] [[[[[[]]]]]] [[[]]]] [[[]]]  [[[[]]]]]
778085967 [[[[[[[[[[]]]]]]]] [[[[[[[]]]]]]] [[[[[[[[]]]]]]] [[[]]]] [[[]]]] [[[[[[[[[]]]]]]] [[[]]]] [[[[[]]]]]] [[[[[[]]]]]][[[[[[[[[]]]]]] [[[]]] [[[[[]]]]]] [[[]]]] [[[]]]]  [[[[[]]]]]]
1553783038 [[[[[[[[[]]]]]]] [[[]]]] [[[[]]]] [[[[[[]]]]]]  [[[]]] [[[[[[[[[]]]]]]] [[[]]] [[[[[[[[[]]]]]]]]]] [[[[[[]]]]]] [[[]]]][[[[]]]   [[[[]]]] [[[[[[[]]]]]]] [[[]]]] [[[[[[[]]]]]]]  [[[[]]]]]
997599288 [[[[[[[[]]]]]] [[[]]]] [[[[[[[[]]]]]]]] [[[[[[[]]]]]] [[[]]]] [[[]]]  [[[[[[]]]]]] [[[[[[[]]]]]] [[[]]]] [[[]]][[[[[[[[]]]]]]]  [[[]]]] [[[[]]]]  [[[[]]]]  [[[[]]]]]
Sparr
источник
7

Mathematica

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

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

1=[[]]
2=[[[]]]
3=[[[[]]]]
4=[[[[[]]]]]
5=[[[[[[]]]]]]
6=[[[[[[[]]]]]]]
7=[[[[[[[[]]]]]]]]
8=[[[]]]  [[[[]]]]
9=[[[[]]]]  [[[]]]
10=[[[[[]]]]  [[[]]]]
11=[[[[[[]]]]  [[[]]]]]
12=[[[[[]]]]] [[[[]]]]
13=[[[[[[]]]]] [[[[]]]]]
14=[[[[[[[]]]]] [[[[]]]]]]
15=[[[[[[]]]]]] [[[[]]]]
16=[[[]]]   [[[[]]]]
17=[[[[]]]   [[[[]]]]]
18=[[[[[]]]   [[[[]]]]]]
19=[[[[[[]]]   [[[[]]]]]]]
20=[[[[[[]]]]]] [[[[[]]]]]
21=[[[[[[[]]]]]] [[[[[]]]]]]
22=[[[[[[[[]]]]]] [[[[[]]]]]]]
23=[[[[[[[[[]]]]]] [[[[[]]]]]]]]
24=[[[[[[[]]]]]]] [[[[[]]]]]
25=[[[[[[]]]]]]  [[[]]]
26=[[[[[[[]]]]]]  [[[]]]]
27=[[[[]]]]   [[[]]]
28=[[[[[]]]]   [[[]]]]
29=[[[[[[]]]]   [[[]]]]]
30=[[[[[[[]]]]   [[[]]]]]]
31=[[[[[[[[]]]]   [[[]]]]]]]
32=[[[]]]  [[[[[[]]]]]]
33=[[[[]]]  [[[[[[]]]]]]]
34=[[[[[]]]  [[[[[[]]]]]]]]
35=[[[[[[]]]  [[[[[[]]]]]]]]]
36=[[[[[[[]]]]]]]  [[[]]]
37=[[[[[[[[]]]]]]]  [[[]]]]
38=[[[[[[[[[]]]]]]]  [[[]]]]]
39=[[[[[[[[[[]]]]]]]  [[[]]]]]]
40=[[[]]]  [[[[]]]] [[[[[[]]]]]]
41=[[[[]]]  [[[[]]]] [[[[[[]]]]]]]
42=[[[[[[[[]]]]]]]] [[[[[[[]]]]]]]
43=[[[[[[[[[]]]]]]]] [[[[[[[]]]]]]]]
44=[[[[[[]]]]  [[[]]]]] [[[[[]]]]]
45=[[[[]]]]  [[[]]] [[[[[[]]]]]]
46=[[[[[]]]]  [[[]]] [[[[[[]]]]]]]
47=[[[[[[]]]]  [[[]]] [[[[[[]]]]]]]]
48=[[[]]]   [[[[]]]] [[[[]]]]
49=[[[[[[[[]]]]]]]]  [[[]]]
50=[[[[[[[[[]]]]]]]]  [[[]]]]
51=[[[[[[[[[[]]]]]]]]  [[[]]]]]
52=[[[[[[[]]]]]]  [[[]]]] [[[]]]
53=[[[[[[[[]]]]]]  [[[]]]] [[[]]]]
54=[[[[]]]]   [[[]]] [[[]]]
55=[[[[[]]]]   [[[]]] [[[]]]]
56=[[[[[]]]]   [[[]]]] [[[]]]
57=[[[[[[]]]]   [[[]]]] [[[]]]]
58=[[[[[[]]]]   [[[]]]]] [[[]]]
59=[[[[[[[]]]]   [[[]]]]] [[[]]]]
60=[[[[[[[]]]]   [[[]]]]]] [[[]]]
61=[[[[[[[[]]]]   [[[]]]]]] [[[]]]]
62=[[[[[[[[]]]]   [[[]]]]]]] [[[]]]
63=[[[[]]]]  [[[]]] [[[[[[[[]]]]]]]]
64=[[[[[]]]]]  [[[[]]]]
65=[[[[[[]]]]]  [[[[]]]]]
66=[[[[[[[]]]]]  [[[[]]]]]]
67=[[[[[[[[]]]]]  [[[[]]]]]]]
68=[[[[[[[[[]]]]]  [[[[]]]]]]]]
69=[[[[[[[[[[]]]]]  [[[[]]]]]]]]]
70=[[[[[[[[[[[]]]]]  [[[[]]]]]]]]]]
71=[[[[[[[[[[[[]]]]]  [[[[]]]]]]]]]]]
72=[[[[[[[]]]]]]]  [[[]]] [[[]]]
73=[[[[[[[[]]]]]]]  [[[]]] [[[]]]]
74=[[[[[[[[]]]]]]]  [[[]]]] [[[]]]
75=[[[[[[]]]]]]  [[[]]] [[[[]]]]
76=[[[[[[[]]]]]]  [[[]]] [[[[]]]]]
77=[[[[[[[[]]]]]]  [[[]]] [[[[]]]]]]
78=[[[[[[[]]]]]]  [[[]]]] [[[[]]]]
79=[[[[[[[[]]]]]]  [[[]]]] [[[[]]]]]
80=[[[]]]   [[[[]]]] [[[[[[]]]]]]
81=[[[[]]]]  [[[[[]]]]]
82=[[[[[]]]]  [[[[[]]]]]]
83=[[[[[[]]]]  [[[[[]]]]]]]
84=[[[[[[[]]]]  [[[[[]]]]]]]]
85=[[[[[[[[]]]]  [[[[[]]]]]]]]]
86=[[[[[[[[[]]]]  [[[[[]]]]]]]]]]
87=[[[[[[]]]]   [[[]]]]] [[[[]]]]
88=[[[[[[[]]]]   [[[]]]]] [[[[]]]]]
89=[[[[[[[[]]]]   [[[]]]]] [[[[]]]]]]
90=[[[[[[[]]]]   [[[]]]]]] [[[[]]]]
91=[[[[[[[[]]]]   [[[]]]]]] [[[[]]]]]
92=[[[[[[[[[]]]]   [[[]]]]]] [[[[]]]]]]
93=[[[[[[[[]]]]   [[[]]]]]]] [[[[]]]]
94=[[[[[[[[[]]]]   [[[]]]]]]] [[[[]]]]]
95=[[[[[[]]]   [[[[]]]]]]] [[[[[[]]]]]]
96=[[[]]]  [[[[[[]]]]]] [[[[]]]]
97=[[[[]]]  [[[[[[]]]]]] [[[[]]]]]
98=[[[[[[[[]]]]]]]]  [[[]]] [[[]]]
99=[[[[]]]  [[[[[[]]]]]]] [[[[]]]]
100=[[[[[]]]]  [[[]]]]  [[[]]]
101=[[[[[[]]]]  [[[]]]]  [[[]]]]
102=[[[[[[[]]]]  [[[]]]]  [[[]]]]]
103=[[[[[[[[]]]]  [[[]]]]  [[[]]]]]]
104=[[[[[[[]]]]]]  [[[]]]] [[[[[]]]]]
105=[[[[[[[[]]]]]]  [[[]]]] [[[[[]]]]]]
106=[[[[[[[[[]]]]]]  [[[]]]] [[[[[]]]]]]]
107=[[[[[[[[[[]]]]]]  [[[]]]] [[[[[]]]]]]]]
108=[[[[]]]]   [[[]]] [[[[[]]]]]
109=[[[[[]]]]   [[[]]] [[[[[]]]]]]
110=[[[[[[]]]]   [[[]]] [[[[[]]]]]]]
111=[[[[[[[[]]]]]]]  [[[]]]] [[[[]]]]
112=[[[[[]]]]   [[[]]]] [[[[[]]]]]
113=[[[[[[]]]]   [[[]]]] [[[[[]]]]]]
114=[[[[[[[]]]]   [[[]]]] [[[[[]]]]]]]
115=[[[[[[[[]]]]   [[[]]]] [[[[[]]]]]]]]
116=[[[[[[]]]]   [[[]]]]] [[[[[]]]]]
117=[[[[[[[]]]]   [[[]]]]] [[[[[]]]]]]
118=[[[[[[[[]]]]   [[[]]]]] [[[[[]]]]]]]
119=[[[[]]]   [[[[]]]]] [[[[[[[[]]]]]]]]
120=[[[[[[[]]]]   [[[]]]]]] [[[[[]]]]]
121=[[[[[[]]]]  [[[]]]]]  [[[]]]
122=[[[[[[[]]]]  [[[]]]]]  [[[]]]]
123=[[[[[[[[]]]]  [[[]]]]]  [[[]]]]]
124=[[[[[[[[[]]]]  [[[]]]]]  [[[]]]]]]
125=[[[[[[]]]]]]  [[[[]]]]
126=[[[[[[[]]]]]]  [[[[]]]]]
127=[[[[[[[[]]]]]]  [[[[]]]]]]
128=[[[]]]  [[[[[[[[]]]]]]]]
129=[[[[]]]  [[[[[[[[]]]]]]]]]
130=[[[[[]]]  [[[[[[[[]]]]]]]]]]
131=[[[[[[]]]  [[[[[[[[]]]]]]]]]]]
132=[[[[[[[]]]]]  [[[[]]]]]] [[[]]]
133=[[[[[[[[]]]]]  [[[[]]]]]] [[[]]]]
134=[[[[[[[[]]]]]  [[[[]]]]]]] [[[]]]
135=[[[[]]]]   [[[]]] [[[[[[]]]]]]
136=[[[[[]]]]   [[[]]] [[[[[[]]]]]]]
137=[[[[[[]]]]   [[[]]] [[[[[[]]]]]]]]
138=[[[[[[[]]]]   [[[]]] [[[[[[]]]]]]]]]
139=[[[[[[[[]]]]   [[[]]] [[[[[[]]]]]]]]]]
140=[[[[[]]]]   [[[]]]] [[[[[[]]]]]]
141=[[[[[[]]]]   [[[]]]] [[[[[[]]]]]]]
142=[[[[[[[]]]]   [[[]]]] [[[[[[]]]]]]]]
143=[[[[[[[[]]]]   [[[]]]] [[[[[[]]]]]]]]]
144=[[[[[[[]]]]]]]  [[[]]] [[[[[]]]]]
145=[[[[[[]]]]   [[[]]]]] [[[[[[]]]]]]
146=[[[[[[[]]]]   [[[]]]]] [[[[[[]]]]]]]
147=[[[[[[[[]]]]]]]]  [[[]]] [[[[]]]]
148=[[[[[[[[[]]]]]]]]  [[[]]] [[[[]]]]]
149=[[[[[[[[[[]]]]]]]]  [[[]]] [[[[]]]]]]
150=[[[[[[]]]]]]  [[[]]] [[[[[[[]]]]]]]
151=[[[[[[[]]]]]]  [[[]]] [[[[[[[]]]]]]]]
152=[[[[[[[[[]]]]]]]  [[[]]]]] [[[[[]]]]]
153=[[[[]]]   [[[[]]]]] [[[[]]]]  [[[]]]
154=[[[[[]]]   [[[[]]]]] [[[[]]]]  [[[]]]]
155=[[[[[[[[]]]]   [[[]]]]]]] [[[[[[]]]]]]
156=[[[[[[[]]]]]]  [[[]]]] [[[[[[[]]]]]]]
157=[[[[[[[[]]]]]]  [[[]]]] [[[[[[[]]]]]]]]
158=[[[[[[[[]]]]]]  [[[]]]] [[[[]]]]] [[[]]]
159=[[[[[[[[]]]]]]  [[[]]]] [[[]]]] [[[[]]]]
160=[[[]]]  [[[[[[]]]]]] [[[[[[]]]]]]
161=[[[[]]]  [[[[[[]]]]]] [[[[[[]]]]]]]
162=[[[[]]]]  [[[[[]]]]] [[[]]]
163=[[[[[]]]]  [[[[[]]]]] [[[]]]]
164=[[[[[]]]]  [[[[[]]]]]] [[[]]]
165=[[[[[[]]]]  [[[[[]]]]]] [[[]]]]
166=[[[[[[]]]]  [[[[[]]]]]]] [[[]]]
167=[[[[[[[]]]]  [[[[[]]]]]]] [[[]]]]
168=[[[[[[[]]]]  [[[[[]]]]]]]] [[[]]]
169=[[[[[[]]]]] [[[[]]]]]  [[[]]]
170=[[[[[[[]]]]] [[[[]]]]]  [[[]]]]
171=[[[[[[[[]]]]] [[[[]]]]]  [[[]]]]]
172=[[[[[[[[[]]]]] [[[[]]]]]  [[[]]]]]]
173=[[[[[[[[[[]]]]] [[[[]]]]]  [[[]]]]]]]
174=[[[[[[]]]]   [[[]]]]] [[[[[[[]]]]]]]
175=[[[[[[]]]]]]  [[[]]] [[[[[[[[]]]]]]]]
176=[[[]]]   [[[[]]]] [[[[[[]]]]  [[[]]]]]
177=[[[[[[[]]]]   [[[]]]]] [[[]]]] [[[[]]]]
178=[[[[[[[[]]]]   [[[]]]]] [[[]]]] [[[[]]]]]
179=[[[[[[[[[]]]]   [[[]]]]] [[[]]]] [[[[]]]]]]
180=[[[[[[[]]]]]]]  [[[]]] [[[[[[]]]]]]
181=[[[[[[[[]]]]]]]  [[[]]] [[[[[[]]]]]]]
182=[[[[[[[[[]]]]]]]  [[[]]] [[[[[[]]]]]]]]
183=[[[[[[[[[[]]]]]]]  [[[]]] [[[[[[]]]]]]]]]
184=[[[[[]]]]  [[[]]] [[[[[[]]]]]]] [[[[[]]]]]
185=[[[[[[[[]]]]]]]  [[[]]]] [[[[[[]]]]]]
186=[[[[[[[[[]]]]]]]  [[[]]]] [[[[[[]]]]]]]
187=[[[[]]]   [[[[]]]]] [[[[[[]]]]  [[[]]]]]
188=[[[[[]]]   [[[[]]]]] [[[[[[]]]]  [[[]]]]]]
189=[[[[]]]]   [[[]]] [[[[[[[[]]]]]]]]
190=[[[[[]]]]   [[[]]] [[[[[[[[]]]]]]]]]
191=[[[[[[]]]]   [[[]]] [[[[[[[[]]]]]]]]]]
192=[[[[[]]]]]  [[[[]]]] [[[[]]]]
193=[[[[[[]]]]]  [[[[]]]] [[[[]]]]]
194=[[[[[[[]]]]]  [[[[]]]] [[[[]]]]]]
195=[[[[[[]]]]]  [[[[]]]]] [[[[]]]]
196=[[[[[[[]]]]] [[[[]]]]]]  [[[]]]
197=[[[[[[[[]]]]] [[[[]]]]]]  [[[]]]]
198=[[[[[[[]]]]]  [[[[]]]]]] [[[[]]]]
199=[[[[[[[[]]]]]  [[[[]]]]]] [[[[]]]]]
200=[[[[[]]]]  [[[]]]]  [[[]]] [[[]]]
201=[[[[[[]]]]  [[[]]]]  [[[]]] [[[]]]]
202=[[[[[[]]]]  [[[]]]]  [[[]]]] [[[]]]
203=[[[[[[[]]]]  [[[]]]]  [[[]]]] [[[]]]]
204=[[[[[[[[[]]]]]  [[[[]]]]]]]] [[[[]]]]
205=[[[[[[[[[[]]]]]  [[[[]]]]]]]] [[[[]]]]]
206=[[[[[[[[]]]]  [[[]]]]  [[[]]]]]] [[[]]]
207=[[[[[[[[[[]]]]]  [[[[]]]]]]]]] [[[[]]]]
208=[[[]]]   [[[[]]]] [[[[[[]]]]] [[[[]]]]]
209=[[[[]]]   [[[[]]]] [[[[[[]]]]] [[[[]]]]]]
210=[[[[[[[]]]]   [[[]]]]]] [[[[[[[[]]]]]]]]
211=[[[[[[[[]]]]   [[[]]]]]] [[[[[[[[]]]]]]]]]
212=[[[[[[[[]]]]]]  [[[]]]] [[[]]]] [[[[[]]]]]
213=[[[[[[[[[[[[]]]]]  [[[[]]]]]]]]]]] [[[[]]]]
214=[[[[[[[[[[[[[]]]]]  [[[[]]]]]]]]]]] [[[[]]]]]
215=[[[[[[[[[]]]]]]]] [[[[[[[]]]]]]]] [[[[[[]]]]]]
216=[[[[[[[]]]]]]]  [[[[]]]]
217=[[[[[[[[]]]]]]]  [[[[]]]]]
218=[[[[[[[[[]]]]]]]  [[[[]]]]]]
219=[[[[[[[[[[]]]]]]]  [[[[]]]]]]]
220=[[[[[[[[[[[]]]]]]]  [[[[]]]]]]]]
221=[[[[[[[[[[[[]]]]]]]  [[[[]]]]]]]]]
222=[[[[[[[[[[[[[]]]]]]]  [[[[]]]]]]]]]]
223=[[[[[[[[[[[[[[]]]]]]]  [[[[]]]]]]]]]]]
224=[[[[[]]]]   [[[]]]] [[[]]]  [[[[]]]]
225=[[[[[[]]]]]]  [[[]]] [[[[]]]]  [[[]]]
226=[[[[[[[]]]]]]  [[[]]] [[[[]]]]  [[[]]]]
227=[[[[[[[[]]]]]]  [[[]]] [[[[]]]]  [[[]]]]]
228=[[[[[[]]]]   [[[]]]] [[[]]]] [[[[[]]]]]
229=[[[[[[[]]]]   [[[]]]] [[[]]]] [[[[[]]]]]]
230=[[[[[[[[]]]]   [[[]]]] [[[]]]] [[[[[]]]]]]]
231=[[[[]]]  [[[[[[]]]]]]] [[[[[[[[]]]]]]]]
232=[[[[[[]]]]   [[[]]]]] [[[]]]  [[[[]]]]
233=[[[[[[[]]]]   [[[]]]]] [[[]]]  [[[[]]]]]
234=[[[[[[[]]]]]]  [[[]]]] [[[[]]]]  [[[]]]
235=[[[[[[[[]]]]]]  [[[]]]] [[[[]]]]  [[[]]]]
236=[[[[[[[]]]]   [[[]]]]] [[[]]]] [[[[[]]]]]
237=[[[[[[[[]]]]]]  [[[]]]] [[[[]]]]] [[[[]]]]
238=[[[[[]]]  [[[[[[]]]]]]]] [[[[[[[[]]]]]]]]
239=[[[[[[]]]  [[[[[[]]]]]]]] [[[[[[[[]]]]]]]]]
240=[[[]]]   [[[[]]]] [[[[[[]]]]]] [[[[]]]]
241=[[[[]]]   [[[[]]]] [[[[[[]]]]]] [[[[]]]]]
242=[[[[[[]]]]  [[[]]]]]  [[[]]] [[[]]]
243=[[[[]]]]  [[[[[[]]]]]]
244=[[[[[]]]]  [[[[[[]]]]]]]
245=[[[[[[]]]]  [[[[[[]]]]]]]]
246=[[[[[[[]]]]  [[[[[[]]]]]]]]]
247=[[[[[[[[]]]]  [[[[[[]]]]]]]]]]
248=[[[[[[[[[]]]]  [[[[[[]]]]]]]]]]]
249=[[[[[[]]]]  [[[[[]]]]]]] [[[[]]]]
250=[[[[[[]]]]]]  [[[[]]]] [[[]]]
251=[[[[[[[]]]]]]  [[[[]]]] [[[]]]]
252=[[[[[[[]]]]]]  [[[[]]]]] [[[]]]
253=[[[[[[[[]]]]]]  [[[[]]]]] [[[]]]]
254=[[[[[[[[]]]]]]  [[[[]]]]]] [[[]]]
255=[[[[[[[[[]]]]]]  [[[[]]]]]] [[[]]]]
256=[[[[[]]]]]   [[[]]]

Общая длина первых 256 цифр составляет 7963 символа. Я не знаю, является ли это оптимальным.

Игнорируя сложение, результаты для 8191 и 13071 были найдены через несколько секунд, а 524387 - через пару минут.

8191=[[[[[[[[]]]]]]  [[[[]]]]] [[[[[[]]]]]  [[[[]]]]]]
13071=[[[[[[[[]]]]]  [[[[]]]]]]  [[[]]]] [[[[]]]]
524387=[[[[[[[[]]]]]  [[[[]]]]] [[[[[]]]]]  [[[[]]]]] [[[[[[[]]]]]]  [[[[]]]]]]

на 164 символов вместе.

Вот код:

ClearAll[repr, sl, i, j, op, re, frontop, rearop, lastop];
repr[n_] = "";
repr[0] = "[]";
(*Hard-code higher-order solutions*)
repr[65536] = "[[[]]]    [[[[]]]]";
repr[16] = "[[[]]]   [[[[]]]]";
repr[27] = "[[[[]]]]   [[[]]]";
repr[256] = "[[[[[]]]]]   [[[]]]";
repr[3125] = "[[[[[[]]]]]]   [[[]]]";
repr[46656] = "[[[[[[[]]]]]]]   [[[]]]";
repr[823543] = "[[[[[[[[]]]]]]]]   [[[]]]";
repr[16777216] = "[[[[[[[[[]]]]]]]]]   [[[]]]";
repr[387420489] = "[[[[[[[[[[]]]]]]]]]]   [[[]]]";
frontop[n_] = 2;
rearop[n_] = 2;
sl[n_] := If[repr[n] == "", Infinity, StringLength@repr@n];
n = 256;
op[0] := (# + #2) &
op[1] := (#*#2) &
op[2] := (#^#2) &
re[0] := (repr@# <> repr@#2) &
re[1] := (repr@# <> " " <> repr@#2) &
re[2] := (repr@# <> "  " <> repr@#2) &
For[i = 0, i < n, ++i,
  If[sl[i + 1] >= sl[i] + 2,
   repr[i + 1] = "[" <> repr[i] <> "]";
   frontop[i + 1] = 2; rearop[i + 1] = 2
   ];
  For[m = 0, m < 3, ++m,
   If[rearop[i] >= m,
    For[j = 1, j <= i, ++j,
     If[frontop[j] < m || (res = op[m][i, j]) > n, Break[]];
     rep = re[m][i, j];
     If[sl[res] > StringLength@rep ||
       sl[res] == StringLength@rep && m > frontop[res],
      repr[res] = rep;
      If[m == 2,
       frontop[res] = 2; rearop[res] = 1,
       frontop[res] = m;
       rearop[res] = m
       ]
      ]
     ]
    ];
   If[frontop[i] >= m,
    For[j = 1, j <= i, ++j,
     If[rearop[j] < m || (res = op[m][j, i]) > n, Break[]];
     rep = re[m][j, i];
     If[sl[res] > StringLength@rep ||
       sl[res] == StringLength@rep && m > frontop[res],
      repr[res] = rep;
      If[m == 2,
       frontop[res] = 2; rearop[res] = 1,
       frontop[res] = m;
       rearop[res] = m
       ]
      ]
     ]
    ]
   ];
  ];

Я использовал исчерпывающий поиск до возведения в степень. Там нет тетрации или операции более высокого порядка. Я только что попробовал операции высшего порядка вручную, и есть только несколько комбинаций, которые на самом деле дают числа ниже 2 31 , поэтому я просто жестко запрограммировал те, которые работают.

Редактировать: мое предыдущее решение не беспокоиться о приоритете, он просто сложил вещи вместе. Теперь я думаю, что мой новый код исправляет это, но ни одно из первых 256 чисел не изменилось, ни 8191 (который был действителен прежде, я проверил) ... и сейчас слишком поздно, чтобы я мог сказать, действительно ли мой код это исправил , Завтра я еще раз посмотрю и добавлю объяснение, потому что теперь с проверкой приоритетов это немного запутанно (хотя, надеюсь, это должно сократить время поиска).

Редактировать: Хорошо, были некоторые ошибки, как и ожидалось. Я думаю, что я исправил это сейчас, увеличив общую длину от 1 - 256 до 7963 . Я не уверен, что это уже оптимально, потому что может быть возможно найти более короткие решения из неоптимальных частей, если они позволяют операции более высокого порядка. Объяснение будет следовать, когда мне удастся немного очистить код.

Мартин Эндер
источник
2
Извините, что продолжаю что-то менять, но я обновил формат списка, чтобы он стал более читабельным. Последнее большое изменение, я клянусь!
Увлечения Кэлвина
1
Также похоже, что вы пропали без вести 256.
Хобби Calvin's
1
@ Calvin'sHobbies Исправлена ​​и добавлена ​​тетрация. Я считаю, что я оптимально решил диапазон от 1 до 256.
Мартин Эндер
ваш 1-256, кажется, 8181 символов с новой строкой или точкой с запятой между каждым. хорошая работа, в целом!
Спарр
Ваш 16 кажется неоптимальным. Вы выражаете 16 как 4 ^ 2, что составляет 18 символов, тогда как с 2 ^^ 3 это будет 17 символов.
Исаак
1

Python 9219b

Это моя вторая запись. Я начал с нуля и попробовал новое расположение данных, включая использование пакета blist для отсортированных списков и диктов, а также некоторые новые подходы для поиска больших решений. Я думаю, что у меня есть оптимальный 1-256. Увеличение времени выполнения с 30 с до 4 м сокращало большие тестовые случаи примерно на 30 байт.

# https://pypi.python.org/pypi/blist/
# provides sorteddict
from blist import *

import math, sys

TABLE_SIZE=2**8
MAX_INT = 2**31

repr = sorteddict()

for i in range(12):
    repr[i] = sorteddict({(i*2+2,-1,-1):("["*(i+1)+"]"*(i+1), str(i))});

repr    [65536] = sorteddict({(18, 4, 4):("[[[]]]    [[[[]]]]", "2^^^3")}); # 2^^^3 = 2^^(2^^2) = 2^(2^(2^2))
repr       [16] = sorteddict({(17, 3, 3):("[[[]]]   [[[[]]]]", "2^^3")}); # 2^^3 = 2^(2^2)
repr       [27] = sorteddict({(17, 3, 3):("[[[[]]]]   [[[]]]", "3^^2")}); # 3^^2 = 3^3
repr      [256] = sorteddict({(19, 3, 3):("[[[[[]]]]]   [[[]]]", "4^^2")}); # 4^^2 = 4^4
repr     [3125] = sorteddict({(21, 3, 3):("[[[[[[]]]]]]   [[[]]]", "5^^2")}); # 5^^2 = 5^5
repr    [46656] = sorteddict({(23, 3, 3):("[[[[[[[]]]]]]]   [[[]]]", "6^^2")}); # 6^^2 = 6^6
repr   [823543] = sorteddict({(25, 3, 3):("[[[[[[[[]]]]]]]]   [[[]]]", "7^^2")}); # 7^^2 = 7^7
repr [16777216] = sorteddict({(27, 3, 3):("[[[[[[[[[]]]]]]]]]   [[[]]]", "8^^2")}); # 8^^2 = 8^8
repr[387420489] = sorteddict({(29, 3, 3):("[[[[[[[[[[]]]]]]]]]]   [[[]]]", "9^^2")}); # 9^^2 = 9^9

def expr_to_repr(a,op,b):
    rep_a = None
    for d,r in repr[a].iteritems():
        op_min, op_max = ((0,9),(1,9),(3,9))[op]
        if (d[1]==-1 or d[1]>=op_min) and d[2]<=op_max:
            rep_a = (d,r)
            break
    if not rep_a:
        rep_a = ((a*2+2,-1,-1),("["*(a+1)+"]"*(a+1), str(a)));

    rep_b = None
    for d,r in repr[b].iteritems():
        op_min, op_max = ((0,9),(1,9),(3,9))[op]
        if (d[1]==-1 or d[1]>=op_min) and d[2]<=op_max:
            rep_b = (d,r)
            break
    if not rep_b:
        rep_b = ((b*2+2,-1,-1),("["*(b+1)+"]"*(b+1), str(b)));

    r = rep_a[1][0] + " "*op + rep_b[1][0]

    return (
            (
                len(r),
                min(op, rep_a[0][1] if rep_a[0][1]!=-1 else op, rep_b[0][1] if rep_b[0][1]!=-1 else op), 
                max(op, rep_a[0][2], rep_b[0][2])
            ),
            ( 
                r, 
                expr_to_string(rep_a[1][1],op,rep_b[1][1])
            )
        );

def opsym(op):
    return ("+","*","^","^^")[op]

def expr_to_string(a,op,b):
    return str(a) + opsym(op) + str(b)

def calc(a,op,b):
    if op == 0:
        return min(a+b,MAX_INT)
    elif op == 1:
        return min(a*b,MAX_INT)
    elif op == 2:
        if (b*math.log10(a)>math.log10(MAX_INT)):
            return MAX_INT
        return min(a**b,MAX_INT)
    else:
        t = a
        for h in range(b):
            t = calc(a,op-1,t)
            if t>=MAX_INT:
                t = MAX_INT
                break
        return t

def populate_repr(a,op,b):
    o = (a,op,b)
    n = calc(*o)
    if n == MAX_INT:
        return n
    if n not in repr:
        repr[n] = sorteddict()
    r = expr_to_repr(*o)
    if conditional_replace_repr(n,r):
        for i in range(1,11):
            conditional_replace_repr(n+i,
                (
                    (
                        r[0][0]+i*2,
                        -1,
                        -1
                    ),
                    (
                        "["*i + r[1][0] + "]"*i,
                        "(" + r[1][1] + "+" + str(i) + ")"
                    )
                )
            )
    return n

def conditional_replace_repr(n,new_rep):
    if n not in repr:
        repr[n] = sorteddict()
        repr[n][new_rep[0]] = new_rep[1]
        return True
    found = None
    repl = False
    for d, r in repr[n].iteritems():
        if d[1] == new_rep[0][1] and d[2] == new_rep[0][2]:
            found = d
            if d[0] > new_rep[0][0]:
                repl = True
            break
    if (not found) or (found and repl):
        repr[n][new_rep[0]] = new_rep[1]
        if found:
            del repr[n][found]
        return True
    return False

def vaguely_decent_repr(n):
    if n <= TABLE_SIZE:
        return repr[n].iteritems().next()[1][0]
    if n in repr:
        return repr[n].iteritems().next()[1][0]
    else:
        keys = sorted(repr.keys(),reverse=True)
        best_rep = None
        tested = 0
        for i in keys:
            if i>n:
                continue
            if tested > 10:
                break
            tested += 1
            cand_rep = vaguely_decent_repr(n-i) + repr[i].iteritems().next()[1][0]
            if (not best_rep) or len(cand_rep) < len(best_rep):
                best_rep = cand_rep
        return best_rep



keys = repr.keys()
for k in keys:
    for d,r in repr[k].iteritems():
        for i in range(1,11):
            conditional_replace_repr(k+i,
                (
                    (
                        d[0]+i*2,
                        -1,
                        -1
                    ),
                    (
                        "["*i + r[0] + "]"*i,
                        "(" + r[1] + "+" + str(i) + ")"
                    )
                )
            )

# initialize the repr array with results of 1..256, 2+2 up to TABLE_SIZE^TABLE_SIZE
for row in range(2,TABLE_SIZE+1):
    for col in range(2,row):
        for op in range(1,3):
            populate_repr(row,op,col)
            if op > 1:
                populate_repr(col,op,row)
    for op in range(1,3):
        populate_repr(row,op,row)
    if row > 10:
        for frac in range(1,10):
            rep_a = repr[row-frac].iteritems().next()
            conditional_replace_repr(row,
                (
                    (
                        rep_a[0][0] + frac*2,
                        -1,
                        -1
                    ),
                    (
                        "["*frac + rep_a[1][0] + "]"*frac,
                        "(" + rep_a[1][1] + "+" + str(frac) + ")"
                    )
                )
            )
        for frac in range(10,row/2):
            rep_a = repr[frac].iteritems().next()
            rep_b = repr[row-frac].iteritems().next()
            conditional_replace_repr(row,
                (
                    (
                        rep_a[0][0]+rep_b[0][0],
                        min(rep_a[0][1],rep_b[0][1]),
                        max(rep_a[0][2],rep_b[0][2])
                    ),
                    (
                        rep_a[1][0] + rep_b[1][0],
                        rep_a[1][1] + "+" + rep_b[1][1]
                    )
                )
            )



# for n,reps in repr.iteritems():
#   for d,r in reps.iteritems():

for n in range(1,257):
    print str(n)+"="+repr[n].iteritems().next()[1][0]

for n in (8191,13071,524287,2147483647,1449565302,1746268229,126528612,778085967,1553783038,997599288):
    print str(n)+"="+vaguely_decent_repr(n)

Выход:

1=[[]]
2=[[[]]]
3=[[[[]]]]
4=[[[[[]]]]]
5=[[[[[[]]]]]]
6=[[[[[[[]]]]]]]
7=[[[[[[[[]]]]]]]]
8=[[[]]]  [[[[]]]]
9=[[[[]]]]  [[[]]]
10=[[[[[]]]]  [[[]]]]
11=[[[[[[]]]]  [[[]]]]]
12=[[[[[]]]]] [[[[]]]]
13=[[[[[[]]]]] [[[[]]]]]
14=[[[[[[[]]]]] [[[[]]]]]]
15=[[[[[[]]]]]] [[[[]]]]
16=[[[]]]   [[[[]]]]
17=[[[[]]]   [[[[]]]]]
18=[[[[[]]]   [[[[]]]]]]
19=[[[[[[]]]   [[[[]]]]]]]
20=[[[[[[]]]]]] [[[[[]]]]]
21=[[[[[[[]]]]]] [[[[[]]]]]]
22=[[[[[[[[]]]]]] [[[[[]]]]]]]
23=[[[[[[[[[]]]]]] [[[[[]]]]]]]]
24=[[[[[[[]]]]]]] [[[[[]]]]]
25=[[[[[[]]]]]]  [[[]]]
26=[[[[[[[]]]]]]  [[[]]]]
27=[[[[]]]]   [[[]]]
28=[[[[[]]]]   [[[]]]]
29=[[[[[[]]]]   [[[]]]]]
30=[[[[[[[]]]]   [[[]]]]]]
31=[[[[[[[[]]]]   [[[]]]]]]]
32=[[[]]]  [[[[[[]]]]]]
33=[[[[]]]  [[[[[[]]]]]]]
34=[[[[[]]]  [[[[[[]]]]]]]]
35=[[[[[[]]]  [[[[[[]]]]]]]]]
36=[[[[[[[]]]]]]]  [[[]]]
37=[[[[[[[[]]]]]]]  [[[]]]]
38=[[[[[[[[[]]]]]]]  [[[]]]]]
39=[[[[[[[[[[]]]]]]]  [[[]]]]]]
40=[[[[[]]]]  [[[]]]] [[[[[]]]]]
41=[[[[]]]  [[[[]]]] [[[[[[]]]]]]]
42=[[[[[[[[]]]]]]]] [[[[[[[]]]]]]]
43=[[[[[[[[[]]]]]]]] [[[[[[[]]]]]]]]
44=[[[[[[]]]]  [[[]]]]] [[[[[]]]]]
45=[[[[]]]]  [[[]]] [[[[[[]]]]]]
46=[[[[[]]]]  [[[]]] [[[[[[]]]]]]]
47=[[[[[[]]]]  [[[]]] [[[[[[]]]]]]]]
48=[[[]]]   [[[[]]]] [[[[]]]]
49=[[[[[[[[]]]]]]]]  [[[]]]
50=[[[[[[[[[]]]]]]]]  [[[]]]]
51=[[[[[[[[[[]]]]]]]]  [[[]]]]]
52=[[[[[[[]]]]]]  [[[]]]] [[[]]]
53=[[[[[[[[]]]]]]  [[[]]]] [[[]]]]
54=[[[[]]]]   [[[]]] [[[]]]
55=[[[[[]]]]   [[[]]] [[[]]]]
56=[[[[[]]]]   [[[]]]] [[[]]]
57=[[[[[[]]]]   [[[]]]] [[[]]]]
58=[[[[[[]]]]   [[[]]]]] [[[]]]
59=[[[[[[[]]]]   [[[]]]]] [[[]]]]
60=[[[[[[[]]]]   [[[]]]]]] [[[]]]
61=[[[[[[[[]]]]   [[[]]]]]] [[[]]]]
62=[[[[[[[[]]]]   [[[]]]]]]] [[[]]]
63=[[[[]]]]  [[[]]] [[[[[[[[]]]]]]]]
64=[[[[[]]]]]  [[[[]]]]
65=[[[[[[]]]]]  [[[[]]]]]
66=[[[[[[[]]]]]  [[[[]]]]]]
67=[[[[[[[[]]]]]  [[[[]]]]]]]
68=[[[[[[[[[]]]]]  [[[[]]]]]]]]
69=[[[[[[[[[[]]]]]  [[[[]]]]]]]]]
70=[[[[[[[[[[[]]]]]  [[[[]]]]]]]]]]
71=[[[[[[[[[[[[]]]]]  [[[[]]]]]]]]]]]
72=[[[[[[[]]]]]]]  [[[]]] [[[]]]
73=[[[[[[[[]]]]]]]  [[[]]] [[[]]]]
74=[[[[[[[[]]]]]]]  [[[]]]] [[[]]]
75=[[[[[[]]]]]]  [[[]]] [[[[]]]]
76=[[[[[[[]]]]]]  [[[]]] [[[[]]]]]
77=[[[[[[[[]]]]]]  [[[]]] [[[[]]]]]]
78=[[[[[[[]]]]]]  [[[]]]] [[[[]]]]
79=[[[[[[[[]]]]]]  [[[]]]] [[[[]]]]]
80=[[[]]]   [[[[]]]] [[[[[[]]]]]]
81=[[[[]]]]  [[[[[]]]]]
82=[[[[[]]]]  [[[[[]]]]]]
83=[[[[[[]]]]  [[[[[]]]]]]]
84=[[[[[[[]]]]  [[[[[]]]]]]]]
85=[[[[[[[[]]]]  [[[[[]]]]]]]]]
86=[[[[[[[[[]]]]  [[[[[]]]]]]]]]]
87=[[[[[[]]]]   [[[]]]]] [[[[]]]]
88=[[[[[[[]]]]   [[[]]]]] [[[[]]]]]
89=[[[[[[[[]]]]   [[[]]]]] [[[[]]]]]]
90=[[[[[[[]]]]   [[[]]]]]] [[[[]]]]
91=[[[[[[[[]]]]   [[[]]]]]] [[[[]]]]]
92=[[[[[[[[[]]]]   [[[]]]]]] [[[[]]]]]]
93=[[[[[[[[]]]]   [[[]]]]]]] [[[[]]]]
94=[[[[[[[[[]]]]   [[[]]]]]]] [[[[]]]]]
95=[[[[[[]]]   [[[[]]]]]]] [[[[[[]]]]]]
96=[[[]]]  [[[[[[]]]]]] [[[[]]]]
97=[[[[]]]  [[[[[[]]]]]] [[[[]]]]]
98=[[[[[[[[]]]]]]]]  [[[]]] [[[]]]
99=[[[[]]]  [[[[[[]]]]]]] [[[[]]]]
100=[[[[[]]]]  [[[]]]]  [[[]]]
101=[[[[[[]]]]  [[[]]]]  [[[]]]]
102=[[[[[[[]]]]  [[[]]]]  [[[]]]]]
103=[[[[[[[[]]]]  [[[]]]]  [[[]]]]]]
104=[[[[[[[]]]]]]  [[[]]]] [[[[[]]]]]
105=[[[[[[[[]]]]]]  [[[]]]] [[[[[]]]]]]
106=[[[[[[[[[]]]]]]  [[[]]]] [[[[[]]]]]]]
107=[[[[[[[[[[]]]]]]  [[[]]]] [[[[[]]]]]]]]
108=[[[[]]]]   [[[]]] [[[[[]]]]]
109=[[[[[]]]]   [[[]]] [[[[[]]]]]]
110=[[[[[[]]]]   [[[]]] [[[[[]]]]]]]
111=[[[[[[[[]]]]]]]  [[[]]]] [[[[]]]]
112=[[[[[]]]]   [[[]]]] [[[[[]]]]]
113=[[[[[[]]]]   [[[]]]] [[[[[]]]]]]
114=[[[[[[[]]]]   [[[]]]] [[[[[]]]]]]]
115=[[[[[[[[]]]]   [[[]]]] [[[[[]]]]]]]]
116=[[[[[[]]]]   [[[]]]]] [[[[[]]]]]
117=[[[[[[[]]]]   [[[]]]]] [[[[[]]]]]]
118=[[[[[[[[]]]]   [[[]]]]] [[[[[]]]]]]]
119=[[[[]]]   [[[[]]]]] [[[[[[[[]]]]]]]]
120=[[[[[[[]]]]   [[[]]]]]] [[[[[]]]]]
121=[[[[[[]]]]  [[[]]]]]  [[[]]]
122=[[[[[[[]]]]  [[[]]]]]  [[[]]]]
123=[[[[[[[[]]]]  [[[]]]]]  [[[]]]]]
124=[[[[[[[[[]]]]  [[[]]]]]  [[[]]]]]]
125=[[[[[[]]]]]]  [[[[]]]]
126=[[[[[[[]]]]]]  [[[[]]]]]
127=[[[[[[[[]]]]]]  [[[[]]]]]]
128=[[[]]]  [[[[[[[[]]]]]]]]
129=[[[[]]]  [[[[[[[[]]]]]]]]]
130=[[[[[]]]  [[[[[[[[]]]]]]]]]]
131=[[[[[[]]]  [[[[[[[[]]]]]]]]]]]
132=[[[[[[[]]]]]  [[[[]]]]]] [[[]]]
133=[[[[[[[[]]]]]  [[[[]]]]]] [[[]]]]
134=[[[[[[[[]]]]]  [[[[]]]]]]] [[[]]]
135=[[[[]]]]   [[[]]] [[[[[[]]]]]]
136=[[[[[]]]]   [[[]]] [[[[[[]]]]]]]
137=[[[[[[]]]]   [[[]]] [[[[[[]]]]]]]]
138=[[[[[[[]]]]   [[[]]] [[[[[[]]]]]]]]]
139=[[[[[[[[]]]]   [[[]]] [[[[[[]]]]]]]]]]
140=[[[[[]]]]   [[[]]]] [[[[[[]]]]]]
141=[[[[[[]]]]   [[[]]]] [[[[[[]]]]]]]
142=[[[[[[[]]]]   [[[]]]] [[[[[[]]]]]]]]
143=[[[[[[[[]]]]   [[[]]]] [[[[[[]]]]]]]]]
144=[[[[[[[]]]]  [[[]]]]]]  [[[]]]
145=[[[[[[[[]]]]  [[[]]]]]]  [[[]]]]
146=[[[[[[[[[]]]]  [[[]]]]]]  [[[]]]]]
147=[[[[[[[[]]]]]]]]  [[[]]] [[[[]]]]
148=[[[[[[[[[]]]]]]]]  [[[]]] [[[[]]]]]
149=[[[[[[[[[]]]]]]]  [[[]]]] [[[[[]]]]]]
150=[[[[[[[[[]]]]]]]]  [[[]]]] [[[[]]]]
151=[[[[[[[]]]]]]  [[[]]] [[[[[[[]]]]]]]]
152=[[[[[[[[[]]]]]]]  [[[]]]]] [[[[[]]]]]
153=[[[[]]]   [[[[]]]]] [[[[]]]]  [[[]]]
154=[[[[[]]]   [[[[]]]]] [[[[]]]]  [[[]]]]
155=[[[[[[[[]]]]   [[[]]]]]]] [[[[[[]]]]]]
156=[[[[[[[]]]]]]  [[[]]]] [[[[[[[]]]]]]]
157=[[[[[[[[]]]]]]  [[[]]]] [[[[[[[]]]]]]]]
158=[[[[[[[[]]]]]]  [[[]]]] [[[[]]]]] [[[]]]
159=[[[[[[[[]]]]]]  [[[]]]] [[[]]]] [[[[]]]]
160=[[[]]]  [[[[[[]]]]]] [[[[[[]]]]]]
161=[[[[]]]  [[[[[[]]]]]] [[[[[[]]]]]]]
162=[[[[]]]]  [[[[[]]]]] [[[]]]
163=[[[[[]]]]  [[[[[]]]]] [[[]]]]
164=[[[[[]]]]  [[[[[]]]]]] [[[]]]
165=[[[[[[]]]]  [[[[[]]]]]] [[[]]]]
166=[[[[[[]]]]  [[[[[]]]]]]] [[[]]]
167=[[[[[[[]]]]  [[[[[]]]]]]] [[[]]]]
168=[[[[[[[]]]]  [[[[[]]]]]]]] [[[]]]
169=[[[[[[]]]]] [[[[]]]]]  [[[]]]
170=[[[[[[[]]]]] [[[[]]]]]  [[[]]]]
171=[[[[[[[[]]]]] [[[[]]]]]  [[[]]]]]
172=[[[[[[[[[]]]]] [[[[]]]]]  [[[]]]]]]
173=[[[[[[[[[[]]]]] [[[[]]]]]  [[[]]]]]]]
174=[[[[[[]]]]   [[[]]]]] [[[[[[[]]]]]]]
175=[[[[[[]]]]]]  [[[]]] [[[[[[[[]]]]]]]]
176=[[[]]]   [[[[]]]] [[[[[[]]]]  [[[]]]]]
177=[[[[[[[]]]]   [[[]]]]] [[[]]]] [[[[]]]]
178=[[[[[[[[]]]]   [[[]]]]] [[[]]]] [[[[]]]]]
179=[[[[[[[[[]]]]   [[[]]]]] [[[]]]] [[[[]]]]]]
180=[[[[[[[]]]]]]]  [[[]]] [[[[[[]]]]]]
181=[[[[[[[[]]]]]]]  [[[]]] [[[[[[]]]]]]]
182=[[[[[[[[[]]]]]]]  [[[]]] [[[[[[]]]]]]]]
183=[[[[[[[[]]]]]]  [[[]]]] [[[[[[[[]]]]]]]]]
184=[[[[[]]]]  [[[]]] [[[[[[]]]]]]] [[[[[]]]]]
185=[[[[[[[[]]]]]]]  [[[]]]] [[[[[[]]]]]]
186=[[[[[[[[[]]]]]]]  [[[]]]] [[[[[[]]]]]]]
187=[[[[]]]   [[[[]]]]] [[[[[[]]]]  [[[]]]]]
188=[[[[[]]]   [[[[]]]]] [[[[[[]]]]  [[[]]]]]]
189=[[[[]]]]   [[[]]] [[[[[[[[]]]]]]]]
190=[[[[[]]]]   [[[]]] [[[[[[[[]]]]]]]]]
191=[[[[[[]]]]   [[[]]] [[[[[[[[]]]]]]]]]]
192=[[[[[]]]]]  [[[[]]]] [[[[]]]]
193=[[[[[[]]]]]  [[[[]]]] [[[[]]]]]
194=[[[[[[[]]]]]  [[[[]]]] [[[[]]]]]]
195=[[[[[[]]]]]  [[[[]]]]] [[[[]]]]
196=[[[[[[[]]]]] [[[[]]]]]]  [[[]]]
197=[[[[[[[[]]]]] [[[[]]]]]]  [[[]]]]
198=[[[[[[[]]]]]  [[[[]]]]]] [[[[]]]]
199=[[[[[[[[]]]]]  [[[[]]]]]] [[[[]]]]]
200=[[[[[]]]]  [[[]]]]  [[[]]] [[[]]]
201=[[[[[[]]]]  [[[]]]]  [[[]]] [[[]]]]
202=[[[[[[]]]]  [[[]]]]  [[[]]]] [[[]]]
203=[[[[[[[]]]]  [[[]]]]  [[[]]]] [[[]]]]
204=[[[[[[[[[]]]]]  [[[[]]]]]]]] [[[[]]]]
205=[[[[[[[[[[]]]]]  [[[[]]]]]]]] [[[[]]]]]
206=[[[[[[[[]]]]  [[[]]]]  [[[]]]]]] [[[]]]
207=[[[[[[[[[[]]]]]  [[[[]]]]]]]]] [[[[]]]]
208=[[[[[[[]]]]]]  [[[]]]] [[[]]]  [[[[]]]]
209=[[[[]]]   [[[[]]]] [[[[[[]]]]] [[[[]]]]]]
210=[[[[[[[]]]]   [[[]]]]]] [[[[[[[[]]]]]]]]
211=[[[[[[[[]]]]   [[[]]]]]] [[[[[[[[]]]]]]]]]
212=[[[[[[[[]]]]]]  [[[]]]] [[[]]]] [[[[[]]]]]
213=[[[[[[[[[[[[]]]]]  [[[[]]]]]]]]]]] [[[[]]]]
214=[[[[[[[[[[[[[]]]]]  [[[[]]]]]]]]]]] [[[[]]]]]
215=[[[[[[[[[]]]]]]]] [[[[[[[]]]]]]]] [[[[[[]]]]]]
216=[[[[[[[]]]]]]]  [[[[]]]]
217=[[[[[[[[]]]]]]]  [[[[]]]]]
218=[[[[[[[[[]]]]]]]  [[[[]]]]]]
219=[[[[[[[[[[]]]]]]]  [[[[]]]]]]]
220=[[[[[[[[[[[]]]]]]]  [[[[]]]]]]]]
221=[[[[[[[[[[[[]]]]]]]  [[[[]]]]]]]]]
222=[[[[[[[[[[[[[]]]]]]]  [[[[]]]]]]]]]]
223=[[[[[[[[[[[[[[]]]]]]]  [[[[]]]]]]]]]]]
224=[[[[[]]]]   [[[]]]] [[[]]]  [[[[]]]]
225=[[[[[[[[]]]]] [[[[]]]]]]]  [[[]]]
226=[[[[[[[[[]]]]] [[[[]]]]]]]  [[[]]]]
227=[[[[[[[[[[]]]]] [[[[]]]]]]]  [[[]]]]]
228=[[[[[[[[[[[]]]]] [[[[]]]]]]]  [[[]]]]]]
229=[[[[[[[[[[[[]]]]] [[[[]]]]]]]  [[[]]]]]]]
230=[[[[[[[[[[[[[]]]]] [[[[]]]]]]]  [[[]]]]]]]]
231=[[[[]]]  [[[[[[]]]]]]] [[[[[[[[]]]]]]]]
232=[[[[[[]]]]   [[[]]]]] [[[]]]  [[[[]]]]
233=[[[[[[[]]]]   [[[]]]]] [[[]]]  [[[[]]]]]
234=[[[[[[[]]]]]]  [[[]]]] [[[[]]]]  [[[]]]
235=[[[[[[[[]]]]]]  [[[]]]] [[[[]]]]  [[[]]]]
236=[[[[[[[]]]]   [[[]]]]] [[[]]]] [[[[[]]]]]
237=[[[[[[[[]]]]]]  [[[]]]] [[[[]]]]] [[[[]]]]
238=[[[[[]]]  [[[[[[]]]]]]]] [[[[[[[[]]]]]]]]
239=[[[[[[]]]  [[[[[[]]]]]]]] [[[[[[[[]]]]]]]]]
240=[[[]]]   [[[[]]]] [[[[[[]]]]]] [[[[]]]]
241=[[[[]]]   [[[[]]]] [[[[[[]]]]]] [[[[]]]]]
242=[[[[[[]]]]  [[[]]]]]  [[[]]] [[[]]]
243=[[[[]]]]  [[[[[[]]]]]]
244=[[[[[]]]]  [[[[[[]]]]]]]
245=[[[[[[]]]]  [[[[[[]]]]]]]]
246=[[[[[[[]]]]  [[[[[[]]]]]]]]]
247=[[[[[[[[]]]]  [[[[[[]]]]]]]]]]
248=[[[[[[[[[]]]]  [[[[[[]]]]]]]]]]]
249=[[[[[[]]]]  [[[[[]]]]]]] [[[[]]]]
250=[[[[[[]]]]]]  [[[[]]]] [[[]]]
251=[[[[[[[]]]]]]  [[[[]]]] [[[]]]]
252=[[[[[[[]]]]]]  [[[[]]]]] [[[]]]
253=[[[[[[[[]]]]]]  [[[[]]]]] [[[]]]]
254=[[[[[[[[]]]]]]  [[[[]]]]]] [[[]]]
255=[[[[[[[[[]]]]]]  [[[[]]]]]] [[[]]]]
256=[[[[[]]]]]   [[[]]]
8191=[[[[[[[[]]]]]]  [[[[]]]]] [[[[[[]]]]]  [[[[]]]]]]
13071=[[[[[[[[[]]]]  [[[]]]]]  [[[]]] [[[[]]]]   [[[]]] [[[[[]]]]]]]]
524287=[[[[]]]]   [[[]]] [[[[[[[[]]]]]]]] [[[[[[]]]]]  [[[[]]]]][[[[[[[[[[[]]]]]]  [[[]]]] [[[[]]]]]]  [[[[]]]]]]
2147483647=[[[[[[]]]]]]  [[[[]]]] [[[[[]]]]] [[[[]]]][[[[]]]   [[[[]]]]]  [[[[[]]]]][[[[[[[[[[[]]]]]]]  [[[[]]]]]]]]  [[[[]]]][[[[[[[[[[[[[[[]]]]]  [[[[]]]]]]]]]]] [[[[]]]]]]  [[[[[]]]]]]
1449565302=[[[[[[[[[]]]]  [[[]]]]]]  [[[]]]]] [[[[[[[[]]]]  [[[[[]]]]]]]]][[[[[]]]   [[[[]]]]] [[[[]]]]  [[[]]]]  [[[[]]]][[[[[[[[[[[]]]]]  [[[[]]]] [[[[]]]]]]]  [[[[[]]]]]]]]
1746268229=[[[[[[[]]]]]]]  [[[[]]]] [[[[]]]  [[[[[[[[]]]]]]]]][[[[]]]]   [[[]]]  [[[[[[]]]]]][[[[[[[[[[]]]]  [[[]]]]  [[[]]]] [[[]]]]]  [[[[[]]]]]]]
126528612=[[[[[[]]]]  [[[[[[]]]]]]]] [[[[[]]]]][[[[[[[]]]]]]]  [[[[[[[[]]]]]]]][[[[[[[[[]]]]]]  [[[]]]] [[[[[]]]]]]]  [[[[[]]]]]
778085967=[[[[[[[[[]]]]  [[[[[]]]]]]]]]] [[[[[[]]]]]]  [[[]]][[[[[[[]]]]]  [[[[]]]]]]  [[[[]]]][[[[[[[]]]]  [[[[[]]]]]]] [[[]]]]  [[[[[]]]]]
1553783038=[[[[[]]]  [[[[[[[[]]]]]]]]]] [[[[[[[]]]]   [[[]]]]]][[[[[]]]   [[[[]]]]]]  [[[[[]]]]][[[[[[[[[]]]]  [[[]]]]  [[[]]]]]] [[[]]]]  [[[[]]]][[[[[[[[]]]  [[[[[[]]]]]]]]  [[[[[[[]]]]]]]]]]
997599288=[[[[[]]]]   [[[]]] [[[[[[]]]]]]] [[[[[[[[]]]]]  [[[[]]]]]]][[[[[[[[]]]]]] [[[[[]]]]]]]  [[[[[[]]]]]][[[[[[[[[[]]]]   [[[]]]]]]] [[[]]]]  [[[[[[]]]]]]]

7944b для 1-256

1275b для больших случаев

Sparr
источник