En matemáticas recreativas , un número de Keith o número repfigit (abreviatura de dígito repetitivo similar a Fibonacci ) es un número natural en una base numérica dada con dígitos tales que cuando se crea una secuencia de modo que los primeros términos sean los dígitos de y cada término posterior sea la suma de los términos anteriores, es parte de la secuencia. Los números de Keith fueron introducidos por Mike Keith en 1987. [1] Son computacionalmente muy difíciles de encontrar, con solo alrededor de 100 conocidos.
Sea un número natural, sea el número de dígitos de en base , y sea
sea el valor de cada dígito de .
Definimos la secuencia mediante una relación de recurrencia lineal . Para ,
y para
Si existe un tal que , entonces se dice que es un número de Keith .
Por ejemplo, 88 es un número de Keith en base 6 , como
y toda la secuencia
y .
Actualmente, se especula sobre si existen o no infinitos números de Keith en una base determinada . Los números de Keith son raros y difíciles de encontrar. Se pueden encontrar mediante una búsqueda exhaustiva y no se conoce ningún algoritmo más eficiente. [2] Según Keith, en base 10 , en promedio se esperan números de Keith entre potencias sucesivas de 10. [3] Los resultados conocidos parecen respaldar esto .
14 , 19 , 28 , 47 , 61 , 75 , 197, 742, 1104, 1537, 2208, 2580, 3684, 4788, 7385, 7647, 7909, 31331, 34285, 34348, 55604, 62662, 86935, 93993, 120284, 129106, 147640, 156146, 174680, 183186, 298320, 355419, 694280, 925993, 1084051, 7913837, 11436171, 33445755, 44121607, 129572008, 251133297, ... [4]
En base 2 , existe un método para construir todos los números de Keith. [3]
Los números de Keith en base 12 , escritos en base 12, son
donde ᘔ representa 10 y Ɛ representa 11.
Un grupo de Keith es un conjunto relacionado de números de Keith de modo que uno es múltiplo de otro. Por ejemplo, en base 10 , , y son todos grupos de Keith. Estos son posiblemente los únicos tres ejemplos de un grupo de Keith en base 10. [ 5]
El siguiente ejemplo implementa la secuencia definida anteriormente en Python para determinar si un número en una base particular es un número de Keith:
def is_repfigit ( x : int , b : int ) -> bool : """Determinar si un número en una base particular es un número de Keith.""" si x == 0 : devuelve Verdadero secuencia = [] y = x mientras y > 0 : secuencia . append ( y % b ) y = y // b digit_count = len ( secuencia ) secuencia . reverse () mientras secuencia [ len ( secuencia ) - 1 ] < x : n = 0 para i en rango ( 0 , número_de_dígitos ) : n = n + secuencia [ len ( secuencia ) - número_de_dígitos + i ] secuencia .append ( n ) secuencia de retorno [ len ( secuencia ) - 1 ] == x