← 知识手册目录数学基础 · GESP 8 级相关跳到完整速查 ↓

PYTHON KNOWLEDGE · 17

计数原理、组合数与计算几何基础

明确有序/无序、互斥/分步与几何退化边界,再把公式转为稳定程序。

GESP 8

01 · FORMAL DEFINITION

正式定义

加法原理用于互斥方案分类求和,乘法原理用于依次完成步骤求积;排列关心顺序,组合不关心顺序。计算几何用坐标、向量、距离和方向关系把图形条件转成数值判定。

02 · MUST KNOW

学完这一章,必须说清楚的规则

  1. 01

    A(n,m)=n!/(n-m)!,C(n,m)=n!/(m!(n-m)!),并有 C(n,m)=C(n,n-m)。

  2. 02

    杨辉三角递推 C(n,m)=C(n-1,m-1)+C(n-1,m),边界 C(n,0)=C(n,n)=1。

  3. 03

    取模下的组合数算法取决于 n、模数是否为质数、查询次数和是否允许预处理。

  4. 04

    距离比较应优先比较平方,避免不必要的 sqrt 和浮点误差。

  5. 05

    三角形必须满足任意两边之和大于第三边;共线、重合、零长度是几何边界。

  6. 06

    浮点比较应按题目误差使用容差;整数坐标能用叉积时优先保持整数计算。

03 · RUNNABLE EXAMPLE

可运行示例与因果解释

PYTHON
def combinations(n, m):
    m = min(m, n - m)
    result = 1
    for i in range(1, m + 1):
        result = result * (n - m + i) // i
    return result

print(combinations(10, 3))

COMMON PITFALLS

常见误区

  • 未判断顺序是否重要就套排列组合公式
  • 模意义下直接做普通除法
  • 浮点数直接用 ==
  • 漏掉共线或退化图形

SCOPE & BOUNDARIES

适用边界

  • 概率需要在计数结果上再建立样本空间,不等同于组合数本身。
  • 复杂计算几何涉及方向、相交、凸包等更多主题,本章只覆盖课程实际使用的基础判定。