Los triángulos rectos de lados enteros encajarán en un cuadrado:
pero ¿qué hay de los triángulos no rectos de lados enteros? Aquí hay un error: no encajan de esta manera:
¿Es posible?
Los triángulos rectos de lados enteros encajarán en un cuadrado:
pero ¿qué hay de los triángulos no rectos de lados enteros? Aquí hay un error: no encajan de esta manera:
¿Es posible?
Acabo de usar un programa de computadora electrónico escrito apresuradamente:
// gcc british_flag.c -o british_flag.exe -std=c99 -Wall -O3
#include <stdio.h>
static int square(int x);
static int is_square(int x, int* square_root);
#define MAX 50
int main() {
int z11, z12, z21, z22;
int solution_exists[MAX][MAX];
for (int x = 0; x < MAX; x++) {
for (int y = 0; y < MAX; y++) {
solution_exists[x][y] = 0;
}
}
for (int x = 1; x < MAX; x++)
for (int y = 1; y < MAX; y++)
for (int x2 = 1; x2 < x; x2++)
for (int y2 = 1; y2 < y; y2++) {
int x1 = x - x2;
int y1 = y - y2;
if (is_square(x1*x1 + y1*y1, &z11)
&& is_square(x2*x2 + y1*y1, &z21)
&& is_square(x1*x1 + y2*y2, &z12)
&& is_square(x2*x2 + y2*y2, &z22)
) {
if ( square(x) == square(z11) + square(z21) ) continue;
if ( square(x) == square(z12) + square(z22) ) continue;
if ( square(y) == square(z11) + square(z12) ) continue;
if ( square(y) == square(z21) + square(z22) ) continue;
printf("(%d, %d) %d %d by %d %d\n", x, y, x1, x2, y1, y2);
solution_exists[x][y] = 1;
}
}
return 0;
}
static int square(int x) {
return x*x;
}
static int is_square(int x, int* square_root) {
int min = 0;
int max = x;
while(1) {
*square_root = (min + max)/2;
if (*square_root * *square_root == x) return 1;
if (min >= max) return 0;
if (*square_root * *square_root < x) {
min = *square_root + 1;
}
if (*square_root * *square_root > x) {
max = *square_root - 1;
}
}
}
No es muy perspicaz, pero sospecho (y estoy seguro de que alguien puede demostrarlo) que no existe una solución que solo esté formada por 4 reuniones de triángulos en un solo punto en el medio. También deja atrás la pregunta de cuál es el menor número posible de triángulos.
I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.