楊輝三角是計算二項式乘方展開式的係數時必不可少的工具、是由數字排列而成的三角形數表。 效果如: 資料:楊輝三角第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)根據以上性質、可以利用函數很輕鬆地將楊輝三角運算出來、函數接受一個參數、即希望得到楊輝三角的行數:
- function Pascal(n){ //楊輝三角,N為行數
- //
- }
-
複製代碼在這個函數中用兩個for迴圈進行嵌套、外層迴圈數為行數、內層迴圈為每行內的每一項:
- for( var i = 0 ; i < n ; i++ ){ //一共N行
- for ( var j = 0 ; j <= i ; j++ ) { //每行數位個數即為行號、例如第1行1個數、第2行2個數
- }
- document.write("
");
- }
複製代碼而在每行中每一個數字均為組合數C(m,n)、其中m為行號(從0算起)、n為在該行中的序號(從0算起)、即:
- document.write(Combination(i,j)+" "); //引號裡面的內容是兩個html空格( )字元
複製代碼其中Combination(i,j)為計算群組合數的函數、這個函數採用組合數的特性C(m,n) = C(m-1,n-1)+C(m-1,n)、對於這樣的特性、最有效辦法就是遞迴:
- function Combination(m,n){
- if(n == 0) return 1; //每行第一個數為1
- else if(m == n) return 1; //最後一個數為1
- //其餘都是相加而來
- else return Combination(m-1,n-1)+Combination(m-1,n);
- }
複製代碼js列印楊輝三角的完整代碼:
- <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
- <%
- String path = request.getContextPath();
- String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
- %>
-
- <%--
- 楊輝三角
- createDate 2010-7-8
- author 旦旦而學
- --%>
-
-
-
-
-
-
- 楊輝三角--bbs.it-home.org
-
-
-
-
-
-
-
-
-
-
-
-
-
複製代碼 |