JavaScript如何输出杨辉三角
目录
- JavaScript输出杨辉三角
- 输出杨辉三角,如
- 就要先找到其规律
- 完整代码如下所示
- 总结
JavaScript输出杨辉三角
杨辉三角形,又称贾宪三角形,帕斯卡三角形,是二项式系数在三角形中的一种几何排列。
在我国南宋数学家杨辉所著的《详解九章算术》(1261年)一书中用如图的三角形解释二项和的乘方规律。
输出杨辉三角,如
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
……
当我们想要在终端输出上述的杨辉三角
就要先找到其规律
1、每个数等于它上方两数之和。
2、每行数字左右对称,由1开始逐渐变大。
3、第n行的数字有n+1项。
4、第n行数字和为2^(n-1)。
5、(a+ b)^n的展开式中的各项系数依次对应杨辉三角的第(n+1)行中的每一项。
6、第n行的第m个数和第n-m个数相等,即C(n,m)=C(n,n-m),这是组合数性质。
该图形是矩阵的一半,所以可定义其为一个二维数组,我们假设数组的行列都为7:
//定义一个二维数组 var a=new Array( new Array(7), new Array(7), new Array(7), new Array(7), new Array(7), new Array(7), new Array(7), )
此二维数组最明显的规律就是其第一列都为1,对角线也都为1,先对该二维数组进行初始化可以得到:
//初始化二维数组:第一列全是1,对角线全是1 for(let i=0;i<a.length;i++){ a[i][0]=1 //第一列都是1 a[i][i]=1 //对角线都是1 }
通过上述代码我们已经得到了二维矩阵的第一列数和对角线数,此时对数组其他位置进行填充,通过杨辉三角的规律,我们从第三行第二列的元素入手,假设它为arr[3][2],可以得到该元素由arr[2][1]和arr[2][2]相加所得,其余填充位置以此类推
可得到以下代码:
//填充数组其他单元 for(let i=2;i<a.length;i++){ for(let j=1;j<i;j++){ a[i][j]=a[i-1][j-1]+a[i-1][j] } }
填充完毕输出该二维数组,终端显示即杨辉三角(注意:只输出左半三角即可)
完整代码如下所示
//定义一个二维数组 var a=new Array( new Array(7), new Array(7), new Array(7), new Array(7), new Array(7), new Array(7), new Array(7) ) //初始化二维数组:第一列全是1,对角线全是1 for(let i=0;i<a.length;i++){ a[i][0]=1 //第一列都是1 a[i][i]=1 //对角线都是1 } //填充数组其他单元 for(let i=2;i<a.length;i++){ for(let j=1;j<i;j++){ a[i][j]=a[i-1][j-1]+a[i-1][j] } } //输出二维数组,只输出左半三角 var str='' for(let i=0;i<a.length;i++){ for(let j=0;j<=i;j++){ str+=a[i][j]+'\t' } str+= '\n' } console.log(str)
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
JavaScript代码简单实现求杨辉三角给定行的最大值
复制代码 代码如下: function cal(row) { var result = 1; for(var i = 0; i < row / 2; i++) { return result * = (row - i) / i; } return result; };
-
JS实现的杨辉三角【帕斯卡三角形】算法示例
本文实例讲述了JS实现的杨辉三角[帕斯卡三角形]算法.分享给大家供大家参考,具体如下: 杨辉三角,是二项式系数在三角形中的一种几何排列,在中国南宋数学家杨辉1261年所著的<详解九章算法>一书中出现. 在欧洲,帕斯卡(1623-1662)在1654年发现这一规律,所以这个表又叫做帕斯卡三角形. 帕斯卡的发现比杨辉要迟393年,比贾宪迟600年. 题目: 给定非负整数numRows,生成Pascal三角形的第一个numRows.在Pascal的三角形中,每个数字是它上面两个数字的总和. 输入:
-
C语言在屏幕上输出杨辉三角
这就是杨辉三角,也叫贾宪三角.这于我们现在的学习联系最紧密的是2项式乘方展开式的系数规律.如图,在贾宪三角中,第3行的第三个数恰好对应着两数和的平方公式依次下去. 杨辉三角是一个由数字排列成的三角形数表,一般形式如下: ................................................. 杨辉三角的规律是:它的两条斜边都是由数字1组成的,而其余的数则是等于它肩上的两个数之和. 代码如下: #include<stdio.h> #include<stdlib.h
-
java使用for循环输出杨辉三角
思路是创建一个整型二维数组,包含10个一维数组.使用双层循环,在外层循环中初始化每一个第二层数组的大小.在内层循环中,先将两侧的数组元素赋值为1,其他数值通过公式计算,然后输出数组元素. 复制代码 代码如下: public class YanghuiTriangle { public static void main(String[] args) { int triangle[][]=new int[10][];// 创建二维数组 // 遍历二维数组的第一层
-
C语言打印杨辉三角示例汇总
杨辉三角是我们从初中就知道的,现在,让我们用C语言将它在计算机上显示出来. 在初中,我们就知道,杨辉三角的两个腰边的数都是1,其它位置的数都是上顶上两个数之和.这就是我们用C语言写杨辉三角的关键之一.在高中的时候我们又知道,杨辉三角的任意一行都是的二项式系数,n为行数减1.也就是说任何一个数等于这个是高中的组合数.n代表行数减1,不代表列数减1.如:第五行的第三个数就为=6. 现在我们按第一种思路来写:先定义一个二维数组:a[N][N],略大于要打印的行数.再令两边的数为1,即当每行的第一个数和
-
汇编语言实现打印杨辉三角
计算杨辉三角形的前n(n<=10)行,并显示在屏幕上.要求计算及显示 用子程序形式实现.其显示格式为: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 CODE SEGMENT ASSUME CS:CODE,DS:CODE org 100h START: jmp begin message db 13,10,9,'Input N(N<=10): $' error db 13,10,9,'Data out of range!$' begin: push c
-
用Python输出一个杨辉三角的例子
关于杨辉三角是什么东西,右转维基百科:杨辉三角 稍微看一下直观一点的图: 复制代码 代码如下: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 11 8 28 56 70 56 28 8 1 杨辉三角有以下几个特点: 每一项的值等于他左上角的数和右上角的数的和,如果左上角或者右上角没有数字,就按0计算.第N层项数总比N-1层多1个 计算第N层的杨辉三角,必须知道N-1层的数字,然后将相邻
-
java编程实现杨辉三角两种输出结果实例代码
首先展示下结果: 简介: 杨辉三角,是二项式系数在三角形中的一种几何排列.在欧洲,这个表叫做帕斯卡三角形.帕斯卡(1623----1662)是在1654年发现这一规律的,比杨辉要迟393年,比贾宪迟600年.杨辉三角是中国古代数学的杰出研究成果之一,它把二项式系数图形化,把组合数内在的一些代数性质直观地从图形中体现出来,是一种离散型的数与形的优美结合. 实例代码如下: package com.sxt; import java.util.Arrays; public class KeBen { p
-
C# 中杨辉三角的实现
C# 中杨辉三角的实现 问题描述:创建一个程序来求三角形.该程序提示用户输入数据,然后显示出杨辉三角的规律. // 输入描述:杨辉三角长,代表数值 // 程序输出:杨辉三角 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication2 { class Program { static void Main(string[] arg
-
python 生成器生成杨辉三角的方法(必看)
用Python写趣味程序感觉屌屌的,停不下来 #生成器生成展示杨辉三角 #原理是在一个2维数组里展示杨辉三角,空的地方用0,输出时,转化为' ' def yang(line): n,leng=0,2*line - 1 f_list = list(range(leng+2)) #预先分配,insert初始胡会拖慢速度,最底下一行,左右也有1个空格 #全部初始化为0 for i,v in enumerate(f_list): f_list[v] = 0 ZEROLIST = f_list[:] #预
-
Python极简代码实现杨辉三角示例代码
杨辉三角,又称贾宪三角形,帕斯卡三角形,是二项式系数在三角形中的一种几何排列. 把每一行看做一个list,写一个generator,不断输出下一行的list 实现下列输出效果: # [1] # [1, 1] # [1, 2, 1] # [1, 3, 3, 1] # [1, 4, 6, 4, 1] # [1, 5, 10, 10, 5, 1] # [1, 6, 15, 20, 15, 6, 1] # [1, 7, 21, 35, 35, 21, 7, 1] # [1, 8, 28, 56, 70,
随机推荐
- 一个小型js框架myJSFrame附API使用帮助
- mysql下mysql-udf-http效率测试小记
- 使用BAT一句话命令实现快速合并JS、CSS
- 详解C++编程中表达式的语义与计算顺序
- 使用paramiko远程执行命令、下发文件的实例
- Java Date类常用示例_动力节点Java学院整理
- php文件类型MIME对照表(比较全)
- Python3实现连接SQLite数据库的方法
- 浅析Python中的多进程与多线程的使用
- C#怎么实现手机短信发送功能
- php采集自中央气象台范围覆盖全国的天气预报代码实例
- js实现(全选)多选按钮的方法【附实例】
- 分享网站群发站内信数据库表设计
- 使用原生js实现页面蒙灰(mask)效果示例代码
- jQuery地图map悬停显示省市代码分享
- python爬虫框架scrapy实战之爬取京东商城进阶篇
- jQuery ajax读取本地json文件的实例
- javascript sudoku 数独智力游戏生成代码
- 浅谈javascript 迭代方法
- IIS无法启动提示“服务没有及时响应启动或控制请求”的解决方法[图解]
其他
- laravel request的使用
- zset redis 实现
- jquery移动端页面签字使用canvas
- vue table 滚动到页面最底部
- springboot 接口转发
- swaggerUi配置好了页面的某个功能刷新不了
- python字典中一键多值的添加
- filter PathVariable的值
- idea生成的jar包找不到主类
- echarts立体柱状图
- NFC 获取物理卡号
- PYTHON 进程锁 自动开锁
- android 画刻度线
- Interceptor 处理返回的值
- mybatis foreach or
- 如何把一个csv拆成多个文件
- vue3 setup语法糖 异步之后再同步
- vue-amap buttonPosition事件
- Django项目添加第三方认证并登陆
- vue2怎么监听数组变化