如何运用java语言实现乘法原理
首先说明几个概念:
乘法原理:做一件事,完成它需要分成n个步骤,做第一 步有m1种不同的方法,做第二步有m2不同的方法,……,做第n步有mn不同的
方法,那么完成这件事共有 N=m1m2m3…mn 种不同的方法。这是概率学中的理解
排列:一般地,从n个不同元素中取出m(m≤n)个元素,按照一定的顺序排成一列,叫做从n个元素中取出m个元素的一个排列。
全排列:n个不同元素全部取出的一个排列,叫做n个不同元素的一个全排列。这是组合数学中的理解。
无论何种理解:用代数都可以表示成几个数的连乘,为了研究方便,我们假定我们要用程序解决5以内的阶乘(五个元素以内的全排列)。求阶乘很简单,但是如果我们要求将每一种不同的排列展示,又该如何去解决呐?
例如对“abcd” ,用程序求全排列数,并展示每一个要素。
对于这个问题:我们先进行简单的分析:
若求全排数,我们可以运用上篇日志的方法进行求解:
sum(int n){
if(n==0) //数学中有0的阶乘为1
return 1;
else
return n*sum(n-1);
}
分析第二个问题,既然是全排列,对于abcd这四个字母,我们只要让每一个字母当一次排头,即是4;在加上三个字母的全排列,以此类推,到剩下一个字母的时候,那么它