C語(yǔ)言中楊氏矩陣與楊輝三角的實(shí)現(xiàn)方法
一、楊氏矩陣
1.楊氏矩陣的概念
在數(shù)學(xué)中,楊表(英語(yǔ):Young tableau),又稱楊氏矩陣。是對(duì)組合表示理論和舒伯特演算很有用的工具。它提供了一種方便的方式來(lái)描述對(duì)稱和一般線性群的群表示,并研究它們的性質(zhì)。楊表是劍橋大學(xué)數(shù)學(xué)家 Alfred Young 在1900年推提出。然后,它被弗羅貝尼烏斯應(yīng)用對(duì)稱群的研究中。他們的理論由許多數(shù)學(xué)家進(jìn)一步發(fā)展,包括PercyMacMahon、W. V. D. Hodge、G. de B. Robinson、吉安-卡洛·羅塔、Alain Lascoux、Marcel-Paul Schützenberger 和 Richard P. Stanley 等。
2.楊氏矩陣的圖解
3.楊氏矩陣的實(shí)現(xiàn)
在一個(gè) n * m 的二維數(shù)組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請(qǐng)完成一個(gè)高效的函數(shù),輸入這樣的一個(gè)二維數(shù)組和一個(gè)整數(shù),判斷數(shù)組中是否含有該整數(shù)。
代碼如下:
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.楊輝三角的概念
楊輝三角,是二項(xiàng)式系數(shù)在三角形中的一種幾何排列。在歐洲,這個(gè)表叫做帕斯卡三角形。帕斯卡(1623----1662)是在1654年發(fā)現(xiàn)這一規(guī)律的,比楊輝要遲393年,比賈憲遲600年。楊輝三角是中國(guó)古代數(shù)學(xué)的杰出研究成果之一,它把二項(xiàng)式系數(shù)圖形化,把組合數(shù)內(nèi)在的一些代數(shù)性質(zhì)直觀地從圖形中體現(xiàn)出來(lái),是一種離散型的數(shù)與形的結(jié)合。
2.楊輝三角的圖解
3.楊輝三角的實(shí)現(xiàn)
給定一個(gè)非負(fù)整數(shù) numRows,生成楊輝三角的前 numRows 行。在楊輝三角中,每個(gè)數(shù)是它左上方和右上方的數(shù)的和。
代碼如下:
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int** generate(int numRows, int* returnSize, int** returnColumnSizes) { int row = 0; int col = 0; //ret是一個(gè)指針,它指向的是由指針構(gòu)成的數(shù)組,指針指向?qū)?yīng)的楊輝三角的一行數(shù);ret也是二維數(shù)組 int** ret = (int**)malloc(sizeof(int*)*numRows); //指定要返回的行數(shù) *returnSize = numRows; //分配每一列的具體空間 *returnColumnSizes = malloc(sizeof(int)*numRows); for (row = 0; row < numRows; row++) { /* 分配楊輝三角中每一行的具體空間 */ ret[row] = malloc(sizeof(int)* (row + 1)); // 分配楊輝三角中每一行的列數(shù) (*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; }
總結(jié)
以上就是今天要講的內(nèi)容,本文僅僅簡(jiǎn)單介紹了數(shù)學(xué)中兩個(gè)成就由來(lái)及代碼實(shí)現(xiàn),這類題目也很常見(jiàn),我們務(wù)必掌握。
到此這篇關(guān)于C語(yǔ)言中楊氏矩陣與楊輝三角的實(shí)現(xiàn)方法的文章就介紹到這了,更多相關(guān)C語(yǔ)言楊氏矩陣與楊輝三角內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C語(yǔ)言+win32api寫(xiě)窗體應(yīng)用程序
本文給大家分享的是個(gè)人使用純C語(yǔ)言結(jié)合win32api制作窗體應(yīng)用程序的代碼,非常的簡(jiǎn)單,給需要的小伙伴參考下。2016-02-02Qt實(shí)現(xiàn)定時(shí)器的兩種方法分享
這篇文章主要為大家詳細(xì)介紹了Qt中實(shí)現(xiàn)定時(shí)器的兩種不同方法,文中的示例代碼講解詳細(xì),對(duì)我們了解Qt有一定的幫助,感興趣的可以跟隨小編一起學(xué)習(xí)一下2022-11-11C++ 手把手教你實(shí)現(xiàn)可變長(zhǎng)的數(shù)組實(shí)現(xiàn)
這篇文章主要介紹了C++ 手把手教你實(shí)現(xiàn)可變長(zhǎng)的數(shù)組實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12Windows 環(huán)境下使用 Qt 連接 MySQL
這篇文章主要介紹了Windows 環(huán)境下使用 Qt 連接 MySQL的相關(guān)資料,需要的朋友可以參考下2017-07-07詳解C++ 編寫(xiě)String 的構(gòu)造函數(shù)、拷貝構(gòu)造函數(shù)、析構(gòu)函數(shù)和賦值函數(shù)
這篇文章主要介紹了詳解C++ 編寫(xiě)String 的構(gòu)造函數(shù)、拷貝構(gòu)造函數(shù)、析構(gòu)函數(shù)和賦值函數(shù)的相關(guān)資料,這里提供實(shí)例幫助大家理解掌握這部分內(nèi)容,需要的朋友可以參考下2017-08-08C++定時(shí)器Timer在項(xiàng)目中的使用方法
這篇文章主要給大家介紹了關(guān)于C++定時(shí)器Timer在項(xiàng)目中的基本使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用C++具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05C語(yǔ)言輪轉(zhuǎn)數(shù)組的三種實(shí)現(xiàn)
輪轉(zhuǎn)數(shù)組是一種將數(shù)組元素循環(huán)移動(dòng)的處理方式,它通常用于解決一些需要對(duì)固定長(zhǎng)度的數(shù)組進(jìn)行循環(huán)滾動(dòng)處理的問(wèn)題,本文就介紹了C語(yǔ)言輪轉(zhuǎn)數(shù)組的三種實(shí)現(xiàn),感興趣的可以了解一下2023-08-08