Com aquele código calculamos a função

para alguns valores de n com k = 3.
Que deveria ser a probabilidade de encontrarmos a sequência de dígitos "123" em uma série de n dígitos obtidos aleatoriamente.
Achamos que esta probabilidade deveria tender para 1 quando n tende para infinito (para qualquer valor de k).
E de fato

se mostrou crescente no intervalo pesquisado. E evidentemente

não pode ser jamais maior que 1, porque p(n, k) retorna um número de séries que existem em um subconjunto das

possíveis.
Ou seja,

para qualquer n.
Logo esperamos que

Com p'(n, k)
(p linha) sendo o somatório de todas as séries que foram computadas redundantemente no cálculo de

Por isso p'(n, k) é subtraído de

para encontrarmos o número total de séries onde ocorre "123" ao menos uma vez.
Mas ao examinar este limite pensei: "Ops, devo ter feito alguma coisa errada..."
Porque

Como no limite

apenas n não é constante, evidentemente este limite tende para infinito. O que obrigaria (para dar um!) o limite

também tender para infinito.
O que parece ser contra-intuitivo porque para isso o número de séries "contabilizadas" redundantemente deve tender para ser
INFINITAMENTE maior que o próprio número
TOTAL de SÉRIES POSSÍVEIS!Mas pode ser isto mesmo porque percebo que a mesma série é computada redundantemente muitas e muitas vezes e quanto maior o valor de n, mais redundâncias estarão presentes no cálculo de

É curioso também perceber a relação entre os limites

e

Porque no infinito a diferença entre estes limites tenderia a ser
exatamente e apenas igual a 1. Que incrível coisa é a matemática!
Tentei fazer umas investigações com aquele método p(), mas embora na minha máquina obtenha até p(40) em 1 segundo, para n maior que 50 o tempo de processamento começa a se tornar excessivamente longo.
Mas dá para fazer umas poucas alterações simples no método e ele fica realmente rápido. Na verdade consegui agora calcular até P(308) em 0 segundos.
Em n = 308 a função

dá 0.041823610544973765
Uau! Falta muito para infinito. Falta muito até para chegar a 1...

Mas para passar de 308 em Java agora o tempo de processamento não é mais impedimento, mas sim o fato de que para n > 308 vai estourar a capacidade de representação de valores em ponto flutuante no tipo double.
No entanto, apesar de estranho à primeira vista,

deve se verificar.
O que acha?