嘿!好久不见……

今天我又来 水文章 发文章了

今天来介绍一下非常垃圾排列组合算法

声明:本篇文章含有手残作者画的图,大家不要介意(*_*)

学过数学的都知道,组合用“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++排列与组合算法详解相关推荐

  1. 最全排列组合算法详解以及套路总结一文突破

    项目github地址:bitcarmanlee easy-algorithm-interview-and-practice 经常有同学私信或留言询问相关问题,V号bitcarmanlee.github ...

  2. 【算法】组合数学——排列数生成算法详解(一)

    组合数学中的全排列深成算法历来是组合数学考试的重要考察点,因此在这里我简单的介绍一下6种全排列生成算法的详细过程,并借此比较它们之间的优劣之处. 不论是哪种全排列生成算法,都遵循着"原排列& ...

  3. 回溯算法详解之全排列、N皇后问题

    回溯算法详解 回溯算法框架.解决一个回溯问题,实际上就是一个决策树的遍历过程.你只需要思考 3 个问题: 1.路径:也就是已经做出的选择. 2.选择列表:也就是你当前可以做的选择. 3.结束条件:也就 ...

  4. Apollo6.0代码Lattice算法详解——Part4:计算障碍物ST/SL图

    Apollo6.0代码Lattice算法详解--Part4:计算障碍物ST/SL图 0.前置知识 1.涉及主要函数 2.函数关系 3.部分函数代码详解 3.1 lattice_planner.cc中代 ...

  5. 神经网络算法详解 01:人工神经网络基础

    本文介绍了人工智能的发展历史,基本概念,应用领域:神经元模型,神经元的学习规则以及神经网络工作原理.本系列文章来自阿里云大学人工智能学习路线中的<神经网络概览及神经网络算法详解>课程. 系 ...

  6. PnP算法详解(超详细公式推导)

    PnP算法详解 PnP概述 PnP数学模型 PnP求解方法 DLT直接线性变换法 EPnP EPnP的特点 步骤 理论推倒 1.控制点及齐次重心坐标系 2.控制点的选择 3.计算控制点在相机坐标系下的 ...

  7. 快速排序算法详解(原理,时间复杂度,实现代码)

    快速排序算法详解(原理.实现和时间复杂度) 快速排序是对冒泡排序的一种改进,由 C.A.R.Hoare(Charles Antony Richard Hoare,东尼·霍尔)在 1962 年提出. 快 ...

  8. 目标检测 RCNN算法详解

    原文:http://blog.csdn.net/shenxiaolu1984/article/details/51066975 [目标检测]RCNN算法详解 Girshick, Ross, et al ...

  9. Twitter-Snowflake,64位自增ID算法详解

    Twitter-Snowflake,64位自增ID算法详解 from: http://www.lanindex.com/twitter-snowflake%EF%BC%8C64%E4%BD%8D%E8 ...

  10. c4.5算法 程序语言,决策树之C4.5算法详解-Go语言中文社区

    决策树之C4.5算法详解 主要内容 C4.5算法简介 分裂属性的选择--信息增益率 连续型属性的离散化处理 剪枝--PEP(Pessimistic Error Pruning)剪枝法 缺失属性值的处理 ...

最新文章

  1. linux 退出服务器_Vue实战091:Vue项目部署到nginx服务器
  2. pagerank算法实现matlab,Matlab 入门及PageRank算法求解.ppt
  3. python字符串补空格输出_python格式化打印字符串
  4. maya点线面计数_Maya课时:点线面体选择技巧视频教程_翼狐网
  5. JavaFX 2 GameTutorial第2部分
  6. MC.9 与 LIS
  7. RDS关系型数据库 入门 01 创建关系型数据库实例【华为云分享】
  8. Mysql事务,并发问题,锁机制-- 幻读、不可重复读--专题
  9. jQuery焦点图插件
  10. 如何利用国内开源镜像站,下载想要的资源
  11. 支付机构违规已成常态 盛付通再次被央行处罚
  12. 自动复制吱口令html,使用clipboard.js实现复制吱口令功能的示例代码
  13. SCORM标准及支持SCORM标准学习平台的设计
  14. 汪子嵩:论有、存在与是(如是——真如)
  15. Go语言自学系列 | golang开发工具
  16. 烤仔本仔,在线庆生,三重惊喜,大奖@你
  17. 天线测试重要参数整理
  18. 鸿蒙系统汽车中控,华为将推出车载智慧屏,搭载鸿蒙系统,支持 HiCar 系统
  19. 2018深信服java笔试题_深信服2018秋招编程题
  20. matlab程序设计基础

热门文章

  1. 中国古代文化常识【3】
  2. 强化学习基础-蒙特卡洛(Monte Carlo)
  3. java opennlp_如何在Java中使用OpenNLP?
  4. oracle18c静默安装教程,centos7安装Oracle18c
  5. python正弦函数_Python之正弦曲线实现方法分析
  6. xp计算机组策略怎么打开,WinXP系统打开组策略的命令是什么?
  7. 锂电池保护板测试软件,锂电池保护板测试仪
  8. 台式计算机 按键盘字母键 没反应6,台式电脑键盘没反应怎么回事 键盘按了没反应怎么办...
  9. java编程中常见的拼写错误
  10. 简历上怎样写期望薪资,才能让你面试时工资翻倍?