您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)怎么在C語言中實(shí)現(xiàn)一個(gè)楊氏矩陣與楊輝三角,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
C語言是一門面向過程的、抽象化的通用程序設(shè)計(jì)語言,廣泛應(yīng)用于底層開發(fā),使用C語言可以以簡易的方式編譯、處理低級(jí)存儲(chǔ)器。
楊氏矩陣
1.楊氏矩陣的概念
在數(shù)學(xué)中,楊表(英語:Young tableau),又稱楊氏矩陣。是對(duì)組合表示理論和舒伯特演算很有用的工具。它提供了一種方便的方式來描述對(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年。楊輝三角是中國古代數(shù)學(xué)的杰出研究成果之一,它把二項(xiàng)式系數(shù)圖形化,把組合數(shù)內(nèi)在的一些代數(shù)性質(zhì)直觀地從圖形中體現(xiàn)出來,是一種離散型的數(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; }
關(guān)于怎么在C語言中實(shí)現(xiàn)一個(gè)楊氏矩陣與楊輝三角就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。