当前位置: 首页 > news >正文

常见算法-巴斯卡三角形(Pascal)

常见算法-巴斯卡三角形(Pascal)

1、说明

巴斯卡(Pascal)三角形基本上就是在解 nCr,因为三角形上的每一个数字各对应一个nCr,其中 n 为 row,而 r 为 column,如下:

    0C0

   1C0 1C1

  2C0 2C1 2C2

 3C0 3C1 3C2 3C3

对应的数据如下图所示:

                 1

    1       1

   1       2      1

  1      3       3     1

巴斯卡三角形中的 nCr 可以使用以下这个公式来计算,以避免阶乘运算时的数值溢位:

        nCr = [(n-r+1)/r] * nCr-1

        nC0 = 1

2、C++代码

#include<iostream>
using namespace std;long Pascal(int n, int r) {long p = 1;for (int i = 1; i <= r; i++) {p = p * (n - i + 1) / i;}return p;
}void PrintPascal(int t) {int n, r;for (n = 0; n <= t; n++) {for (r = 0; r <= n; r++) {int i;if (r == 0) {for (i = 0; i <= (t - n); i++) {cout << "  ";}}else {cout << "  ";}cout << Pascal(n, r);}cout << endl;}
}int main() {PrintPascal(12);// n=0, r=0		"   ""   ""   ""   "" 1 "					||	"   ""   ""   ""   ""0c0"// n=1, r=0		"   ""   ""   "" 1 ""   "" 1 "				||	"   ""   ""   ""1c0""   ""1c1"//		r=1// n=2, r=0		"   ""   "" 1 ""   "" 2 ""   "" 1 "			||	"   ""   ""2c0""   ""2c1""   ""2c2"//		r=1//		r=2// n=3, r=0		"   "" 1 ""   "" 3 ""   "" 3 ""   "" 1 "	||	"   ""3c0""   ""3c1""   ""3c2""   ""3c3"//		r=1//		r=2//		r=3return 0;
}

相关文章:

常见算法-巴斯卡三角形(Pascal)

常见算法-巴斯卡三角形&#xff08;Pascal&#xff09; 1、说明 巴斯卡&#xff08;Pascal&#xff09;三角形基本上就是在解 nCr&#xff0c;因为三角形上的每一个数字各对应一个nCr&#xff0c;其中 n 为 row&#xff0c;而 r 为 column&#xff0c;如下&#xff1a; 0C0 1…...

AI:09-基于深度学习的图像场景分类

图像场景分类是计算机视觉领域的重要任务之一,它涉及将图像分为不同的场景类别,如城市街景、山脉风景、海滩等。本文将介绍基于深度学习的图像场景分类方法,并提供相应的代码实例,展示了深度学习在图像场景分类中的技术深度和应用前景。 图像场景分类是计算机视觉中的一项…...

uni-app:引入echarts(使用renderjs)

