Curiosidades de la simetría numérica

¿Quien dijo que las matemáticas eran aburridas? Son lo suficientemente complejas como para estar en "casi todos" los rincones del Universo, pero también tienen algunas fórmulas sencillas que dan como resultado unas series numéricas que forman patrones simétricos, capicúas, progresiones geométricas y un montón de cosas más. A continuación dejo unos ejemplos matemáticos y su desarrollo en C para que lo pruebe el que quiera:

Ejemplo 1
#include <stdio.h>

int concat();

int main(void) {
	int num = 1;

	for (int i = 1; i <= 9; i++) {
		printf("%9d * 8 + %d = %d\n", num, i, num*8+i);
		num = concat(num, i+1);
	}
}

int concat(int x, int y) {
	int temp = y;
	while (y != 0) {
		x *= 10;
		y /= 10;
	}
	return x + temp;
}

El resultado de la ejecución de este primer ejemplo será la siguiente:

        1 x 8 + 1 = 9
       12 x 8 + 2 = 98
      123 x 8 + 3 = 987
     1234 x 8 + 4 = 9876
    12345 x 8 + 5 = 98765
   123456 x 8 + 6 = 987654
  1234567 x 8 + 7 = 9876543
 12345678 x 8 + 8 = 98765432
123456789 x 8 + 9 = 987654321
Ejemplo 2
#include <stdio.h>

int concat();

int main(void) {
	int num = 1;

	for (int i = 1; i <= 9; i++) {
		printf("%9d * 9 + %2d = %d\n", num, i+1, num*9+i+1);
		num = concat(num, i + 1);
	}
}

int concat(int x, int y) {
	int temp = y;
	while (y != 0) {
		x *= 10;
		y /= 10;
	}
	return x + temp;
}

El resultado de la ejecución de este segundo ejemplo será la siguiente:

        1 x 9 +  2 = 11
       12 x 9 +  3 = 111
      123 x 9 +  4 = 1111
     1234 x 9 +  5 = 11111
    12345 x 9 +  6 = 111111
   123456 x 9 +  7 = 1111111
  1234567 x 9 +  8 = 11111111
 12345678 x 9 +  9 = 111111111
123456789 x 9 + 10 = 1111111111
Ejemplo 3
#include <stdio.h>
#include <math.h>

void f(int x) {
	printf("f(%2d) = ((10^%2d)-1)/9 = %.0f\n", x, x, (pow(10, x) - 1) / 9);
}

int main(int argc, char **argv) {
	int x;
	printf("f(x) = ((10^x)-1)/9\n\n");
	for (x = 1; x <= 20; x++) f(x);
	return 0;
}

El resultado de la ejecución de este tercer ejemplo será la siguiente:

f(x) = ((10^x)-1)/9

f( 1) = ((10^ 1) - 1) / 9 = 1
f( 2) = ((10^ 2) - 1) / 9 = 11
f( 3) = ((10^ 3) - 1) / 9 = 111
f( 4) = ((10^ 4) - 1) / 9 = 1111
f( 5) = ((10^ 5) - 1) / 9 = 11111
f( 6) = ((10^ 6) - 1) / 9 = 111111
f( 7) = ((10^ 7) - 1) / 9 = 1111111
f( 8) = ((10^ 8) - 1) / 9 = 11111111
f( 9) = ((10^ 9) - 1) / 9 = 111111111
f(10) = ((10^10) - 1) / 9 = 1111111111
f(11) = ((10^11) - 1) / 9 = 11111111111
f(12) = ((10^12) - 1) / 9 = 111111111111
f(13) = ((10^13) - 1) / 9 = 1111111111111
f(14) = ((10^14) - 1) / 9 = 11111111111111
f(15) = ((10^15) - 1) / 9 = 111111111111111
f(16) = ((10^16) - 1) / 9 = 1111111111111111
f(17) = ((10^17) - 1) / 9 = 11111111111111111
f(18) = ((10^18) - 1) / 9 = 111111111111111111
f(19) = ((10^19) - 1) / 9 = 1111111111111111111
f(20) = ((10^20) - 1) / 9 = 11111111111111111111
Ejemplo 4
#include <stdio.h>

int concat();

int main(void) {
	int num = 9;

	for (int i = 9; i >= 2; i--) {
		printf("%8d * 9 + %d = %d\n", num, i-2, num*9+i-2);
		num = concat(num, i-1);
	}
}

int concat(int x, int y) {
	int temp = y;
	while (y != 0) {
		x *= 10;
		y /= 10;
	}
	return x + temp;
}

El resultado de la ejecución de este tercer ejemplo será la siguiente:

       9 x 9 + 7 = 88
      98 x 9 + 6 = 888
     987 x 9 + 5 = 8888
    9876 x 9 + 4 = 88888
   98765 x 9 + 3 = 888888
  987654 x 9 + 2 = 8888888
 9876543 x 9 + 1 = 88888888
98765432 x 9 + 0 = 888888888
Ejemplo 5
#include <stdio.h>

int main(void) {
	double num = 1;

	for (int i = 1; i <= 9; i++) {
		printf("%9.0f * %-9.0f = %0.f\n", num, num, num*num);
		num = (num*10)+1;
	}
}

El resultado de la ejecución de este cuarto ejemplo será la siguiente:

        1 x 1         = 1
       11 x 11        = 121
      111 x 111       = 12321
     1111 x 1111      = 1234321
    11111 x 11111     = 123454321
   111111 x 111111    = 12345654321
  1111111 x 1111111   = 1234567654321
 11111111 x 11111111  = 123456787654321
111111111 x 111111111 = 12345678987654321

Sorprendente, ¿verdad?

Un comentario en “Curiosidades de la simetría numérica”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.