北宋人贾宪约1050年首先使用"贾宪三角"进行高次开方运算。
杨辉,字谦光,南宋时期杭州人。在他1261年所著的《详解九章算法》一书中,辑录了如上所示的三角形数表,称之为"开方作法本源"图,并说明此表引自11世纪前半贾宪的《释锁算术》,并绘画了"古法七乘方图"。故此,杨辉三角又被称为"贾宪三角"。
元朝数学家朱世杰在《四元玉鉴》(1303年)扩充了"贾宪三角"成"古法七乘方图"。
意大利人称之为"塔塔利亚三角形"(Triangolo di Tartaglia)以纪念在16世纪发现一元三次方程解的塔塔利亚。
在欧洲直到1623年以后,法国数学家帕斯卡在13岁时发现了"帕斯卡三角"。
布莱士帕斯卡的著作Traité du triangle arithmétique(1655年)介绍了这个三角形。帕斯卡搜集了几个关于它的结果,并以此解决一些概率论上的问题,影响面广泛,Pierre Raymond de Montmort(1708年)和亚伯拉罕?棣?美弗(1730年)都用帕斯卡来称呼这个三角形。
近年来国外也逐渐承认这项成果属于中国,所以有些书上称这是"中国三角形"(Chinese triangle)
历史上曾经独立绘制过这种图表的数学家
- 贾宪 中国北宋 11世纪 《释锁算术》
- 杨辉 中国南宋1261《详解九章算法》记载之功
- 朱世杰 中国元代 1299《四元玉鉴》级数求和公式
- 阿尔 卡西 阿拉伯 1427《算术的钥匙》
- 阿皮亚纳斯德国 1527
- 施蒂费尔 德国 1544《综合算术》二项式展开式系数
- 薛贝尔 法国 1545
- 帕斯卡 法国 1654《论算术三角形》
C语言版本(算法思路可参照搜搜百科):
#include "stdio.h" #include "conio.h" #define N 12 long Pascal(int n, int r) { int p = 1; for(int i =1 ; i <= r ; i++) { p = p * (n-i+1)/i; } return p; } void paint() { for(int i = 0; i < N ; i ++) { //先打印空格 for(int j = 0; j < N-i; j ++ ) printf(" "); for( int j = 0; j <= i ; j ++) { printf("%4d",Pascal(i,j)); } printf("\n"); } } int main() { paint(); getch(); }
参考博客:http://blog.csdn.net/yxstars/article/details/8664955