欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2013年05月08日 16:00:37   作者:  
本篇文章對(duì)排列與組合輸出多少中情況進(jìn)行了介紹。需要的朋友參考下

排列

復(fù)制代碼 代碼如下:

#include <stdio.h>
// 主要是找到當(dāng)前要排的 和后面要排數(shù)的關(guān)系
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));

}

組合

計(jì)算3個(gè)A,2個(gè)B可以組成多少種排列的問(wèn)題

思路一:

復(fù)制代碼 代碼如下:

#include <stdio.h>

/*
  3個(gè)A,2個(gè)B 根據(jù)排列 第一個(gè)位置
  可以是A也可以是B 如A_ _ _ _ 或著 B_ _ _ _ 由于第一個(gè)位置
  確定了 一個(gè)字母 所以 如果確定的是A 則在剩下的四個(gè)位置中
  就只能有 2個(gè)A ,2個(gè)B了 所以總的情況就是 A_ _ _ _ +B_ _ _ _ 兩個(gè)排列總數(shù)之和
*/
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));
}


思路二:
復(fù)制代碼 代碼如下:

#include <stdio.h>
#include <math.h>

/*
       對(duì)于(m+n)!種排列方法是針對(duì)所有元素都不重復(fù)的情況下計(jì)算出的,
    如果存在重復(fù),則需要篩選出這些重復(fù)的排列情況。
    于是我們可以采用捆綁法,將相同的元素綁在一起,由于是組合,所以?xún)?nèi)部元素的排列問(wèn)題不予考慮,
    這些排列數(shù)總共有m!和n!,因此去掉這些重復(fù)情況后就得到(m+n)!/(m!*n!)中排法。

    m個(gè)A n個(gè)B的排列一共有(m+n)!/(m!*n!)
 而m-1個(gè)A n-1個(gè)B的排列一共有(m+n-2)!/((m-1)!*(n-1)!)
 所以m個(gè)A n個(gè)B的排列數(shù)=m-1個(gè)A n-1個(gè)B的排列數(shù)*(m+n)*(m+n-1)/(m*n) 

   關(guān)鍵是找到(m個(gè)A和n個(gè)B的排列)和(m-1個(gè)A和n-1個(gè)B)之間關(guān)系

*/
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));
}

相關(guān)文章

  • 解析c語(yǔ)言switch中break語(yǔ)句的具體作用

    解析c語(yǔ)言switch中break語(yǔ)句的具體作用

    以下是對(duì)c語(yǔ)言switch中break語(yǔ)句的作用進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過(guò)來(lái)參考下
    2013-07-07
  • QT圓形圖像剪切功能實(shí)現(xiàn)

    QT圓形圖像剪切功能實(shí)現(xiàn)

    這篇文章主要介紹了QT圓形圖像剪切,實(shí)現(xiàn)代碼包括剪切代碼,完整QML源碼,C++代碼,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-10-10
  • c語(yǔ)言中g(shù)etch,getche,getchar的區(qū)別

    c語(yǔ)言中g(shù)etch,getche,getchar的區(qū)別

    getche() 和getch()很相似,它也需要引入頭文件conio.h,那它們之間的區(qū)別又在哪里呢?不同之處就在于getch()無(wú)返回顯示,getche()有返回顯示
    2013-09-09
  • C++實(shí)現(xiàn)LeetCode(117.每個(gè)節(jié)點(diǎn)的右向指針之二)

    C++實(shí)現(xiàn)LeetCode(117.每個(gè)節(jié)點(diǎn)的右向指針之二)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(117.每個(gè)節(jié)點(diǎn)的右向指針之二),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • 淺析C++編程當(dāng)中的線程

    淺析C++編程當(dāng)中的線程

    這篇文章主要介紹了淺析C++編程當(dāng)中的線程,線程在每一種編程語(yǔ)言中都是重中之重,需要的朋友可以參考下
    2015-07-07
  • 數(shù)據(jù)結(jié)構(gòu) 紅黑樹(shù)的詳解

    數(shù)據(jù)結(jié)構(gòu) 紅黑樹(shù)的詳解

    這篇文章主要介紹了數(shù)據(jù)結(jié)構(gòu) 紅黑樹(shù)的詳解的相關(guān)資料,數(shù)據(jù)結(jié)構(gòu)中的二叉樹(shù)查找,紅黑樹(shù)的講解,需要的朋友可以參考下
    2017-07-07
  • C++第三方日志庫(kù)log4cplus的安裝與使用配置教程

    C++第三方日志庫(kù)log4cplus的安裝與使用配置教程

    log4cplus是C++編寫(xiě)的開(kāi)源的日志系統(tǒng),log4cplus具有線程安全、靈活、以及多粒度控制的特點(diǎn),本文給大家介紹C++第三方日志庫(kù)log4cplus的安裝與使用教程,感興趣的朋友一起看看吧
    2022-02-02
  • Qt創(chuàng)建項(xiàng)目實(shí)戰(zhàn)之手把手創(chuàng)建第一個(gè)Qt項(xiàng)目

    Qt創(chuàng)建項(xiàng)目實(shí)戰(zhàn)之手把手創(chuàng)建第一個(gè)Qt項(xiàng)目

    我們?cè)谶M(jìn)行軟件開(kāi)發(fā)學(xué)習(xí)時(shí),有時(shí)候需要qt軟件進(jìn)行代碼的敲寫(xiě),下面這篇文章主要給大家介紹了關(guān)于Qt創(chuàng)建項(xiàng)目實(shí)戰(zhàn)之手把手創(chuàng)建第一個(gè)Qt項(xiàng)目的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-04-04
  • C++ 迭代器失效問(wèn)題解決

    C++ 迭代器失效問(wèn)題解決

    在C++中,當(dāng)一個(gè)vector進(jìn)行了插入或刪除操作時(shí),其迭代器可能會(huì)失效,本文就來(lái)介紹一下C++ 迭代器失效問(wèn)題解決,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • VC中BASE64編碼和解碼使用詳解

    VC中BASE64編碼和解碼使用詳解

    Base64是一種很常用的編碼方式,利用它可以將任何二進(jìn)制的字符編碼到可打印的64個(gè)字符之中, 這樣,不管是圖片,中文文本等都可以編碼成只有ASCII的純文本。
    2015-11-11

最新評(píng)論