Heim  >  Artikel  >  Backend-Entwicklung  >  javascript杨辉三角的例子

javascript杨辉三角的例子

WBOY
WBOYOriginal
2016-07-25 09:12:591239Durchsuche

杨辉三角是计算二项式乘方展开式的系数时必不可少的工具、是由数字排列而成的三角形数表。

效果如下图: javascript杨辉三角

资料:杨辉三角第n行的第1个数为1,第二个数为1×(n-1),第三个数为1×(n-1)×(n-2)/2,第四个数为1×(n-1)×(n-2)/2×(n-3)/3…依此类推。 杨辉三角另外一个重要的特性就是每一行首尾两个数字都是1、中间的数字等于上一行相邻两个数字的和、即排列组合中通常所运用的: C(m,n) = C(m-1,n-1)+C(m-1,n) 根据以上性质、可以利用函数很轻松地将杨辉三角运算出来、函数接受一个参数、即希望得到杨辉三角的行数:

  1. function Pascal(n){ //杨辉三角,N为行数
  2. //
  3. }
复制代码

在这个函数中用两个for循环进行嵌套、外层循环数为行数、内层循环为每行内的每一项:

  1. for( var i = 0 ; i for ( var j = 0 ; j }
  2. document.write("
    ");
  3. }
复制代码

而在每行中每一个数字均为组合数C(m,n)、其中m为行号(从0算起)、n为在该行中的序号(从0算起)、即:

  1. document.write(Combination(i,j)+"  "); //引号里面的内容是两个html空格(  )字符
复制代码

其中Combination(i,j)为计算组合数的函数、这个函数采用组合数的特性C(m,n) = C(m-1,n-1)+C(m-1,n)、对于这样的特性、最有效的办法就是递归:

  1. function Combination(m,n){
  2. if(n == 0) return 1; //每行第一个数为1
  3. else if(m == n) return 1; //最后一个数为1
  4. //其余都是相加而来
  5. else return Combination(m-1,n-1)+Combination(m-1,n);
  6. }
复制代码

js打印杨辉三角的完整代码:

  1. String path = request.getContextPath();
  2. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  3. %>
  4. 杨辉三角
  5. createDate 2010-7-8
  6. author 旦旦而学
  7. --%>
  8. 杨辉三角--bbs.it-home.org
复制代码


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn