javascript楊輝三角的例子

來源:互聯網
上載者:User

楊輝三角是計算二項式乘方展開式的係數時必不可少的工具、是由數字排列而成的三角形數表。

效果如:

資料:楊輝三角第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 < n ; i++ ){ //一共N行
  2. for ( var j = 0 ; j <= i ; j++ ) { //每行數位個數即為行號、例如第1行1個數、第2行2個數
  3. }
  4. document.write("
    ");
  5. }
複製代碼

而在每行中每一個數字均為組合數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. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
  2. <%
  3. String path = request.getContextPath();
  4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  5. %>
  6. <%--
  7. 楊輝三角
  8. createDate 2010-7-8
  9. author 旦旦而學
  10. --%>
  11. 楊輝三角--bbs.it-home.org
複製代碼
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.