组合数怎么编程

时间:2025-01-24 17:31:56 网络游戏

计算组合数通常使用以下公式:

\[ C(n, r) = \frac{n!}{r!(n-r)!} \]

其中 \( n! \) 表示 \( n \) 的阶乘,即 \( n \times (n-1) \times (n-2) \times \ldots \times 1 \)。

1. Python

```python

def factorial(n):

if n == 0:

return 1

else:

return n * factorial(n - 1)

def combination(n, k):

return factorial(n) // (factorial(k) * factorial(n - k))

示例用法

n = 5

k = 2

print("C({}, {}) = {}".format(n, k, combination(n, k)))

```

2. C语言

```c

include

unsigned long long factorial(unsigned int n) {

unsigned long long result = 1;

for (int i = 1; i <= n; i++) {

result *= i;

}

return result;

}

int main() {

unsigned int m, k;

printf("Input m, k (m >= k > 0): ");

scanf("%u,%u", &m, &k);

unsigned long long p = factorial(m) / (factorial(k) * factorial(m - k));

printf("p = %llu\n", p);

return 0;

}

```

3. Java

```java

public class Combination {

public static void main(String[] args) {

int n = 5;

int k = 2;

System.out.println("C(" + n + ", " + k + ") = " + combination(n, k));

}

public static long combination(int n, int k) {

return factorial(n) / (factorial(k) * factorial(n - k));

}

public static long factorial(int n) {

long result = 1;

for (int i = 1; i <= n; i++) {

result *= i;

}

return result;

}

}

```

4. JavaScript

```javascript

function factorial(n) {

if (n === 0) {

return 1;

} else {

return n * factorial(n - 1);

}

}

function combination(n, k) {

return factorial(n) / (factorial(k) * factorial(n - k));

}

// 示例用法

let n = 5;

let k = 2;

console.log("C(" + n + ", " + k + ") = " + combination(n, k));

```

5. C++

```cpp

include

unsigned long long factorial(unsigned int n) {

unsigned long long result = 1;

for (int i = 1; i <= n; i++) {

result *= i;

}

return result;

}

int main() {

unsigned int m, k;

std::cout << "Input m, k (m >= k > 0): ";

std::cin >> m >> k;

unsigned long long p = factorial(m) / (factorial(k) * factorial(m - k));

std::cout << "p = "<< p << std::endl;

return 0;

}

```

这些代码示例展示了如何在不同的编程语言中计算组合数。你可以选择适合你的语言进行实现。