基于排列与组合输出多少中情况详解
- 更新时间:2023-01-04 08:32:39
- 编辑:空今雨
给网友们整理c++相关的编程文章,网友毋逸思根据主题投稿了本篇教程内容,涉及到排列、组合、排列与组合相关内容,已被164网友关注,如果对知识点想更进一步了解可以在下方电子资料中获取。
参考资料
- 《C及C++程序设计(第3版)》教案,源代码 配套资源 / 1.95 MB / 张富 推荐度:
- C++ Primer Plus(第6版) PDF 电子书 / 162.4 MB / Stephen 推荐度:
- c++面向对象程序设计 课后答案 / 1.1 MB / 姚全珠 推荐度:
正文内容
排列与组合
排列
#include <stdio.h> // 主要是找到当前要排的 和后面要排数的关系 int swap(int m,int n) { if(n==1) return m-n+1; return m*swap(m-1,n-1); } int main() { int m=5,n=4; printf("%d",swap(5,4)); }
组合 计算3个A,2个B可以组成多少种排列的问题
思路一:
#include <stdio.h> /* 3个A,2个B 根据排列 第一个位置 可以是A也可以是B 如A_ _ _ _ 或着 B_ _ _ _ 由于第一个位置 确定了 一个字母 所以 如果确定的是A 则在剩下的四个位置中 就只能有 2个A ,2个B了 所以总的情况就是 A_ _ _ _ +B_ _ _ _ 两个排列总数之和 */ int f(int m, int n) { if(m==0 || n==0) return 1; return f(m,n-1)+f(m-1,n); } void main () { printf("%d ",f(3,2)); }
思路二:
#include <stdio.h> #include <math.h> /* 对于(m+n)!种排列方法是针对所有元素都不重复的情况下计算出的, 如果存在重复,则需要筛选出这些重复的排列情况。 于是我们可以采用捆绑法,将相同的元素绑在一起,由于是组合,所以内部元素的排列问题不予考虑, 这些排列数总共有m!和n!,因此去掉这些重复情况后就得到(m+n)!/(m!*n!)中排法。 m个A n个B的排列一共有(m+n)!/(m!*n!) 而m-1个A n-1个B的排列一共有(m+n-2)!/((m-1)!*(n-1)!) 所以m个A n个B的排列数=m-1个A n-1个B的排列数*(m+n)*(m+n-1)/(m*n) 关键是找到(m个A和n个B的排列)和(m-1个A和n-1个B)之间关系 */ int f(int m, int n) { if(m==0 || n==0) return 1; return f(m-1,n-1)*(m+n-1)*(m+n)/m/n; } void main () { printf("%d ",f(3,2)); }
c++相关教程
-
C++输出上三角/下三角/菱形/杨辉三角形(实现代码)
给网友朋友们带来一篇关于C++的教程,本篇文章是对C++中输出上三角/下三角/菱形/杨辉三角形的示例代码进行了详细的分析介绍,需要的朋友参考下
发布时间:2022-09-23
-
Lua和C/C++互相调用实例分析
给网友们整理关于C++的教程,今天小编就为大家分享一篇关于Lua和C/C++互相调用实例分析,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
发布时间:2022-06-23
-
JNI实现最简单的JAVA调用C/C++实例代码讲解
这篇文章主要介绍了JNI实现最简单的JAVA调用C/C++代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
发布时间:2019-09-02
-
C++保存txt文件实现方法代码实例
这篇文章主要介绍了C++保存txt文件实现方法代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
发布时间:2022-04-08
-
C/C++指针和取地址的方法
C/C++指针和取地址的方法,需要的朋友可以参考一下
发布时间:2022-04-01
-
VS2019中CMake项目如何指定c++语言标准
给网友们整理关于c++的教程,这篇文章主要介绍了VS2019中CMake项目如何指定c++语言标准,需要的朋友可以参考下
发布时间:2022-11-03
-
用C/C++代码检测ip能否ping通(配合awk和system可以做到批量检测)
今天小编就为大家分享一篇关于用C/C++代码检测ip能否ping通(配合awk和system可以做到批量检测),小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
发布时间:2022-04-21