当前位置:首页数学 > 正文

《排列与组合》野牛程序员少儿趣味讲解

作者:野牛程序员:2025-05-12 08:03:59数学阅读 2052
《排列与组合》野牛程序员少儿趣味讲解

🎲《排列与组合》少儿趣味讲解

懂得排列与组合,就像掌握了“数学魔法”!可以计算出各种可能性的数量!


🔢 一、排列是什么?

排列强调顺序不同算不同种。

📌 举例:
班里选出 3 名学生站队,排成一行,顺序不同视为不同排列。

  • 小红、小明、小刚:

    • 小红-小明-小刚

    • 小明-小红-小刚

    • 小刚-小红-小明
      …都算不同的排列!

✅ 排列公式(A)

从 n 个中选 r 个,顺序有关:

A(n,r)=n×(n−1)×(n−2)×⋯×(n−r+1)

或简写为:

A(n,r)=n!/(n−r)!


🧮 二、组合是什么?

组合不看顺序,只关注选了哪些人。

📌 举例:

  • 小红、小明、小刚选出 2 人参加活动,不管站位,只要是这两人就一样。

  • 小红、小明

  • 小明、小红 ← 这两个算一种!

✅ 组合公式(C)

从 n 个中选 r 个,不看顺序:

C(n,r)=n!/r!⋅(n−r)!


🎓 三、C++ 代码演示(阶乘、排列、组合)

#include <iostream>
using namespace std;

// 阶乘函数
long long factorial(int n) {
    long long result = 1;
    for(int i = 2; i <= n; ++i)
        result *= i;
    return result;
}

// 排列数 A(n, r)
long long permutation(int n, int r) {
    return factorial(n) / factorial(n - r);
}

// 组合数 C(n, r)
long long combination(int n, int r) {
    return factorial(n) / (factorial(r) * factorial(n - r));
}

int main() {
    int n = 5, r = 3;
    cout << "从 " << n << " 个中选 " << r << " 个的排列数 A(n, r) = " << permutation(n, r) << endl;
    cout << "从 " << n << " 个中选 " << r << " 个的组合数 C(n, r) = " << combination(n, r) << endl;
    return 0;
}

✅ 输出:

从 5 个中选 3 个的排列数 A(n, r) = 60  
从 5 个中选 3 个的组合数 C(n, r) = 10

📦 四、生活中的应用场景

场景属于哪类
安排座位排列
抽奖选人组合
排名次、分顺序排列
抽队员组成小组,不看顺序组合


✍️ 练习题(可打印打卡)

  1. 6 个孩子排成一行,有多少种站法?

  2. 从 10 个中选出 3 个送礼物,不看顺序,有几种方案?

  3. 选班长、副班长从 20 人中选出,一共多少种可能组合(有顺序)?


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
  • 《排列与组合》野牛程序员少儿趣味讲解
  • 相关推荐

    最新推荐

    热门点击