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 相关文章推荐
比较全的PHP 会话(session 时间设定)使用入门代码
Jun 05 PHP
php中var_export与var_dump的区别分析
Aug 21 PHP
PHP运行出现Notice : Use of undefined constant 的完美解决方案分享
Mar 05 PHP
php单例模式实现(对象只被创建一次)
Dec 05 PHP
PHP实现图片压缩的两则实例
Jul 19 PHP
ThinkPHP的MVC开发机制实例解析
Aug 23 PHP
PHP中使用break跳出多重循环代码实例
Jan 21 PHP
ThinkPHP实现递归无级分类――代码少
Jul 29 PHP
简单谈谈php浮点数精确运算
Mar 10 PHP
php微信公众平台开发之微信群发信息
Sep 13 PHP
PHP使用星号隐藏用户名,手机和邮箱的实现方法
Sep 22 PHP
PHP+Ajax 检测网络是否正常实例详解
Dec 16 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
php中的数组操作函数整理
2008/08/18 PHP
php 无限级分类学习参考之对ecshop无限级分类的解析 带详细注释
2010/03/23 PHP
php编程实现获取excel文档内容的代码实例
2011/06/28 PHP
浅析php中jsonp的跨域实例
2013/06/21 PHP
ThinkPHP的模版中调用session数据的方法
2014/07/01 PHP
如何使用jQuery+PHP+MySQL来实现一个在线测试项目
2015/04/26 PHP
PHP.vs.JAVA
2016/04/29 PHP
Linux环境下php实现给网站截图的方法
2016/05/03 PHP
PHP编程快速实现数组去重的方法详解
2017/07/22 PHP
掌握PHP垃圾回收机制详解
2019/03/13 PHP
Laravel 关联模型-关联新增和关联更新的方法
2019/10/10 PHP
C#中TrimStart,TrimEnd,Trim在javascript上的实现
2011/01/17 Javascript
GRID拖拽行的实例代码
2013/07/18 Javascript
IE、FF、Chrome浏览器中的JS差异介绍
2013/08/13 Javascript
mvc中form表单提交的三种方式(推荐)
2016/08/10 Javascript
Javascript使用uploadify来实现多文件上传
2016/11/16 Javascript
JS实现数组去重复值的方法示例
2017/02/18 Javascript
AngularJS  ng-repeat遍历输出的用法
2017/06/19 Javascript
JavaScript实现简单动态进度条效果
2018/04/06 Javascript
Vue中插入HTML代码的方法
2018/09/21 Javascript
JS实现集合的交集、补集、差集、去重运算示例【ES5与ES6写法】
2019/02/18 Javascript
利用Node.js如何实现文件循环覆写
2019/04/05 Javascript
python实现zencart产品数据导入到magento(python导入数据)
2014/04/03 Python
python实现俄罗斯方块游戏
2020/03/25 Python
python3实现多线程聊天室
2018/12/12 Python
基于 Django 的手机管理系统实现过程详解
2019/08/16 Python
使用Python paramiko模块利用多线程实现ssh并发执行操作
2019/12/05 Python
PyQt中使用QtSql连接MySql数据库的方法
2020/07/28 Python
聊聊python在linux下与windows下导入模块的区别说明
2021/03/03 Python
马来西亚航空官方网站:Malaysia Airlines
2017/07/28 全球购物
威盛公司软件C++工程师笔试题面试题
2012/07/16 面试题
《逃家小兔》教学反思
2014/02/23 职场文书
节能环保口号
2014/06/12 职场文书
法律讲堂观后感
2015/06/11 职场文书
2019安全宣传标语大全
2019/08/14 职场文书
Java 将PPT幻灯片转为HTML文件的实现思路
2021/06/11 Java/Android