Éric Angelini ontdekte deze reeks die zichzelf progressief beschrijft:

10 71 32 23 14 15 16 27 18 19

20 81 72 53 44 35 26 47 38 29

40 101 82 73 64 65 56 77 58 39

60 131 92 93 74 75 86 107 88 69

80 201 122 113 84 85 96 117 138 89

De eerste regel beschrijft zichzelf: ze bevat één keer het cijfer 0, zeven keer het cijfer 1, drie keer het cijfer 2, twee keer het cijfer 3, enzoverder.

Op een analoge manier beschrijft de tweede regel de gezamelijke inhoud van de eerste twee regels: ze bevatten samen twee keer het cijfer 0, acht keer het cijfer 1, zeven keer het cijfer 2, vijf keer het cijfer 3, enzoverder.

Ook de volgende regels beschrijven hun eigen inhoud en die van alle voorgaande regels. De vijfde regel beschrijft de gezamelijke inhoud van alle regels: ze bevatten samen acht keer het cijfer 0, twintig keer het cijfer 1, twaalf keer het cijfer 2, elf keer het cijfer 3, enzoverder.

Hij vermoedt dat een zelfbeschrijvende reeks met zes regels er misschien ook wel moet inzitten, maar tot nu toe heeft hij er nog geen gevonden.

Opgave

De cijferfrequentie van een string $$s$$ (String) is een reeks (Array) van tien getallen $$[a_0, a_1, \ldots, a_9]$$, waarbij $$a_i \in \mathbb{N}$$ (Number) aangeeft hoeveel keer het cijfer $$i$$ voorkomt in $$s$$ ($$i = 0, 1, \ldots, 9$$).

De beschrijving van een cijferfrequentie $$(a_0, a_1, \ldots, a_9)$$ is een string (String) die wordt opgemaakt als

$$a_0$$0 $$a_1$$1 $$\ldots$$ $$a_9$$9

Daarbij worden voorloopnullen in de weergave van $$a_i$$i ($$i = 0, 1, \ldots, 9$$) weggelaten: als het cijfer 3 niet voorkomt in de string $$s$$ dan schrijven we in de beschrijving van de cijferfrequentie gewoon 3 en niet 03. Gevraagd wordt:

Voorbeeld

>>> cijferfrequentie("10 71 32 23 14 15 16 27 18 19");
[1, 7, 3, 2, 1, 1, 1, 2, 1, 1]
>>> cijferfrequentie("F1gur471v3ly 5p34k1ng?");
[0, 3, 0, 2, 2, 1, 0, 1, 0, 0]

>>> beschrijving([1, 7, 3, 2, 1, 1, 1, 2, 1, 1])
"10 71 32 23 14 15 16 27 18 19"
>>> beschrijving([0, 3, 0, 2, 2, 1, 0, 1, 0, 0])
"0 31 2 23 24 15 6 17 8 9"

>>> iszelfbeschrijvend("10 71 32 23 14 15 16 27 18 19");
true
>>> iszelfbeschrijvend("F1gur471v3ly 5p34k1ng?");
false
>>> iszelfbeschrijvend(
...     "10 71 32 23 14 15 16 27 18 19",
...     "20 81 72 53 44 35 26 47 38 29"
... );
true
>>> iszelfbeschrijvend(
...     "10 71 32 23 14 15 16 27 18 19",
...     "20 81 72 53 44 35 26 47 38 29",
...     "40 101 82 73 64 65 56 77 58 39",
...     "60 131 92 93 74 75 86 107 88 69",
...     "80 201 122 113 84 85 96 117 138 89"
... );
true