Qo‘llanma · Dasturlash
combinatorics
2 ta masala Masalalar ro‘yxatida
Nazariya
Nechta usulda tanlash yoki joylashtirish mumkinligini sanash.
| Nima | Formula | Python |
|---|---|---|
| tartiblash | n! | math.factorial(n) |
| k tasini tartib bilan | n! / (n−k)! | math.perm(n, k) |
| k tasini tartibsiz | n! / (k!(n−k)!) | math.comb(n, k) |
Paskal uchburchagi
C(n, k) = C(n−1, k−1) + C(n−1, k) — modul bo‘yicha ko‘p C kerak bo‘lsa, jadvalni shunday to‘ldiring.
Juftliklarni sanash
Bir xil elementlardan juftliklar: har qiymat c marta uchrasa, c·(c−1)/2 juftlik.
from collections import Counter
pairs = sum(c * (c - 1) // 2 for c in Counter(nums).values())
Katta n va modul
Faktoriallarni va ularning teskarisini oldindan hisoblang: fact[i], inv_fact[i], so‘ng
C(n, k) = fact[n] · inv_fact[k] · inv_fact[n−k] mod p.
Easy
- Easy
- Easy