麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > C > 正文

基于排列與組合輸出多少中情況詳解

2020-01-26 16:15:54
字體:
來源:轉載
供稿:網友

排列

復制代碼 代碼如下:

#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));
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 九九色网站 | 鲁丝一区二区二区四区 | 精品国产91久久久久久久 | 91久久在线观看 | 欧美日韩一区,二区,三区,久久精品 | 国产精品av久久久久久网址 | 一级免费特黄视频 | 欧美成人午夜一区二区三区 | 毛片视频播放 | 91色一区二区三区 | 欧美黄色一级片视频 | 深夜福利视频绿巨人视频在线观看 | 性看小视频| 久久国产综合精品 | 蜜桃传媒视频麻豆第一区免费观看 | 久久一本日日摸夜夜添 | 久久影院免费观看 | 久久久一区二区三区视频 | 羞羞色网站 | 久久思思爱 | h视频在线免费观看 | 一本在线高清码电影 | 久久精品视频国产 | www.理论片 | 黄色一级片毛片 | 亚洲一区二区三区91 | 国产免费小视频在线观看 | 亚洲人片在线观看 | 午夜男人免费视频 | 久久精品亚洲国产奇米99 | 九九热精品视频在线免费观看 | 中文字幕免费一区 | 欧美成人免费电影 | 91九色福利 | 在线观看免费污视频 | 日韩精品中文字幕一区二区 | 欧美精品免费一区二区三区 | 男女无套免费视频 | 久久成人亚洲 | 欧美日韩1区2区3区 黄片毛片一级 | 毛片在哪看 |