效果 代码 <template><view click"echarts.onClick" :prop"option" :change:prop"echarts.updateEcharts" id"echarts" class"echarts"></view> </template><script>export default {data()…...

使用wireshark解析ipsec esp包

Ipsec esp包就是ipsec通过ike协议协商好后建立的通信隧道使用的加密包&#xff0c;该加密包里面就是用户的数据&#xff0c;比如通过的语音等。 那么如何将抓出来的esp包解析出来看呢&#xff1f; 获取相关的esp的key信息. 打开wireshark -> edit->preferences 找到pr…...

linux如何删除最近操作的日志

Linux系统下&#xff0c;不同的应用程序可能会生成不同的日志文件。如果你想要删除最近一段时间内的操作日志&#xff0c;可以使用一些命令来完成。 以下是一些常见的命令&#xff1a; dmesg&#xff1a;该命令用于显示内核环境下的运行信息和警告信息。如果你需要清空dmesg缓…...

android端MifareClassicTool

github地址 GitHub - ikarus23/MifareClassicTool: An Android NFC app for reading, writing, analyzing, etc. MIFARE Classic RFID tags. 开源项目 下载: https://www.icaria.de/mct/releases/ 功能 1、读取Mifare Classic卡片 2、编辑并保存卡片的数据 3、写入Mifare C…...

设计模式 - 迭代器模式

目录 一. 前言 二. 实现 三. 优缺点 一. 前言 迭代器模式是一种行为型设计模式&#xff0c;它提供了一种统一的方式来访问集合对象中的元素&#xff0c;而不暴露集合内部的表示方式。简单地说&#xff0c;就是将遍历集合的责任封装到一个单独的对象中&#xff0c;我们可以按…...

Docker之Dockerfile搭建lnmp

目录 一、搭建nginx ​编辑 二、搭建Mysql&#xff08;简略版&#xff09; 三、搭建PHP 五、补充 主机名ip地址主要软件mysql2192.168.11.22Docker 代码示例 systemctl stop firewalld systemctl disable firewalld setenforce 0docker network create --subnet172.18.…...

排序算法——选择排序

一、介绍&#xff1a; 选择排序就是按照一定的顺序从选取第一个元素索引开始&#xff0c;将其储存在一个变量值中&#xff0c;根据排序规则比较后边每一个元素与这个元素的大小&#xff0c;根据排序规则需要&#xff0c;变量值的索引值进行替换&#xff0c;一轮遍历之后&#x…...

【数据结构C/C++】双向链表的增删改查

文章目录 CC408考研各数据结构C/C代码&#xff08;Continually updating&#xff09; 对我个人而言&#xff0c;在开发过程中使用的比较多的就是双向链表了。 很多重要的代码优化都会使用到基于双向链表实现的数据机构。 比如我们常用的HashMap&#xff0c;我们知道Key其实是无…...

Godot 添加Nuget 引用

前言 我的Godot 专栏 我在之前的文章中&#xff0c;解决了Visual Studio 如何去调试正在运行的Godot 程序。Godot 对于C# 的支持只剩下一个&#xff0c;那就是Nuget 添加。 Godot VisualStudio外部编辑器设置 添加Nuget Nuget 添加还是非常的容易的。我们直接添加一个最常用的…...

IC工程师职场必备《经典Verilog100多个代码案例》(附下载)

对于IC行业的人员而言&#xff0c;Verilog是最基础的入门&#xff0c;用于数字电路的系统设计&#xff0c;很多的岗位都会用到&#xff0c;可对算法级、门级、开关级等多种抽象设计层次进行建模。 Verilog由于其简单的语法&#xff0c;和C语言的相似性&#xff0c;目前被各大公…...

springboot项目做成公共项目

一&#xff1a;引言 最近碰到个需求&#xff0c;就是把我项目做成一个公共的提供jar包给别人使用&#xff0c;我也是捣鼓了一段时间去研究这个问题&#xff0c;这个东西其实就是A 项目提供jar包给B项目&#xff0c;B项目只要引入A项目的jar包就可以使用A项目的功能。 问题一&…...

RTC 时间、闹钟

实时时钟RTC是一个独立的定时器。RTC模块拥有一个连续计数的计数器&#xff0c;在软件配置下&#xff0c;可以提供时钟日历的功能。修改计数器的值可以重新设置当前时间和日期 RTC还包含用于管理低功耗模式的自动唤醒单元。 在掉电情况下 RTC仍可以独立运行 只要芯片的备用电源…...

【yolo系列:yolov7训练添加spd-conv】

系列文章目录 yolov7训练添加spd-conv 文章目录 系列文章目录一、spd-conv是什么&#xff1f;二、使用步骤1.第一步&#xff1a;先在models/common.py加上2.第二步&#xff1a;models/yolo.py加上2.第三步&#xff1a;修改yolov7的yaml文件 总结 提示&#xff1a;以下是本篇文…...

面向对象设计-UML六种箭头含义

目录 UML概述UML语义UML表示法 六种常用关系标识方法泛化实现依赖关联聚合组合 本文参考文章 https://blog.csdn.net/qq_25091281/article/details/123801862 UML概述 UML (Unified Modeling Language)为面向对象软件设计提供统一的、标准的、可视化的建模语言。适用于描述以…...

一本没有任何数学公式的自然语言处理入门书

ChatGPT 时代来了&#xff0c;AI 从旧时王谢堂前燕&#xff0c;飞入寻常百姓家。越来越多非 AI 领域 的软件开发者涌进 NLP(自然语言处理)领域。在这个快速发展的时代&#xff0c;如果这些软件开发 者要像读书那样先读 4 年本科、2 年硕士、3 年博士才能搞 AI&#xff0c;风口早…...

【数据结构C/C++】多维数组的原理、访问方式以及作用

文章目录 什么是多维数组&#xff1f;代码讲解使用方式为什么指针遍历的方式是这样子的&#xff1f;&#xff08;助你理解指针的含义&#xff09;使用场景408考研各数据结构C/C代码&#xff08;Continually updating&#xff09; 什么是多维数组&#xff1f; 在C语言中&#x…...

2023年中国烹饪机器人市场发展概况分析:整体规模较小,市场仍处于培育期[图]

烹饪机器人仍属于家用电器范畴&#xff0c;是烹饪小家电的进一步细分&#xff0c;它是烹饪小家电、人工智能和服务机器在厨房领域的融合。烹饪机器人是一种智能化厨房设备&#xff0c;可以根据预设的程序实现自动翻炒和烹饪&#xff0c;是多功能料理机和炒菜机结合的产物。 烹…...

Android原生实现控件选择背景变色方案(API28及以上)

Android控件点击/选择后控件背景变色的实现方式有很多种&#xff0c;例如使用selector的xml文件实现。这里介绍一下另一种Android原生的点击/选择实现方案&#xff08;API28及以上&#xff09;&#xff0c;也就是ColorStateListDrawable。 ColorStateListDrawable是一个可根据不…...

hadoop3.3.6上搭建Hbase2.5.13集群

一、什么是Hbase hadoop的局限性 hadoop主要是实现批处理的处理,并且通过顺序方式访问数据 要查找数据必须搜索整个数据集,如果要进行随机读写数据,效率低下 Hbase是Bigtable的开源java版本,是建立在HDFS之上,提供高可靠性、高性能、列存储、可伸缩、实时读写的NoSQL数据…...

AGV如何选合适的传感器

一、AGV传感器的三大功能块几乎所有AGV都可以把传感器分成三类&#xff1a;1&#xff09;导航/定位传感器&#xff1a;用来“知道自己在哪、怎么走” 2&#xff09;本体/运动传感器&#xff1a;用来“知道自己怎么动的” 3&#xff09;避障/安全传感器&#xff1a;用来“不撞人…...

016、CI/CD流水线:用GitHub Actions把部署从玄学变成肌肉记忆

016、CI/CD流水线&#xff1a;用GitHub Actions把部署从玄学变成肌肉记忆 上周深夜&#xff0c;线上服务突然告警。紧急回滚时发现&#xff0c;测试环境通过的镜像在生产环境死活起不来。查了三个小时&#xff0c;最后发现是某位同事在Dockerfile里写死了测试数据库的IP。这种“…...

网站 SEO 软件如何提高网站流量

了解网站 SEO 软件的重要性 在当今互联网时代&#xff0c;网站流量的重要性不言而喻。无论你经营的是一个电子商务网站&#xff0c;博客&#xff0c;还是企业官方网站&#xff0c;高流量意味着更多的曝光和潜在客户。如何有效地提高网站流量呢&#xff1f;这里&#xff0c;我们…...

Verilog基础:task和function的使用(一)

相关文章 Verilog基础专栏https://blog.csdn.net/weixin_45791458/category_12263729.html 一、前言 任务(task)和函数(function)即提供了从不同位置执行公共过程的能力&#xff08;因为这样可以实现代码共享&#xff09;&#xff0c;也提供了把大过程分解成小过程的能力&…...

Notepad--:中文开发者的跨平台文本编辑解决方案

Notepad--&#xff1a;中文开发者的跨平台文本编辑解决方案 【免费下载链接】notepad-- 一个支持windows/linux/mac的文本编辑器&#xff0c;目标是做中国人自己的编辑器&#xff0c;来自中国。 项目地址: https://gitcode.com/GitHub_Trending/no/notepad-- 核心价值&a…...

如何快速掌握Pelican静态网站生成器:Full Stack Python的技术架构解析

如何快速掌握Pelican静态网站生成器&#xff1a;Full Stack Python的技术架构解析 【免费下载链接】fullstackpython.com Full Stack Python source with Pelican, Bootstrap and Markdown. 项目地址: https://gitcode.com/gh_mirrors/fu/fullstackpython.com 想要快速构…...

three.ar.js 终极入门指南:10分钟快速上手 WebAR 开发

three.ar.js 终极入门指南&#xff1a;10分钟快速上手 WebAR 开发 【免费下载链接】three.ar.js A helper three.js library for building AR web experiences that run in WebARonARKit and WebARonARCore 项目地址: https://gitcode.com/gh_mirrors/th/three.ar.js th…...

如何永久保存微信聊天记忆:WeChatMsg本地数据管理终极指南

如何永久保存微信聊天记忆&#xff1a;WeChatMsg本地数据管理终极指南 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/W…...

告别繁琐文字提取:Text-Grab本地化OCR工具效率提升指南

告别繁琐文字提取&#xff1a;Text-Grab本地化OCR工具效率提升指南 【免费下载链接】Text-Grab Use OCR in Windows quickly and easily with Text Grab. With optional background process and notifications. 项目地址: https://gitcode.com/gh_mirrors/te/Text-Grab …...