Os voy a proponer un juego. El mecanismo es el siguiente: escoged cualquier número de 4 cifras que no las tenga todas iguales. Por ejemplo el 5843. Ahora ordenad las cifras de mayor a menor y de menor a mayor, obteniendo así otros dos números de 4 cifras. En este caso 8543 y 3458. Ahora restadlos, y con el número obtenido seguid los mismos pasos. En este ejemplo la cosa quedaría así:
8543-3458=5085
8550-558=7992
9972-2799=7173
7731-1377=6354
6543-3456=3087
8730-378=8352
8532-2358=6174
7641-1467=6174
Si intentáis continuar siempre os quedaréis en el número 6174. Esto ocurre con cualquier número de 4 cifras en un máximo de 7 pasos. Curioso, ¿verdad?.
Pues este número se denomina constante de Kaprekar por su descubridor, el matemático indio Shri Dattatreya Ramachandra Kaprekar. Kaprekar se dedicó principalmente a la teoría de números donde obtuvo ciertos resultados interesantes.
Y uno puede preguntarse: para los números de 4 cifras existe una constante de Kaprekar. ¿Y para el resto?. Pues es sencillo ver que existe una constante de kaprekar para los números de 3 cifras y más complicado ver que también existe para los números de 6, 8, 9 y 10 cifras, pero no para los de 2, 5 ó 7 cifras.
Os animo a que intentéis encontrarla en los casos en los que existe y que nos comentéis vuestros progresos y resultados.
Edito: Error corregido en los cálculos (Gracias Lek)
¿Te ha gustado la entrada? Puedes invitarme a un café, Gauss te lo agradecerá 😉
Sobre convertir el numero 98 a capicúa, buscando información sobre los números capicúa he encontrado esto: http://puemac.matem.unam.mx/matechavos/apolonio/html/2005/200506r.html
Aunque no lo he provado, tal vez os interesa.
Saludos,
Albert
Shhhh….ni los nombres!!!
No mentes a la SGAE por aquí, no vayan a cerrarnos el chiringo. jajajajaja
Luego cerraré el código, lo registraré en la SGAE y os cobraré una pasta, mwuhahahahahaha… forrao… lo estoy viendo xDDDDDD
Sí, será sencillo, pero para quien no sabe es complicado :S.
Respecto a la ampliación, no estaría mal
. Te vas a hacer experto en programas para este tipo de cálculos
.
Bah, es un programa muy sencilluco… nada optimizado y tal, pero cumple su objetivo.
Ahora se puede ampliar para que busque los números que dice caic, jejeje
Joer Lek, te estás pegando un buen curro
. Muchas gracias.
A ver si lo pruebo, porque mejorarlo va a ser imposible ya que no tengo ni idea de programación
.
Saludos
He añadido lo de los ceros y he mejorado alguna cosilla… también he puesto a mano los límites de 18 dígitos y 3076 iteraciones (a partir de ahí, falla, he intentado depurar, pero ni tengo tiempo ni he pasado de 3400 a costa de hundir el rendimiento).
Ahora estaré ocupadillo, así que si alguien quiere seguir con ello, está en la siguiente dirección:
http://www.zhube.com/cecuve/file_details.html?id=2680332381947944
Ah, y he añadido unas pequeñas instrucciones en los scripts
caic son cosas distintas. Al parecer Kaprekar se dedicó casi principalmente a la teoría de números y realizó varias aportaciones. Y entre ellas están estas dos.
Gracias por el post que nos has dedicado en tu blog. Saludos
Caic creo que lo comentas es otro teorema de Kaprekar, que no tiene nada que ver con esto, eso según he leído en la wikipedia son los números de Kaprekar y lo que Diamond posteo es la constante de Kaprekar, parece ser que a Kaprekar le gustaba jugar con los números.
Lo primero, revisaré lo del script que dice neok, porque nosotros los generamos automáticamente y no debería dar ese tipo de problemas :S
Respecto a lo que dice Diamond de los ceros… una cosa a añadir al programa
Mirando por la Wikipedia he encontrado lo siguiente (copipasteo): En matemáticas, un múmero de Kaprekar es aquel entero no negativo tal que, en una base dada, los dígitos de su cuadrado en esa base pueden ser separados en dos números que sumados dan el número original. Por ejemplo, el número 703, su cuadrado es 494209. Si separamos 494209 en dos nuevos números, 494 y 209, obtenemos que 494 + 209 = 703. De igual forma, el número 297 también es un número de Kaprekar, ya que es posible descomponer el cuadrado 297^2 = 88209 en 88 y 209. ¿Qué tiene… Lee más »
Aclaración: Si nos da un número con menos cifras que los números del caso que estamos estudiando le tenemos que poner a la izquierda los ceros necesario hasta llegar a ellas. Ejemplo para 3 cifras con el número 565:
655 – 556 = 099
990 – 099 = 891
981 – 189 = 792
972 – 279 = 693
963 – 369 = 594
954 – 459 = 495
954 – 459 = 495
y llegamos a la constante de Kaprekar.
Saludos y ánimo con el programita
. Luego miraré a ver qué tal va todo
Vale, había un par de fallos en el script.
Uno era por mi Java que está mal instalado y le tengo que meter la ruta entera de dónde está instalado.
El otro era porque has puesto mal los parámetros del script, no son %NUM sino $NUM.
A partir de ahí ya me ha funcionado, y aunque yo no lo habría hecho con números aleatorios, sino metiendole un número yo, va de maravilla.
Por ejemplo, para ejecutar el script, sería:
./script.sh 4 7
./script.sh 6 125 (termina en un ciclo.)
Tienes que pasarle 2 números. La longitud del número y el número de iteraciones (para números más grandes de 4 cifras no he encontrado ninguna constante, acaban todas en ciclo). El número lo saca aleatorio de forma que puedes editar el script y ejecutarlo con valores constantes pero números siempre diferentes. Creo que las instrucciones sí fueron en el correo, ¿no? Ah, y por defectos de java, que el número no tenga más de 18 cifras… que, por cierto, da un ciclo muy bonito: Iteración n: 988776555444322110 – 11223444555677889 = 977553110888644221 Iteración n+1: 988877655443221110- 11122344556778889 = 977755310886442221 Iteración n+2: 988777655443222110… Lee más »
Yo creo que Diamond se debió de equivocar, ya que como tú dices eso no daría la constante, debería ser que tenga todas las cifras diferentes. En cuanto a tu programa, ¿cómo joroñas se ejecuta? Ya que viene un script para Linux y Windows, todo un detalle, pero no se ejecuta nunca bien. He probado: > ./script > ./script num1 > ./script num1 num2 (al ver que en el script pasas dos parametros al programa) Y me peta diciendo: Mete un número perra java.lang.NumberFormatException at java.lang.Integer.parseInt(java.lang.String, int, boolean) (/usr/lib/libgcj.so.6.0.0) at java.lang.Integer.parseInt(java.lang.String) (/usr/lib/libgcj.so.6.0.0) at Pruebas.LeKaprekar.calcula(java.lang.String, java.lang.String) (Unknown Source) at Pruebas.LeKaprekar.main(java.lang.String[]) (Unknown… Lee más »
que no las tenga todas iguales
Cumplo la premisa. Lo que pasa es que, además, el resultado de la resta tiene que dar, al menos, 2 dígitos diferentes.
Para 4 dígitos es lo mismo con 1112 y números así. Pero lo interesante de verdad sería encontrar un número que restándolo diera, por decir, 8889… es decir, que diera el 999 en 2 pasos, en lugar de darlo en uno solo
Lek en esos casos que mencionas de 3 cifras, hay cifras repetidas como es el cinco, por lo tanto estás incumpliendo una premisa para hallar la constante.
Probando acabo de descubrir que en números de 3 cifras es 495, pero números como 556 (565, 655, 545…) dan como resultado 0 al quedar de la primera resta un fantástico 99.
¿Sabéis si esa posibilidad existe para 4 cifras y, es más, si podría darse en un paso que no fuera el primero?
Lo he subido a Zhube, a ver si así os llega:
http://www.zhube.com/cecuve/file_details.html?id=7181017934720708
Advertencia!! Es cutre de cojones y seguro que es la cosa menos óptima de hacerlo, pero bueno. Al menos parece que funciona, aunque sólo con las constantes, no con los ciclos. Como tenéis el código, lo podéis (podemos) completar
mimemist ni mucho menos es invisible. Yo no he dicho nada porque no sé nada del tema, al menos que yo recuerde. De todas formas en cuanto tenga tiempo intentaré buscar algo sobre el tema a ver qué encuentro.
Lek gracias por el interés. Estoy ansioso por probar el programita.
Un saludo
:’( mi comentario es invisible :’(
Pues ya tengo una pequeña versión… se lo envío a neok al correo, que lo he visto rápido en su blog
Ups…cierto, se me coló. Ahora mismo lo edito.
Gracias Lek. Y si haces progresos con el java no dudes en avisarnos
Y viendo la propuesta de Diamond y que estoy un poco parado… voy a ver si me lo curro en Java…
Corrígeme si me equivoco, pero ¿no hay un error en el paso 3 al no ordenar el número de mayor a menor?
Con eso quedaría, a partir de ahí:
3- 9972-2799=7173
4- 7731-1377=6354
5- 6543-3456=3087
6- 8730-378=8352
7- 8532-2358=6174
Un paso menos, que os habíais pasado
Parece que no hay solución para guardarse. Simplemente que me fie demasiado de los sitios donde miré. Parece ser que en esos casos se acaba en un ciclo, no en un número. Pro tanto, según lo veo yo, no podríamos habrar de constante de Kaprekar, sino más bien de ciclo de Kaprekar, si existiera esa denominación. Aquí os dejo un blog donde han probado con números hasta 10 dígitos y parece ser que siempre se acaba en ciclo. Por cierto, para quien sepa programar: supongo que no será demasiado complicado hacer un programa para que haga todos los cálculos y… Lee más »
omalaled, para los de cinco cifras ya había advertido Diamond que no existía, para los de tres cifras sale enseguida.
Para los que tú propones a mi me pasa lo mismo, veremos si Diamond nos quiere dar la solución, o se la guarda para él.
Con 5 números la cosa acababa en serie. Con 6 números no me ha salido. Se me repite las serie del 885420 987641 – 146789 = 840852 885420 – 24588 = 860832 886320 – 23688 = 862632 866322 – 223668 = 642654 665442 – 244566 = 420876 876420 – 24678 = 851742 875421 – 124578 = 750843 875430 – 34578 = 840852 885420 – 24588 = 860832 Con 8 números la cosa acaba también en serie del 87654321: 98764321 – 12346789 = 86417532 87654321 – 12345678 = 75308643 87654330 – 3345678 = 84308652 88654320 – 2345688 = 86308632 88663320 –… Lee más »
Esto me recuerda a otro caso parecido… que, si no me equivoco (ahora mismo no sé dónde tengo los enlaces, ni los apuntes xD) consiste en coger un número cualquiera y sumarle el mísmo número pero “al revés”, por ejemplo: elegimos el número 125, le sumamos 521 (125 al revés), ¿entendido? Bueno, pues repitiendo ese proceso se llega “casi siempre” a un número capicúa. En el ejemplo sería: 125 + 521 = 646 Probando con otros números veremos que “casi seguro” se cumplirá, por ejemplo: 49957 + 75994 = 125951 125951 + 159521 = 285472 285472 + 274582 = 560054… Lee más »
[…] Los números de Harshad fueron definidos por el matemático indio D. R. Kaprekar, del cual ya hemos hablado en Gaussianos. […]
Kaprekar, para cinco dígitos en que no se repitan los cinco. Aunque la teoria dice que para 2, 5 y 7 no hay resultados.
Desde diferentes numeros y con distintos bucles siempre voy a parar al 53.955, 63954 y 74.943. Salvo el numero 98.888 que da 9999 y por lo tanto cero. el 9 seguido de ochos siempre da nueves y por lo tanto ceros.
¿ Porqué Internet Explorer es inseguro y peligroso?.¿ Cómo puedo usar FIREFOX ?
Busca en internet (google, msn, yahoo, …) sobre tus preguntas y obtendrás las respuestas.
[…] casi como por arte de magia, salen siempre como resultado de dichos cálculos. Números como el 6174 (la constante de Kaprekar para números de cuatro cifras) o el 1089. Me encantan estos números, a los que cariñosamente llamo agujeros negros por tragarse […]
pues el profesor nos enseño sobre esto y después nos hizo evaluación y la gane porque investigue aquí y gracias que ayuda aunque algunas partes no eran claras pero listo ya supere todo
[…] También me interesó lo de la constante de Kaprekar, nunca había oído hablar de él ni de su constante, y como el texto que nos ofrecieron en la UnADM no me pareció muy claro y me dejó muchas dudas, busqué algo en la web y encontré: Kaprekar […]
/* Adaptado a Java en NetBeans por Didier Cordoba drcordoba92@Gmail.com */ package kaprekar; import java.util.Scanner; public class Kaprekar { public static void main(String[] args) { int a = 0, b = 0, c = 0, d = 0, res, aux, max1 = 0, max2, max3, max4, max, min, ctr; System.out.println(«Ingrese un numero de 4 digitos diferentes: «); int numero; Scanner entradaScanner = new Scanner(System.in); numero = entradaScanner.nextInt(); System.out.println(«Idatos: » + numero); if (numero > 999 && numero 10) { res = numero % 10; switch (aux) { case 0: { a = res; aux++; break; } case 1: { b… Lee más »
Hola. Para cinco cifras a mi me sale una constante doble, que contienen ambas al 6174: 86174 y 96174, dependiendo del primer numero.
Por ejemplo, para 12345 me sale 86174, para 9241 me sale 96174.
Lo he hecho en Excel para 3, 4, 5 y 6 cifras. Si alguien lo quiere, se lo envío.
El de 3 cifras es un antiquísimo juego de magia matemática: el 1089
Para 6 cifras hay 2 constantes, es decir, algunos números convergen hacia un número y otros hacia el otro (549945 y 631764) Para 7 cifras tampoco hay ninguna. Para 8 cifras hay dos constantes (63317664 y 97508421) Para 9 cifras también hay dos constantes (554999445 y 864197532)