C語言中楊氏矩陣與楊輝三角的實現方法
一、楊氏矩陣
楊氏矩陣
1.楊氏矩陣的概念
在數學中,楊表(英語:Young tableau),又稱楊氏矩陣。是對組合表示理論和舒伯特演算很有用的工具。它提供瞭一種方便的方式來描述對稱和一般線性群的群表示,並研究它們的性質。楊表是劍橋大學數學傢 Alfred Young 在1900年推提出。然後,它被弗羅貝尼烏斯應用對稱群的研究中。他們的理論由許多數學傢進一步發展,包括PercyMacMahon、W. V. D. Hodge、G. de B. Robinson、吉安-卡洛·羅塔、Alain Lascoux、Marcel-Paul Schützenberger 和 Richard P. Stanley 等。
2.楊氏矩陣的圖解
3.楊氏矩陣的實現
在一個 n * m 的二維數組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個高效的函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否含有該整數。
代碼如下:
bool findNumberIn2DArray(int** matrix, int matrixSize, int* matrixColSize, int target) { if(matrixSize==0||*matrixColSize==0) { return false; } int row=0; int col=*matrixColSize-1; while(row<matrixSize&&col>=0) { if(matrix[row][col]>target) { col--; } else if(matrix[row][col]<target) { row++; } else if(matrix[row][col]==target) { return true; } } return false; }
二、楊輝三角
楊輝三角
1.楊輝三角的概念
楊輝三角,是二項式系數在三角形中的一種幾何排列。在歐洲,這個表叫做帕斯卡三角形。帕斯卡(1623—-1662)是在1654年發現這一規律的,比楊輝要遲393年,比賈憲遲600年。楊輝三角是中國古代數學的傑出研究成果之一,它把二項式系數圖形化,把組合數內在的一些代數性質直觀地從圖形中體現出來,是一種離散型的數與形的結合。
2.楊輝三角的圖解
3.楊輝三角的實現
給定一個非負整數 numRows,生成楊輝三角的前 numRows 行。在楊輝三角中,每個數是它左上方和右上方的數的和。
代碼如下:
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int** generate(int numRows, int* returnSize, int** returnColumnSizes) { int row = 0; int col = 0; //ret是一個指針,它指向的是由指針構成的數組,指針指向對應的楊輝三角的一行數;ret也是二維數組 int** ret = (int**)malloc(sizeof(int*)*numRows); //指定要返回的行數 *returnSize = numRows; //分配每一列的具體空間 *returnColumnSizes = malloc(sizeof(int)*numRows); for (row = 0; row < numRows; row++) { /* 分配楊輝三角中每一行的具體空間 */ ret[row] = malloc(sizeof(int)* (row + 1)); // 分配楊輝三角中每一行的列數 (*returnColumnSizes)[row] = row + 1; ret[row][row] = ret[row][0] = 1; for (col = 1; col < row; col++) { ret[row][col] = ret[row - 1][col - 1] + ret[row - 1][col]; } } return ret; } int main() { return 0; }
總結
以上就是今天要講的內容,本文僅僅簡單介紹瞭數學中兩個成就由來及代碼實現,這類題目也很常見,我們務必掌握。
到此這篇關於C語言中楊氏矩陣與楊輝三角的實現方法的文章就介紹到這瞭,更多相關C語言楊氏矩陣與楊輝三角內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- c語言如何實現兩數之和
- C語言線性代數算法實現矩陣示例代碼
- C語言中#define定義的標識符和宏實例代碼
- C++實現LeetCode(74.搜索一個二維矩陣)
- C++實現LeetCode(118.楊輝三角)