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读取IMAP邮件
Oct 09 PHP
PHP 日期加减的类,很不错
Oct 10 PHP
php实现的仿阿里巴巴实现同类产品翻页
Dec 11 PHP
使用ThinkPHP自带的Http类下载远程图片到本地的实现代码
Aug 02 PHP
解析php常用image图像函数集
Jun 24 PHP
PHP使用SOAP扩展实现WebService的方法
Apr 01 PHP
一段实用的php验证码函数
May 19 PHP
图文详解PHP环境搭建教程
Jul 16 PHP
PHP 极验验证码实例讲解
Sep 29 PHP
php 获取文件行数的方法总结
Oct 11 PHP
一次因composer错误使用引发的问题与解决
Mar 06 PHP
TP5框架安全机制实例分析
Apr 05 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
Linux fgetcsv取得的数组元素为空字符串的解决方法
2011/11/25 PHP
PHP的Yii框架中Model模型的学习教程
2016/03/29 PHP
laravel5.1框架基础之Blade模板继承简单使用方法分析
2019/09/05 PHP
php5与php7的区别点总结
2019/10/11 PHP
Laravel框架源码解析之反射的使用详解
2020/05/14 PHP
JavaScript中的集合及效率
2010/01/08 Javascript
jQuery中:not选择器用法实例
2014/12/30 Javascript
通用javascript代码判断版本号是否在版本范围之间
2015/11/29 Javascript
AngularJS中的Directive自定义一个表格
2016/01/25 Javascript
实例讲解jquery中mouseleave和mouseout的区别
2016/02/17 Javascript
JQuery ztree带筛选、异步加载实例讲解
2016/02/25 Javascript
node.js cookie-parser之parser.js
2016/06/06 Javascript
使用bootstrap validator的remote验证代码经验分享(推荐)
2016/09/21 Javascript
js获取地址栏中传递的参数(两种方法)
2017/02/08 Javascript
js的函数的按值传递参数(实例讲解)
2017/11/16 Javascript
Vue2.0中三种常用传值方式(父传子、子传父、非父子组件传值)
2018/08/16 Javascript
nodejs实现用户登录路由功能
2019/05/22 NodeJs
JS实现音乐导航特效
2020/01/06 Javascript
微信小程序保存图片到相册权限设置
2020/04/09 Javascript
[10:07]2014DOTA2国际邀请赛 实拍选手现场观战DK对阵Titan
2014/07/12 DOTA
[02:15]你好,这就是DOTA!
2015/08/05 DOTA
Python脚本在Appium库上对移动应用实现自动化测试
2015/04/17 Python
python文件的md5加密方法
2016/04/06 Python
Swift中的协议(protocol)学习教程
2016/07/08 Python
Linux下为不同版本python安装第三方库
2016/08/31 Python
Python黑帽编程 3.4 跨越VLAN详解
2016/09/28 Python
判断python对象是否可调用的三种方式及其区别详解
2019/01/31 Python
Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法
2020/03/20 Python
Python制作一个仿QQ办公版的图形登录界面
2020/09/22 Python
世界上最大的家庭自动化公司:Smarthome
2017/12/20 全球购物
信息技术专业大学生个人的自我评价
2013/10/05 职场文书
机关作风建设工作总结
2014/10/23 职场文书
城南旧事读书笔记
2015/06/29 职场文书
汽车修理厂管理制度
2015/08/05 职场文书
Python实战实现爬取天气数据并完成可视化分析详解
2022/06/16 Python
mysql全面解析json/数组
2022/07/07 MySQL