C++排列与组合算法详解
嘿!好久不见……
今天我又来 水文章 发文章了
今天来介绍一下非常垃圾的排列组合算法
声明:本篇文章含有手残作者画的图,大家不要介意(*_*)
学过数学的都知道,组合用“C”表示,排列用“P”或“A”表示
所谓组合,就是在x个东西中无顺序地拿y个东西(x>y),所有不重不漏的情况的个数
如:
用算术方法的话,就是
同理,
int jiecheng(int x)//阶乘代码
{int ret=1;//返回值变量for(int i=x;i>0;i--)//用for实现逐次减一ret*=i;//乘入返回值变量return ret;//返回
}
我们可以继而推导出组合的一般公式:(!代表接乘)
以及排列的一般公式:
再用代码实现:
int C(int x,int y)//定义组合函数
{int ret;ret=jiecheng(x)/jiecheng(x-y)/jiecheng(y);//公式return ret;
}
int A(int x,int y)//定义排列函数
{int ret;ret=jiecheng(x)/jiecheng(y);//公式return ret;
}
完整代码如下:
#include<iostream>
using namespace std;
int jiecheng(int x)
{int ret=1;for(int i=x;i>0;i--)ret*=i;return ret;
}
int C(int x,int y)
{int ret;ret=jiecheng(x)/jiecheng(x-y)/jiecheng(y);return ret;
}
int A(int x,int y)
{int ret;ret=jiecheng(x)/jiecheng(y);return ret;
}
int main()
{int a,b;cin>>a>>b;cout<<"排列:"<<C(a,b)<<endl;cout<<"组合:"<<A(a,b)<<endl;return 0;
}
最终效果:
本期的文章就到这里了,点个赞,点个关注 ,感谢你们~
C++排列与组合算法详解相关推荐
- 最全排列组合算法详解以及套路总结一文突破
项目github地址:bitcarmanlee easy-algorithm-interview-and-practice 经常有同学私信或留言询问相关问题,V号bitcarmanlee.github ...
- 【算法】组合数学——排列数生成算法详解(一)
组合数学中的全排列深成算法历来是组合数学考试的重要考察点,因此在这里我简单的介绍一下6种全排列生成算法的详细过程,并借此比较它们之间的优劣之处. 不论是哪种全排列生成算法,都遵循着"原排列& ...
- 回溯算法详解之全排列、N皇后问题
回溯算法详解 回溯算法框架.解决一个回溯问题,实际上就是一个决策树的遍历过程.你只需要思考 3 个问题: 1.路径:也就是已经做出的选择. 2.选择列表:也就是你当前可以做的选择. 3.结束条件:也就 ...
- Apollo6.0代码Lattice算法详解——Part4:计算障碍物ST/SL图
Apollo6.0代码Lattice算法详解--Part4:计算障碍物ST/SL图 0.前置知识 1.涉及主要函数 2.函数关系 3.部分函数代码详解 3.1 lattice_planner.cc中代 ...
- 神经网络算法详解 01:人工神经网络基础
本文介绍了人工智能的发展历史,基本概念,应用领域:神经元模型,神经元的学习规则以及神经网络工作原理.本系列文章来自阿里云大学人工智能学习路线中的<神经网络概览及神经网络算法详解>课程. 系 ...
- PnP算法详解(超详细公式推导)
PnP算法详解 PnP概述 PnP数学模型 PnP求解方法 DLT直接线性变换法 EPnP EPnP的特点 步骤 理论推倒 1.控制点及齐次重心坐标系 2.控制点的选择 3.计算控制点在相机坐标系下的 ...
- 快速排序算法详解(原理,时间复杂度,实现代码)
快速排序算法详解(原理.实现和时间复杂度) 快速排序是对冒泡排序的一种改进,由 C.A.R.Hoare(Charles Antony Richard Hoare,东尼·霍尔)在 1962 年提出. 快 ...
- 目标检测 RCNN算法详解
原文:http://blog.csdn.net/shenxiaolu1984/article/details/51066975 [目标检测]RCNN算法详解 Girshick, Ross, et al ...
- Twitter-Snowflake,64位自增ID算法详解
Twitter-Snowflake,64位自增ID算法详解 from: http://www.lanindex.com/twitter-snowflake%EF%BC%8C64%E4%BD%8D%E8 ...
- c4.5算法 程序语言,决策树之C4.5算法详解-Go语言中文社区
决策树之C4.5算法详解 主要内容 C4.5算法简介 分裂属性的选择--信息增益率 连续型属性的离散化处理 剪枝--PEP(Pessimistic Error Pruning)剪枝法 缺失属性值的处理 ...
最新文章
- linux 退出服务器_Vue实战091:Vue项目部署到nginx服务器
- pagerank算法实现matlab,Matlab 入门及PageRank算法求解.ppt
- python字符串补空格输出_python格式化打印字符串
- maya点线面计数_Maya课时:点线面体选择技巧视频教程_翼狐网
- JavaFX 2 GameTutorial第2部分
- MC.9 与 LIS
- RDS关系型数据库 入门 01 创建关系型数据库实例【华为云分享】
- Mysql事务,并发问题,锁机制-- 幻读、不可重复读--专题
- jQuery焦点图插件
- 如何利用国内开源镜像站,下载想要的资源
- 支付机构违规已成常态 盛付通再次被央行处罚
- 自动复制吱口令html,使用clipboard.js实现复制吱口令功能的示例代码
- SCORM标准及支持SCORM标准学习平台的设计
- 汪子嵩:论有、存在与是(如是——真如)
- Go语言自学系列 | golang开发工具
- 烤仔本仔,在线庆生,三重惊喜,大奖@你
- 天线测试重要参数整理
- 鸿蒙系统汽车中控,华为将推出车载智慧屏,搭载鸿蒙系统,支持 HiCar 系统
- 2018深信服java笔试题_深信服2018秋招编程题
- matlab程序设计基础
热门文章
- 中国古代文化常识【3】
- 强化学习基础-蒙特卡洛(Monte Carlo)
- java opennlp_如何在Java中使用OpenNLP?
- oracle18c静默安装教程,centos7安装Oracle18c
- python正弦函数_Python之正弦曲线实现方法分析
- xp计算机组策略怎么打开,WinXP系统打开组策略的命令是什么?
- 锂电池保护板测试软件,锂电池保护板测试仪
- 台式计算机 按键盘字母键 没反应6,台式电脑键盘没反应怎么回事 键盘按了没反应怎么办...
- java编程中常见的拼写错误
- 简历上怎样写期望薪资,才能让你面试时工资翻倍?