Vamos trabalhar para trás neste. Primeiro, transformamos os dígitos em suas representações binárias. Nós vamos de VW626206555675126212043640270477001760465526277571600601
para VW++__+_++__+____++_+_++_++_+++_++++_+__+_+_++__+___+_+____+___++++_+______+_+++___+__++++++________++++++____+__++_+_++_+_+_++__+_+++++++_++++__+++_______++______+
. Em seguida, continuamos aplicando o inverso de DCW:W+
e DW:W_
até limparmos todos os símbolos. Nosso resultado é agora VDCDCDDDCDDCDCDDDCDDDDDCDCDDCDDCDCDDCDCDDCDCDCDDCDCDCDCDDCDDDCDDCDDCDCDDDCDDDDCDDCDDDDDCDDDDCDCDCDCDDCDDDDDDDCDDCDCDCDDDDCDDDCDCDCDCDCDCDDDDDDDDDCDCDCDCDCDCDDDDDCDDDCDCDDCDDCDCDDCDDCDDCDCDDDCDDCDCDCDCDCDCDCDDCDCDCDCDDDCDCDCDDDDDDDDCDCDDDDDDDCW
. Agora, queremos fazer com que essa string corresponda VD+C+W
; isto é, queremos mover todos os D
s para a esquerda de todos eles C
. Isso pode ser feito revertendo DCC:CD
. Fazemos isso repetindo o seguinte algoritmo:
- Encontre o primeiro
D
que está à direita de um bloco de C
s.
- Mova
D
para a esquerda desse bloco.
- Dobrar o número de
C
s.
Através de algumas contas, podemos determinar que teremos 123 se D
4638704741628490670592103344196019722536654143873 C
s (você estava certo sobre isso não se encaixar em uma resposta SE ... duvido que isso se encaixaria se armazenado como estados de todos os átomos da Terra combinado: P).
Se continuarmos aplicando o inverso de V:VD
, podemos nos livrar de todos os D
s agora, e assim conseguiremos VCCC.......CCCW
. Nós convertemos as V
costas em YZ
. Agora nós temos YZCCC.......CCCW
.
Queremos ser capazes de nos livrar de todos os se C
tê-lo na forma YAAA...AAABBB...BBBZW
. Felizmente, isso pode ser feito pelo seguinte método. Em primeiro lugar, aplicamos YB:Y
inversamente 587912508217580921743211 vezes para obter YBBB.......BBBZCCC.......CCCW
. Em seguida, repetimos a seguinte sequência de etapas (onde [?*]
significa qualquer número de ?
, não necessariamente maior que zero):
CZ:ZC
Aplicação inversa 587912508217580921743211 vezes para obterY[A*]BBB.......BBBCCC.......CCCZCCC.......CCCW
- Aplique inversamente
CB:BC
várias vezes para obterY[A*]BCBCBC.......BCBCBCZCCC.......CCCW
- Aplicação inversa
AZ:Z
e AB:BCA
muitas vezes para obterY[A*]ABBB.......BBBZCCC.......CCCW
Por indução, vemos que podemos mover a BZ
combinação até o fim (exceto antes do W
) e, em seguida, o número de A
s é 1/587912508217580921743211 do número de C
s, deixando-nos 7890127658096618386747843 A
s. Agora temos YAAA.......AAABBB.......BBBZW
. Converta as ZW
costas em a e U
, em seguida, aplique inversamente U:BU
várias vezes para manter apenas 2 se, B
depois converta-as BBU
em a T
, e agora você tem YAAA.......AAAT
. Em seguida, você pode aplicar inversamente T:AAAAAT
várias vezes para obter, YAAAT
porque o número de A
s era 3 maior que um múltiplo de 5.
Obrigado pelo desafio!