A recent XKCD caused some amusement: “Vocabulary update: I learned another word today, bringing my total to twelve”.

We wondered whether there might be possible formulations of this joke that also contained the unique character count, so I wrote the following python script:

import num2word
import numpy

def find_self_reference():
    sentence = "I learned another word today bringing my total to {0} words and {1} letters"
    words = 12

    for i in range(0, 1000):
        num_word = num2word.word(i)
        final_words = words + numpy.char.count(num_word, " ") + 1
        final_num_words = (
            int(final_words)
            + int(numpy.char.count(num2word.word(int(final_words)), " "))
            + 1
        )

        sentence_sub = sentence.format(num2word.word(final_num_words), num_word)
        characters = len(set(sentence_sub.replace(" ", "")))

        print(f"Needed {characters} characters but got {i}.")

        if characters == i:
            print(sentence_sub)
            return

This gives us the following results:

  • I learned another word today bringing my total to fourteen words and twenty letters

or

  • Vocabulary update: I learned another word today bringing my total to seventeen words and twenty five letters

Good to have a hobby.

References

This reference list has been generated, in many cases, through an automated process and may therefore contain errors or incomplete metadata. It is provided purely as assistance for finding the items mentioned within this post.

  1. ‘2839: Language Acquisition’, explain xkcd <https://www.explainxkcd.com/wiki/index.php/2839:_Language_Acquisition>