C++实现分配小球问题:计算n*m个小球平均分给n个同学的方法数
以下是解决该问题的C++代码: ```cpp #include <iostream> using namespace std; const int MOD = 1e9 + 7; // 计算阶乘 long long factorial(long long num) { long long result = 1; for (long long i = 1; i <= num; i++) { result = (result * i) % MOD; } return result; } // 计算组合数 C(n, k) long long combination(long long n, long long k) { long long numerator = factorial(n); long long denominator = (factorial(k) * factorial(n - k)) % MOD; // 使用费马小定理求逆元 long long inv_denominator = 1; long long power = MOD - 2; long long base = denominator; while (power > 0) { if (power % 2 == 1) { inv_denominator = (inv_denominator * base) % MOD; } base = (base * base) % MOD; power /= 2; } return (numerator * inv_denominator) % MOD; } int main() { int n, m; cin >> n >> m; long long ans = 1; long long total = n * m; for (int i = 0; i < n; i++) { ans = (ans * combination(total, m)) % MOD; total -= m; } cout << ans << endl; return 0; } ``` ### 代码解释: 1. **`factorial` 函数**:用于计算一个数的阶乘,并对结果进行取模操作,避免溢出。 2. **`combination` 函数**:用于计算组合数 $C(n, k)$。通过计算分子和分母的阶乘,然后使用费马小定理求分母的逆元,最后得到组合数的结果。 3. **`main` 函数**:读取输入的 $n$ 和 $m$,然后使用循环计算分配小球的方法数。每次从剩余的小球中选择 $m$ 个分给一个同学,直到所有同学都分配完毕。最后输出结果。 ######[AI问答 | 554点数解答 | 2026-05-31 15:26:03]
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)401
- 班级分组难题:最少修改多少同学 id 实现公平配对?(DeepSeek | 1604点数解答 | 2026-01-11 13:28:28)74
- 巧用算法!求解班级分组中最少更改学生ID数的难题(DeepSeek | 2266点数解答 | 2026-01-13 17:47:37)55
- 班级活动分组难题:最少修改多少学生 ID 实现公平分组?(DeepSeek | 1692点数解答 | 2026-01-13 17:49:24)49
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)368
- C++ 代码实现自定义运算 x@y = x² + y² - xy 及 x@(x+y) 计算(DeepSeek | 215点数解答 | 2025-12-13 15:08:14)111
- C++ 实现根据输入正整数奇偶性计算偶数和或约数和(字节豆包 | 838点数解答 | 2026-02-28 20:23:59)80
- 解决代码WA问题:修改整数溢出问题后的计算代码(字节豆包 | 749点数解答 | 2026-05-10 16:20:03)28
- 修正代码解决计算 f(l, r) 和出现的 WA 问题(字节豆包 | 806点数解答 | 2026-05-10 16:21:37)29
- 浙闽“板凳龙”舞龙队 300 秒螺线盘入:位置与速度全揭秘(阿里通义 | 886点数解答 | 2024-09-07 10:31:31)666
- 浙闽“板凳龙”舞龙队 300 秒位置与速度数学模型揭秘(GPT | 565点数解答 | 2024-09-07 10:32:56)558
- 223节板凳龙沿等距螺线盘入:300秒内位置与速度的数学揭秘 (讯飞星火 | 443点数解答 | 2024-09-07 10:34:10)409