Coeficiente fibonomial
En matemáticas, los coeficientes fibonomiales o coeficientes binomiales de Fibonacci se definen como
donde n y k son números enteros no negativos, 0 ≤ k ≤ n, F j es el j-ésimo número de Fibonacci y n! F es el fibonorial enésimo , donde 0! F , siendo el producto vacío, se evalúa como 1.
Los coeficientes fibonomiales son todos números enteros. Algunos valores especiales son:
Triángulo fibonomial
Los coeficientes fibonomiales son similares a los coeficientes binomiales y se pueden mostrar en un triángulo similar al triángulo de Pascal. Las primeras ocho filas se muestran a continuación.
La relación de recurrencia para el triángulo fibonomial:
dado un número entero positivo n . La tarea es imprimir el triángulo Fibonomial de altura n (o n + 1 filas).
Ejemplos:
Input : n = 6 Output : 1 1 1 1 1 1 1 2 2 1 1 3 6 3 1 1 5 15 15 5 1 1 8 40 60 40 8 1 Input : n = 5 Output : 1 1 1 1 1 1 1 2 2 1 1 3 6 3 1 1 5 15 15 5 1
A continuación se muestra la implementación de la impresión Triángulo Fibonomial de altura n:
C++
// CPP Program to print Fibonomial Triangle of height n. #include<bits/stdc++.h> #define N 6 using namespace std; // Function to produce Fibonacci Series. void fib(int f[], int n) { int i; /* 0th and 1st number of the series are 0 and 1*/ f[0] = 0; f[1] = 1; for (i = 2; i <= n; i++) /* Add the previous 2 numbers in the series and store it */ f[i] = f[i-1] + f[i-2]; } // Function to produce fibonomial coefficient void fibcoef(int fc[][N+1], int f[], int n) { for (int i = 0; i <= n; i++) fc[i][0] = 1; for (int i = 1; i <= n; i++) { for (int j = 1; j <= i; j++) { int k = j; while(k--) fc[i][j] *= f[k]; k = 1; while((j+1)!=k) fc[i][j] /= f[k++]; } } } // Function to print Fibonomial Triangle. void printFibonomialTriangle(int n) { int f[N+1] = { 0 }; // Finding the fibonacci series. fib(f, n); // to store triangle value. int dp[N+1][N+1] = { 0 }; // initialising the 0th element of each row // and diagonal element equal to 0. for (int i = 0; i <= n; i++) dp[i][0] = dp[i][i] = 1; // for each row. for (int i = 1; i <= n; i++) { // for each column. for (int j = 1; j < i; j++) // finding each element using recurrence // relation. dp[i][j] = f[i-j+1]*dp[i-1][j-1] + f[j-1]*dp[i-1][j]; } // printing the Fibonomial Triangle. for (int i = 0; i <= n; i++) { for (int j = 0; j <= i; j++) cout << dp[i][j] << " "; cout << endl; } } // Driven Program int main() { int n = 6; printFibonomialTriangle(n); return 0; }
Java
// Java Program to print Fibonomial // Triangle of height n. class GFG { static final int N=6; // Function to produce Fibonacci Series. static void fib(int f[], int n) { int i; /* 0th and 1st number of the series are 0 and 1*/ f[0] = 0; f[1] = 1; for (i = 2; i <= n; i++) /* Add the previous 2 numbers in the series and store it */ f[i] = f[i-1] + f[i-2]; } // Function to produce fibonomial coefficient static void fibcoef(int fc[][], int f[], int n) { for (int i = 0; i <= n; i++) fc[i][0] = 1; for (int i = 1; i <= n; i++) { for (int j = 1; j <= i; j++) { int k = j; while(k > 0) { k--; fc[i][j] *= f[k]; } k = 1; while((j + 1) != k) fc[i][j] /= f[k++]; } } } // Function to print Fibonomial Triangle. static void printFibonomialTriangle(int n) { int f[] = new int[N+1]; // Finding the fibonacci series. fib(f, n); // to store triangle value. int dp[][] = new int[N + 1][N + 1]; // initialising the 0th element of each row // and diagonal element equal to 0. for (int i = 0; i <= n; i++) dp[i][0] = dp[i][i] = 1; // for each row. for (int i = 1; i <= n; i++) { // for each column. for (int j = 1; j < i; j++) // finding each element using recurrence // relation. dp[i][j] = f[i - j + 1] * dp[i - 1][j - 1] + f[j-1]*dp[i-1][j]; } // printing the Fibonomial Triangle. for (int i = 0; i <= n; i++) { for (int j = 0; j <= i; j++) System.out.print(dp[i][j] + " "); System.out.println(); } } // Driver code public static void main (String[] args) { int n = 6; printFibonomialTriangle(n); } } // This code is contributed by Anant Agarwal.
Python3
# Python3 Program to print Fibonomial # Triangle of height n. N = 6; # Function to produce Fibonacci Series. def fib(f, n): # 0th and 1st number of the # series are 0 and 1 f[0] = 0; f[1] = 1; for i in range(2, n + 1): # Add the previous 2 numbers in # the series and store it f[i] = f[i - 1] + f[i - 2]; # Function to produce fibonomial # coefficient def fibcoef(fc, f, n): for i in range(n + 1): fc[i][0] = 1; for i in range(1, n + 1): for j in range(1, i + 1): k = j; while(k > 0): k -= 1; fc[i][j] *= f[k]; k = 1; while((j + 1) != k): fc[i][j] /= f[k]; k += 1; # Function to print Fibonomial Triangle. def printFibonomialTriangle(n): f = [0] * (N + 1); # Finding the fibonacci series. fib(f, n); # to store triangle value. dp = [[0 for x in range(N + 1)] for y in range(N + 1)]; # initialising the 0th element of each # row and diagonal element equal to 0. for i in range(n + 1): dp[i][0] = 1; dp[i][i] = 1; # for each row. for i in range(1, n + 1): # for each column. for j in range(1, i): # finding each element using # recurrence relation. dp[i][j] = (f[i - j + 1] * dp[i - 1][j - 1] + f[j - 1] * dp[i - 1][j]); # printing the Fibonomial Triangle. for i in range(n + 1): for j in range(i + 1): print(dp[i][j], end = " "); print(""); # Driver Code n = 6; printFibonomialTriangle(n); # This code is contributed by mits
C#
// C# Program to print Fibonomial // Triangle of height n. using System; class GFG { static int N = 6; // Function to produce Fibonacci Series. static void fib(int []f, int n) { int i; /* 0th and 1st number of the series are 0 and 1*/ f[0] = 0; f[1] = 1; for (i = 2; i <= n; i++) /* Add the previous 2 numbers in the series and store it */ f[i] = f[i - 1] + f[i - 2]; } // Function to produce fibonomial coefficient static void fibcoef(int [,]fc, int []f, int n) { for (int i = 0; i <= n; i++) fc[i,0] = 1; for (int i = 1; i <= n; i++) { for (int j = 1; j <= i; j++) { int k = j; while(k > 0) { k--; fc[i, j] *= f[k]; } k = 1; while((j + 1) != k) fc[i, j] /= f[k++]; } } } // Function to print Fibonomial Triangle. static void printFibonomialTriangle(int n) { int []f = new int[N + 1]; // Finding the fibonacci series. fib(f, n); // to store triangle value. int [,]dp = new int[N + 1, N + 1]; // initialising the 0th element of each row // and diagonal element equal to 0. for (int i = 0; i <= n; i++) dp[i, 0] = dp[i, i] = 1; // for each row. for (int i = 1; i <= n; i++) { // for each column. for (int j = 1; j < i; j++) // finding each element using recurrence // relation. dp[i,j] = f[i - j + 1] * dp[i - 1,j - 1] + f[j - 1] * dp[i - 1, j]; } // printing the Fibonomial Triangle. for (int i = 0; i <= n; i++) { for (int j = 0; j <= i; j++) Console.Write(dp[i,j] + " "); Console.WriteLine(); } } // Driver code public static void Main () { int n = 6; printFibonomialTriangle(n); } } // This code is contributed by Vt_m.
PHP
<?php // PHP Program to print Fibonomial Triangle of height n. $N=6; // Function to produce Fibonacci Series. function fib(&$f, $n) { /* 0th and 1st number of the series are 0 and 1*/ $f[0] = 0; $f[1] = 1; for ($i = 2; $i <= $n; $i++) /* Add the previous 2 numbers in the series and store it */ $f[$i] = $f[$i-1] + $f[$i-2]; } // Function to produce fibonomial coefficient function fibcoef($fc, $f, $n) { for ($i = 0; $i <= $n; $i++) $fc[$i][0] = 1; for ($i = 1; $i <= $n; $i++) { for ($j = 1; $j <= $i; $j++) { $k = $j; while($k--) $fc[$i][$j] *= $f[$k]; $k = 1; while(($j+1)!=$k) $fc[$i][$j] /= $f[$k++]; } } } // Function to print Fibonomial Triangle. function printFibonomialTriangle($n) { global $N; $f=array_fill(0,$N+1,0); // Finding the fibonacci series. fib($f, $n); // to store triangle value. $dp=array_fill(0,$N+1,array_fill(0,$N+1,0)); // initialising the 0th element of each row // and diagonal element equal to 0. for ($i = 0; $i <= $n; $i++) $dp[$i][0] = $dp[$i][$i] = 1; // for each row. for ($i = 1; $i <= $n; $i++) { // for each column. for ($j = 1; $j < $i; $j++) // finding each element using recurrence // relation. $dp[$i][$j] = $f[$i-$j+1]*$dp[$i-1][$j-1] + $f[$j-1]*$dp[$i-1][$j]; } // printing the Fibonomial Triangle. for ($i = 0; $i <= $n; $i++) { for ($j = 0; $j <= $i; $j++) echo $dp[$i][$j]." "; echo "\n"; } } // Driven Program $n = 6; printFibonomialTriangle($n); // This code is contributed by mits ?>
Javascript
<script> // Javascript Program to print Fibonomial // Triangle of height n. var N = 6; // Function to produce Fibonacci Series. function fib(f , n) { var i; /* * 0th and 1st number of the series are 0 and 1 */ f[0] = 0; f[1] = 1; for (i = 2; i <= n; i++) /* * Add the previous 2 numbers in the series and store it */ f[i] = f[i - 1] + f[i - 2]; } // Function to produce fibonomial coefficient function fibcoef(fc , f , n) { for (i = 0; i <= n; i++) fc[i][0] = 1; for (i = 1; i <= n; i++) { for (j = 1; j <= i; j++) { var k = j; while (k > 0) { k--; fc[i][j] *= f[k]; } k = 1; while ((j + 1) != k) fc[i][j] /= f[k++]; } } } // Function to print Fibonomial Triangle. function printFibonomialTriangle(n) { var f = Array(N + 1).fill(0); // Finding the fibonacci series. fib(f, n); // to store triangle value. var dp = Array(N + 1); for(var i =0;i<N+1;i++) dp[i] = Array(N + 1).fill(0); // initialising the 0th element of each row // and diagonal element equal to 0. for (i = 0; i <= n; i++) dp[i][0] = dp[i][i] = 1; // for each row. for (i = 1; i <= n; i++) { // for each column. for (j = 1; j < i; j++) // finding each element using recurrence // relation. dp[i][j] = f[i - j + 1] * dp[i - 1][j - 1] + f[j - 1] * dp[i - 1][j]; } // printing the Fibonomial Triangle. for (i = 0; i <= n; i++) { for (j = 0; j <= i; j++) document.write(dp[i][j] + " "); document.write("<br/>"); } } // Driver code var n = 6; printFibonomialTriangle(n); // This code contributed by Rajput-Ji </script>
Producción:
1 1 1 1 1 1 1 2 2 1 1 3 6 3 1 1 5 15 15 5 1 1 8 40 60 40 8 1