排列组合是组合学最基本的概念。
所谓排列,就是指从给定个数的元素中取出指定个数的元素进行排序。
组合则是指从给定个数的元素中仅仅取出指定个数的元素,不考虑排序。
排列组合的中心问题是研究给定要求的排列和组合可能出现的情况总数。
排列组合与古典概率论关系密切。
用排列的情况:例如,一个班级有50名同学,从中选出5名同学站成一排,算出有多少种排法,这时使用排列。
用组合的情况:例如,一个班级有50名同学,从中选出5名同学去扫地,算出有多少选法,这时使用组合。
用算法实现排列组合的方法是递归算法。
递归算法是一种直接或间接地调用自身的算法。
在计算机编写程序中,递归算法对解决一大类问题是十分有效的,它往往使算法的描述简洁而且易于理解。
递归算法的基本思想就是把规模大的问题转化为规模小的相似的子问题来解决,特别地,在函数实现时,因为解决大问题的方法和解决小问题的方法往往是同一个方法,所以就产生了函数调用它自身的情况,这也正是递归的定义所在,格外重要的是,这个解决问题的函数必须有明确的结束条件,否则就会导致无限递归的情况。
递归算法通常很直白地描述了一个问题的求解过程,是最容易被想到解决方式。
排列组合是组合学最基本的概念。
所谓排列,就是指从给定个数的元素中取出指定个数的元素进行排序。
组合则是指从给定个数的元素中仅仅取出指定个数的元素,不考虑排序。
排列组合的中心问题是研究给定要求的排列和组合可能出现的情况总数。
排列组合与古典概率论关系密切。
虽然数学始于结绳计数的远古时代,由于那时社会的生产水平的发展尚处于低级阶段,谈不上有什么技巧。
随着人们对于数的了解和研究,在形成与数密切相关的数学分支的过程中,如数论、代数、函数论以至泛函的形成与发展,逐步地从数的多样性发现数数的多样性,产生了各种数数的技巧。