Entrada destacada

Distancia media de dos puntos en un cuadrado unitario

martes, 20 de septiembre de 2016

Constante de Kaprekar para números de 2,5 y 6 dígitos



Continuando con la entrada del 12 de septiembre, ahora analizaremos como se comporta el proceso de Kaprekar para números de 2, 5 y 6 dígitos.

Vamos a ver que para este número de dígitos el proceso de Kaprekar puede converger a un número en algunos casos y en otros a un bucle (secuencia de números cíclica).

En Mathematica

Generamos nuevamente una función kaprekar[len, num] que realiza el proceso de Kaprekar : donde la variable len nos indica el número de cifras del número y num corresponde al número que le aplicamos el proceso de Kaprekar.

kaprekar[len_Integer, num_Integer] := 
 Module[{lis}, lis = IntegerDigits[num, 10, len]; 
  FromDigits@Sort[lis, Greater] - FromDigits@Sort[lis]]

Números de dos cifras

Realicemos el procedimiento con dos ejemplos: 12 y 13

NestList[kaprekar[2, #] &, 12, 20]

{12, 9, 81, 63, 27, 45, 9, 81, 63, 27, 45, 9, 81, 63, 27, 45, 9, 81, 63, 27, 45}

NestList[kaprekar[2, #] &, 13, 20]

{13, 18, 63, 27, 45, 9, 81, 63, 27, 45, 9, 81, 63, 27, 45, 9, 81, 63, 27, 45, 9}

Se forma un bucle {9, 81, 63, 27, 45}, veamos si para todos

kap21 = {};
kap22 = {};
Do[If[NestWhile[kaprekar[2, #] &, n, # != 9 &, 1, 20] == 9, 
  AppendTo[kap21, n], AppendTo[kap22, n]], {n, 10, 99}]
kap21
kap22

{10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98}

{11, 22, 33, 44, 55, 66, 77, 88, 99}

Se crea una sucesión como bucle 9, 81, 63, 27, 45 excepto obvio los que tienen cifras iguales que dan cero en la primera iteración.

Números de cinco cifras

Aquí existen tres conjuntos de bucles, formados por :

{82962, 75933, 63954, 61974}, {74943, 62964, 71973, 83952} y {53955, 59994}

Veamos que números corresponden a cada uno : kap51 a {82962, 75933, 63954, 61974}, kap52 a {74943, 62964, 71973, 83952}, kap53 a {53955, 59994} y kap54 los que convergen a cero.

kap51 = {};
kap52 = {};
kap53 = {};
kap54 = {};
Do[Switch[NestWhile[kaprekar[5, #] &, n, 
   And[# != 82962, # != 74943, # != 53955] &, 1, 20], 82962, 
  AppendTo[kap51, n], 74943, AppendTo[kap52, n], 53955, AppendTo[kap53, n], 0,
   AppendTo[kap54, n]], {n, 10000, 99999}]
kap51
kap52
kap53
kap54

Obtenemos en : 43770 en kap51, 43219 en kap52, 3002 en kap53 y 9 en kap54,

Length[kap51] + Length[kap52] + Length[kap53] + Length[kap54]

90000

La totalidad de los números de cinco cifras.

Números de seis cifras

Realicemos el procedimiento con un ejemplo: 123456

NestList[kaprekar[6, #] &, 123456, 20]

{123456, 530865, 829962, 771723, 653544, 310887, 873522, 651744, 620874, 851742, 750843, 840852, 860832, 862632, 642654, 420876, 851742, 750843, 840852, 860832, 862632}

Al igual que en los números de dos cifras, no existe Constante de Kaprekar para números de seis cifras, se crea con este ejemplo un bucle formado por los números: 851742, 750843, 840852, 860832, 862632, 642654, 420876.

Veamos con otro ejemplo 458661:

NestList[kaprekar[6, #] &, 458661, 20]

{458661, 720873, 853542, 620874, 851742, 750843, 840852, 860832, 862632, 642654, 420876, 851742, 750843, 840852, 860832, 862632, 642654, 420876, 851742, 750843, 840852}

También aparece la misma cadena de números.

Existen números de seis cifras que son fijos para el proceso de Kaprekar, por ejemplo : 631764 y otros que convergen a ellos como: 631763

NestList[kaprekar[6, #] &, 631764, 10]

{631764, 631764, 631764, 631764, 631764, 631764, 631764, 631764, 631764, 631764, 631764}

NestList[kaprekar[6, #] &, 631763, 10]

{631763, 632664, 431766, 631764, 631764, 631764, 631764, 631764, 631764, 631764, 631764}

Ahora, veamos cuales son los números que no terminan en la sucesión que inicia con 851742

kap61 = {};
kap62 = {};
kap63 = {};
kap64 = {};
Do[Switch[NestWhile[kaprekar[6, #] &, n, # != 851742 &, 1, 20], 851742, 
  AppendTo[kap61, n], 631764, AppendTo[kap62, n], 549945, AppendTo[kap63, n], 
  0, AppendTo[kap64, n]], {n, 100000, 999999}]
kap61
kap62
kap63
kap64

El conjunto kap61 con 841996 números son los que convergen al bucle, el conjunto kap62 con 56180 números son los que convergen a 631764, el conjunto kap63 con 1815 convergen a 549945 y kap64 con 9 números, todas las cifras iguales, son los que convergen a cero.

Los números de kap63 son todas las posibles permutaciones de los conjuntos de dígitos, siguiente :

DeleteDuplicates[Table[Sort@IntegerDigits[kap63[[n]]], {n, Length[kap63]}]]

{{0, 0, 1, 1, 5, 5}, {1, 1, 1, 1, 6, 6}, {1, 1, 2, 2, 6, 6}, 
{1, 1, 3, 3, 6, 6}, {1, 1, 4, 4, 6, 6}, {1, 1, 5, 5, 6, 6}, 
{1, 1, 6, 6, 6, 6}, {0, 0, 2, 2,5, 5}, {2, 2, 2, 2, 7, 7}, 
{2, 2, 3, 3, 7, 7}, {2, 2, 4, 4, 7, 7}, {2, 2, 5, 5, 7, 7}, 
{2, 2, 6, 6, 7, 7}, {2, 2, 7, 7, 7, 7}, {0, 0, 3, 3, 5, 5}, 
{3,3, 3, 3, 8, 8}, {3, 3, 4, 4, 8, 8}, {3, 3, 5, 5, 8, 8}, 
{3, 3, 6, 6, 8, 8}, {3, 3, 7, 7, 8, 8}, {3, 3, 8, 8, 8, 8}, 
{0, 0, 4, 4, 5, 5}, {4, 4, 4, 4,9, 9}, {4, 4, 5, 5, 9, 9}, 
{4, 4, 6, 6, 9, 9}, {4, 4, 7, 7, 9, 9}, {4, 4, 8, 8, 9, 9}, 
{4, 4, 9, 9, 9, 9}, {0, 0, 0, 0, 5, 5}, {0, 0, 5, 5, 5, 5}}

Propuesta

Para los números de 7, 8, 9 y 10 cifras es indispensable disponer de un buen equipo pues los cómputos son largos. Si dispone de varios núcleos en su computador puede utilizar la orden ParallelDo[ ] en lugar de Do[ ].
Pero es un buen ejercicio ver su comportamiento.

Espero sus comentarios!!!

1 comentario:

  1. Probé con papel y lápiz algunos ejemplos y los números de kaprekar de dos dígitos aparecen en los de 4, los de 3 en los de 5, los de 4 en un los de 6 y así sucesivamente. Teniendo una relación entre ellos y quizás se pueda probar que con dígitos pares se llega a un bucle y de dígitos impares se llega a una constante de kaprekar única.

    ResponderBorrar