百度简介

杨辉 (南宋著名数学家) 编辑

杨辉,字谦光,汉族,钱塘(今杭州)人,南宋杰出的数学家和数学教育家,生平履历不详。曾担任过南宋地方行政官员,为政清廉,足迹遍及苏杭一带。
他在总结民间乘除捷算法、“垛积术”、纵横图以及数学教育方面,均做出了重大的贡献。他是世界上第一个排出丰富的纵横图和讨论其构成规律的数学家。著有数学著作5种21卷,即《详解九章算法》12卷(1261),《日用算法》2卷(1262),《乘除通变本末》3卷(1274),《田亩比类乘除捷法》2卷(1275)和《续古摘奇算法》2卷(1275)(其中《详解》和《日用算法》已非完书)。后三种合称为《杨辉算法》。与秦九韶、李冶、朱世杰并称“宋元数学四大家”。

杨辉三角最本质的特征是,它的两条斜边都是由数字1组成的,而其余的数则是等于它肩上的两个数之和。
java代码

package algorithm;public class YFTriangle {public static void main(String[] args) {yh(19);}/*** 它的两条斜边都是由数字1组成的,而其余的数则是等于它肩上的两个数之和。* @param in*/public static void yh(int in){int[] a = new int[in + 1];int previous = 1;for (int i = 1; i <= in; i ++){for (int j = 1; j <= i; j++){int current = a[j];a[j] = previous + current;previous = current;System.out.print(a[j] + " ");}System.out.println();}}
}

运行结果

1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
1 10 45 120 210 252 210 120 45 10 1
1 11 55 165 330 462 462 330 165 55 11 1
1 12 66 220 495 792 924 792 495 220 66 12 1
1 13 78 286 715 1287 1716 1716 1287 715 286 78 13 1
1 14 91 364 1001 2002 3003 3432 3003 2002 1001 364 91 14 1
1 15 105 455 1365 3003 5005 6435 6435 5005 3003 1365 455 105 15 1
1 16 120 560 1820 4368 8008 11440 12870 11440 8008 4368 1820 560 120 16 1
1 17 136 680 2380 6188 12376 19448 24310 24310 19448 12376 6188 2380 680 136 17 1
1 18 153 816 3060 8568 18564 31824 43758 48620 43758 31824 18564 8568 3060 816 153 18 1

出现负数
如果输入20行的话,那么最大的数将达到48620
如果你使用的是16位编译器(比如Tubro C),int型只占2字节,所以就会溢出,
导致出现负数。
解决办法

package algorithm;public class YFTriangle {public static void main(String[] args) {yh(35);}/*** 它的两条斜边都是由数字1组成的,而其余的数则是等于它肩上的两个数之和。* @param in*/public static void yh(int in){long [] a = new long[in + 1];long previous = 1;for (int i = 1; i <= in; i ++){for (int j = 1; j <= i; j++){long current = a[j];a[j] = previous + current;previous = current;System.out.print(a[j] + " ");}System.out.println();}}
}

训练数据(31行开始的。。。。)

1 31 465 4495 31465 169911 736281 2629575 7888725 20160075 44352165 84672315 141120525 206253075 265182525 300540195 300540195 265182525 206253075 141120525 84672315 44352165 20160075 7888725 2629575 736281 169911 31465 4495 465 31 1
1 32 496 4960 35960 201376 906192 3365856 10518300 28048800 64512240 129024480 225792840 347373600 471435600 565722720 601080390 565722720 471435600 347373600 225792840 129024480 64512240 28048800 10518300 3365856 906192 201376 35960 4960 496 32 1
1 33 528 5456 40920 237336 1107568 4272048 13884156 38567100 92561040 193536720 354817320 573166440 818809200 1037158320 1166803110 1166803110 1037158320 818809200 573166440 354817320 193536720 92561040 38567100 13884156 4272048 1107568 237336 40920 5456 528 33 1
1 34 561 5984 46376 278256 1344904 5379616 18156204 52451256 131128140 286097760 548354040 927983760 1391975640 1855967520 2203961430 2333606220 2203961430 1855967520 1391975640 927983760 548354040 286097760 131128140 52451256 18156204 5379616 1344

