順列と組み合わせについて

序文

数学と組み合わせ論では、順列と組み合わせが 2 つの基本概念です。配置とは、要素のセットを特定の順序で配置する方法を指しますが、組み合わせでは、順序とは独立した方法で要素の選択が考慮されます。日常生活でも科学研究でも、順列と組み合わせは重要な役割を果たします。順列と組み合わせの原理と応用を深く理解することで、多くの興味深い複雑な問題を解決し、世界についての理解を広げることができます。この記事では、この数学的ツールをよりよく理解し、使用できるように、順列と組み合わせの基本的な概念、特性、および応用について説明します。
ここに画像の説明を挿入します

配置

A nm A _ n ^ mを使用して配置しますnメートル意味は、LaTeX \LaTeXLTEXは次のように表されます$A _ n ^ m$

計算方法

A nm A_n^mnメートルnnから始まることを意味しますn個の要素からmmを選択m個の要素の配置数A nm A_n^mnメートルまたはP ( n , m ) P(n, m)P ( n ,メートル計算式は次のとおりです:
A nm = n ! ( n − m ) ! A_n^m = \frac{n!}{(nm)!}nメートル=( n)!
ここで、n!n!n !はnnを意味しますnの阶乘、即n ! = n ⋅ ( n − 1 ) ⋅ ( n − 2 ) ⋅ … ⋅ 2 ⋅ 1 n! = n \cdot (n-1) \cdot (n-2) \cdot \ldots \cdot 2 \cdot 1=n( n1 )( n2 )21

つまり、A nm A_n^mnメートルnnから始まることを意味しますn個の異なる要素から順番にmmm個の要素を配置できる方法の数。

C++ 表現

// 计算阶乘
int factorial(int n) {
    
    
    if (n <= 1) {
    
    
        return 1;
    }
    return n * factorial(n - 1);
}

// 计算排列数
int calculatePermutation(int n, int m) {
    
    
    if (n < m) {
    
    
        return 0;  // 错误情况,返回0或抛出异常
    }
    return factorial(n) / factorial(n - m);
}

組み合わせ

C nm C _ n ^ mを使用して配置しますCnメートル意味は、LaTeX \LaTeXLTEXは次のように表されます$C _ n ^ m$

計算方法

CnmC_n^mCnメートルnnから始まることを意味しますn個の要素からmmを選択m個の要素の組み合わせの数C nm C_n^mCnメートルまたはC ( n , m ) C(n, m)C ( n ,メートル計算式は次のとおりです:
C nm = n ! m ! ( n − m ) ! C_n^m = \frac{n!}{m!(nm)!}Cnメートル=うーん( n)!
ここで、n!n!n !はnnを意味しますnの阶乘、即n ! = n ⋅ ( n − 1 ) ⋅ ( n − 2 ) ⋅ … ⋅ 2 ⋅ 1 n! = n \cdot (n-1) \cdot (n-2) \cdot \ldots \cdot 2 \cdot 1=n( n1 )( n2 )21

つまりC nm C_n^mCnメートルnnから始まることを意味しますn 個の異なる要素mm をm個の要素を組み合わせる方法の数。これは、二項係数、組み合わせ数、または順列組み合わせ数としても知られています。

または
C nm = A nmn ! C_n^m = \frac{A_n^m}{n!}Cnメートル=nメートル

この式の解釈は、nnから次のようになります。n個の要素からmm を順番にm個の要素を配置できるA nm A_n^mnメートルn! n!で割ります。n !は二重カウントを排除するためのものです。組み合わせでは要素の順序が考慮されないため、順列の数をn ! n!n !、最終的な組み合わせの数を取得します。

C++ 表現

// 计算组合数
int calculateCombination(int n, int m) {
    
    
    // 基本情况
    if (m == 0 || n == m) {
    
    
        return 1;
    }
    
    // 递归调用
    return calculateCombination(n-1, m-1) + calculateCombination(n-1, m);
}

おすすめ

転載: blog.csdn.net/Python_enjoy/article/details/132700540