PHP实现的杨辉三角求解算法分析


Posted in PHP onMarch 11, 2019

本文实例讲述了PHP实现的杨辉三角求解算法。分享给大家供大家参考,具体如下:

♥ 前言

对于 杨辉三角 是什么的问题,请参考百度百科的详细解释: 杨辉三角

杨辉三角,是二项式系数在三角形中的一种几何排列。在欧洲,这个表叫做帕斯卡三角形。帕斯卡(1623—-1662)是在1654年发现这一规律的,比杨辉要迟393年,比贾宪迟600年。杨辉三角是中国古代数学的杰出研究成果之一,它把二项式系数图形化,把组合数内在的一些代数性质直观地从图形中体现出来,是一种 离散型的数与形 的结合

PHP实现的杨辉三角求解算法分析

♠ 代码实现

  • 题目的要求是:设计代码,实现打印 杨辉三角 的功能
  • 此处提供的参考代码为 PHP,其他语言可参考推敲

①. 第一种方法

使用两个 for 循环进行输出,比较好理解

/**
   * 第一种代码实现
   * @param int $n 要求的层数
   * 理解思路:  $i代表行数; $j代表列数
   */
  public function funYH($n = 1){
    //初始化数组
    $arr = [];
    for($i = 0;$i < $n;$i++){
      //注意循环条件
      for($j = 0;$j <= $i;$j++){
        if($j == 0 || $i == $j){
          $arr[$i][$j] = 1;
        }else {
          $arr[$i][$j] = $arr[$i-1][$j-1]+$arr[$i-1][$j];
        }
        echo $arr[$i][$j]."\t";
      }
      echo "<br/>";
    }
  }

②. 第二种方法

使用的是 while 循环

/**
   * 第二种代码实现
   * @param int $n 要求的层数
   */
  public function funYH2($n = 1){
    //初始化数组
    $arrL = [1,1];
    //初始化索引
    $index = 0;
    while ($index < $n){
      if ($index == 0){
        echo $arrL[$index]."\t";
      }elseif ($index == 1){
        echo $arrL[$index - 1]."\t".$arrL[$index]."\t";
      }else{
        $oldL = $arrL;
        for ($i = 0;$i <= count($oldL);$i++){
          $arrL[$i] = $oldL[$i-1] + $oldL[$i];
          echo $arrL[$i]."\t";
        }
      }
      $index ++;
      echo "<br/>";
    }
  }

③. 输出结果

输出的结果是相同的,参考如下:

PHP实现的杨辉三角求解算法分析

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
Content-type 的说明
Oct 09 PHP
PHP新手上路(十四)
Oct 09 PHP
CakePHP去除默认显示的标题及图标的方法
Oct 22 PHP
PHP 定界符 使用技巧
Jun 14 PHP
PHP 遍历文件实现代码
May 04 PHP
Thinkphp模板中使用自定义函数的方法
Sep 23 PHP
php生成zip压缩文件的方法详解
Jun 09 PHP
自己写了一个php检测文件编码的函数
Apr 21 PHP
Laravel框架中实现使用阿里云ACE缓存服务
Feb 10 PHP
Yii获取当前url和域名的方法
Jun 08 PHP
PHP面向对象程序设计OOP继承用法入门示例
Dec 27 PHP
TP框架实现上传一张图片和批量上传图片的方法分析
Apr 23 PHP
PHP实现的只保留字符串首尾字符功能示例【隐藏部分字符串】
Mar 11 #PHP
ThinkPHP5.0框架验证码功能实现方法【基于第三方扩展包】
Mar 11 #PHP
PHP join()函数用法与实例讲解
Mar 11 #PHP
PHP lcfirst()函数定义与用法
Mar 08 #PHP
浅谈PHPANALYSIS提取关键字
Mar 08 #PHP
PHP levenshtein()函数用法讲解
Mar 08 #PHP
PHP implode()函数用法讲解
Mar 08 #PHP
You might like
实现“上一页”和“下一页按钮
2006/10/09 PHP
javascript 进度条 实现代码
2009/07/30 Javascript
jQuery学习笔记(2)--用jquery实现各种模态提示框代码及项目构架
2013/04/08 Javascript
jquery 文本上下无缝滚动,鼠标放上去就停止 小例子
2013/06/05 Javascript
js弹出层包含flash 不能关闭隐藏的2种处理方法
2013/06/17 Javascript
jquery ajax,ashx,json的用法总结
2014/02/12 Javascript
JavaScript中停止执行setInterval和setTimeout事件的方法
2015/05/14 Javascript
老生常谈 js中this的指向
2016/06/30 Javascript
ES6新特性之解构、参数、模块和记号用法示例
2017/04/01 Javascript
在React中如何优雅的处理事件响应详解
2017/07/24 Javascript
捕获未处理的Promise错误方法
2017/10/13 Javascript
详解给Vue2路由导航钩子和axios拦截器做个封装
2018/04/10 Javascript
微信小程序wepy框架学习和使用心得详解
2019/05/24 Javascript
JS实现从对象获取对象中单个键值的方法示例
2019/06/05 Javascript
Layui给switch添加响应事件的例子
2019/09/03 Javascript
在Django的URLconf中使用命名组的方法
2015/07/18 Python
Python3爬虫之urllib携带cookie爬取网页的方法
2018/12/28 Python
解决Python plt.savefig 保存图片时一片空白的问题
2019/01/10 Python
Python递归函数实例讲解
2019/02/27 Python
opencv resize图片为正方形尺寸的实现方法
2019/12/26 Python
TensorFlow实现checkpoint文件转换为pb文件
2020/02/10 Python
Html5新增标签与样式及让元素水平垂直居中
2019/07/11 HTML / CSS
HTML5 Canvas旋转动画的2个代码例子(一个旋转的太极图效果)
2014/04/10 HTML / CSS
Html5原创俄罗斯方块(基于canvas)
2019/01/07 HTML / CSS
阿迪达斯西班牙官方网站:adidas西班牙
2016/07/21 全球购物
凯特王妃父母建立的派对用品网站:Party Pieces
2017/05/28 全球购物
Bugatchi官方网站:男士服装在线
2019/04/10 全球购物
Why we need EJB
2016/10/20 面试题
运动会广播稿100字
2014/01/11 职场文书
七年级音乐教学反思
2014/01/26 职场文书
电子商务专业学生职业生涯规划
2014/03/07 职场文书
欢迎领导检查标语
2014/06/27 职场文书
如何写股份合作协议书
2014/09/11 职场文书
群众路线对照检查剖析材料
2014/10/09 职场文书
Mysql关于数据库是否应该使用外键约束详解说明
2021/10/24 MySQL
不同品牌、不同型号对讲机如何互相通联
2022/02/18 无线电