算法详解--杨辉三角相关推荐

  1. 【算法竞赛】杨辉三角 | 杨辉三角与组合数的关系 | 杨辉三角的算法应用 | c++代码实现公式获取杨辉三角位置的值

    杨辉三角详解 杨辉三角是什么? 杨慧三角是二项式系数在三角形中的一种集合排列!! 换一种说法: 杨辉三角是二项式系数, 通过数据三角形表示, 发现的数学规律. 杨辉三角与二项式系数联系 定义: 在数学 ...

  2. 两种算法巧算杨辉三角——python

    什么是杨辉三角? 杨辉三角,是二项式系数在三角形中的一种几何排列,中国南宋数学家杨辉1261年所著的<详解九章算法>一书中出现.在欧洲,帕斯卡(1623----1662)在1654年发现这 ...

  3. 求杨辉三角的前n行数据_两道简单的套公式算法题:杨辉三角

    杨辉三角应该是大家很早就接触到的一个数学知识,它有很多有趣的性质: 每个数字等于上一行的左右两个数字之和,即 C(n+1,i) = C(n,i) + C(n,i-1) 每行数字左右对称,由 1 开始逐 ...

  4. python杨辉三角函数_Python算法之六:杨辉三角

    关注微信公众号"酸痛鱼",获得更多最新最全的文章. 本文中所涉及的代码,在未特殊声明的情况下,都是基于Python3程序设计语言编写的. 建议您在PC浏览器中阅读本文,以获得更好的 ...

  5. python实现杨辉三角_Python算法之六:杨辉三角

    关注微信公众号"酸痛鱼",获得更多最新最全的文章. 本文中所涉及的代码,在未特殊声明的情况下,都是基于Python3程序设计语言编写的. 建议您在PC浏览器中阅读本文,以获得更好的 ...

  6. 算法--组合数学:杨辉三角数学分析以及Java实现

    1.定义 杨辉三角,是二项式系数在三角形中的一种几何排列. 下图为杨辉三角部分数据 2.杨辉三角规律 前提:每行端点与结尾的数为1 最重要的规律: 每个数字等于上一行的左右两个数字之和.可用此性质写出 ...

  7. 用python编写杨辉三角金字塔_用python实现三道简单算法题:杨辉三角,蛇形矩阵,金字塔...

    分享几道简单的python打印输出的问题,本质上都是可以将其分解成一个大循环之中有几个小循环. 1.杨辉三角 主要特点: 每个数等于它上方两数之和. 每行数字左右对称,由1开始逐渐变大. 每行端点与结 ...

  8. 手把手教你解杨辉三角

    题目描述: 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行在「杨辉三角」中,每个数是它左上方和右上方的数的和. 示例: 输入: numRows = 5 输出: [[1],[ ...

  9. 48 - 算法 - leetcode 118 杨辉三角

    //感觉两种思路 一种直接全都有 数组 可变数组 vector<vector<int> (n) //数组与可变数组初始化 #include <vector> using ...

最新文章

  1. 获得诺贝尔奖的底层小职员 | 从来没有一个高手,是在一夜之间强大起来的
  2. php使用第三方登录
  3. Matlab基本函数-conj函数
  4. 原码、反码、补码的产生、应用以及优缺点有哪些?
  5. 小程序根据手机机型设置自定义底部导航距离
  6. linux u盘 uid pid,linux下的pid文件的作用
  7. 小企业文件打印服务器,小企业云服务器方案
  8. 20160205.CCPP体系详解(0015天)
  9. Date对象 IOS踩坑
  10. 传新一轮估值200亿美金 小红书回应:以老股东增持为主
  11. React函数组件和类组件的区别
  12. RHELServer6.2下编译GDAL和mysql和proj4支持
  13. 计算机休眠变关机,笔记本电脑一进入睡眠休眠就关机!重启后就显 – 手机爱问...
  14. java 字符串拼接_不能用 + 拼接字符串? 这次我要吊打面试官!
  15. 遥控器控制项目(拷贝型遥控器+灵R1A)
  16. Python基础_闭包和迭代器
  17. 基于MATLAB的求解线性方程组(附完整代码和例题)
  18. Matlab给图片加网格
  19. windows访问控制列表ACL
  20. win7计算机文件夹选项在哪里,Win7文件夹选项不见了怎么办?

热门文章

  1. 新版标准日本语初级_第八课
  2. 「雷锋前线」攻破一把智能门锁的N种方法
  3. 复制粘贴发明人、Java 和互联网创建者相继去世
  4. SD卡文件系统类型是raw
  5. UITableViewCell复用后,label上的字重叠的问题
  6. 梅超风:我就是那个多年以前的女子
  7. 如何批量将 webp 格式图片转换为 png 格式
  8. 天命数 描述 给定两个数字n与m(n,m均不为0,均在100,000以内), 天命数规则如下:给出一个特殊的数字k,1<=k<=3,当k=1的时候,天命数就是n,m中较大的数字整除较小的数字所得到的
  9. 安卓短信加密_【安卓用户】通讯录同步助手使用教程
  10. 梦想世界2014年5月29日服务器维护公告,【公告】2014年11月13日服务器维护公告