El Triángulo de Floyd, llamado así en honor al informático estadounidense Robert Floyd (1936-2001), es un triángulo rectángulo formado con números naturales. Para crear un triángulo de Floyd, se comienza con un 1 en la esquina superior izquierda y se continúa escribiendo la secuencia de los números naturales de manera que cada línea contenga un número más que la anterior:
<tr bgcolor=#F8F8F8 align=center><td>1 <tr bgcolor=#F8F8F8 align=center><td>2<td>3 <tr bgcolor=#F8F8F8 align=center><td>4<td>5<td>6 <tr bgcolor=#F8F8F8 align=center><td>7<td>8<td>9<td>10 <tr bgcolor=#F8F8F8 align=center><td>11<td>12<td>13<td>14<td>15
Uno de los ejercicios más comunes en los cursos de introducción a la programación de ordenadores consiste en escribir un pequeño programa que produzca este triángulo... El triángulo de Floyd tiene varias propiedades matemáticas interesantes. Los números del cateto de la parte izquierda forman la secuencia de los números poligonales centrales, mientras que los de la hipotenusa nos dan el conjunto de los números triangulares. La suma de los números de la línea n equivale a n(n2 + 1)/2 .
Algoritmo computacional
En Python es: def TrianguloFloyd(n): k=0 lista = [x+1 for x in range(int((n**2+n)/2))] aux = '' for i in range(n): for l in lista[k:k+i+1]: if i>3: aux+=str(l)+' ' else: aux+=str(l)+' ' print(aux) aux='' k+=i+1
En PSeInt (estricto) es: Definir TAMANIO Como Entero; TAMANIO <- 10; Definir i, j, t Como Enteros; t <- 1; Escribir "Triángulo Floyd"; Para i <- 1 Hasta TAMANIO Con Paso 1 Hacer Para j <- t Hasta t + i - 1 Con Paso 1 Hacer Escribir j, " " Sin Bajar; FinPara Escribir ""; t <- t + i; FinPara FinProceso
En C es: #include<stdio.h> #include<conio.h>
int main() { int i,j,t; t = 1; int tamanio = 10; printf("Triangulo Floyd\n"); for (i=1;i<=tamanio;i++) { for (j=t;j<=t+i-1;j++) { printf("%i ",j);
printf("\n"); t = t+i; } getch(); return 0; }
En Java es: public class TrianguloFloyd { public static void main(String[] args) { final int TAMANO = 10; int t = 1; System.out.println("\nTriángulo Floyd\n"); for (int i = 1; i <= TAMANO; ++i) { for (int j = t; j <= t + i - 1; ++j) { System.out.print(j + "\t");
System.out.println("\n"); t += i;
En MATLAB es: fprintf('\n Triángulo de Floyd: \n\n'); numElementos = 10; M = zeros(numElementos); numeroReal = 1; for i = 1 : numElementos for j = 1 : i M(i,j) = numeroReal; numeroReal = numeroReal + 1; end end disp(M)
Véase también Triángulo de Pascal
Referencias
Categoría:Programación Categoría:Triángulos de números Floyd, triángulo