Hỏi về phương pháp giải bài toán tổ hợp lặp

Mình đang học tổ hợp lặp bạn nào có thể hướng dẫn cách làm bài này với ạ

Bộ bài tây có 52 lá gồm 4 loại cơ rô bích chuồn mỗi loại 13 con . số cách lấy ra 13 lá sao cho luon có 4 loại bài và lá bích không quá 7 lá

Bài này chắc là chia 6 trường hợp và phải bù (trừ) 2 lần. Nên vẽ giản đồ Venn cho dễ xem.

Riêng dạng này thì phải nắm vững khi nào dùng phép trừ (bù) sẽ lợi hơn phép cộng.

1 Like

Ta quy về bài toán tìm số bộ nghiệm (x1, x2, x3, x4) thoả mãn

x1 + x2 + x3 + x4 = 13
0 < x1 <= 7  # số lá bích
0 < x2, x3, x4  # số lá bài còn lại

Đặt x2 + x3 + x4 = t -> Có nghiệm (nhân 3! vì vai trò của 3 nghiệm không như nhau - có thể x2 lúc này đại diện cho số lá cơ được lấy ra nhưng trong trường hợp khác x2 lại đại diện cho số lá rô).

-> Tổng số nghiệm có thể của bài toán là

2 Likes

[quote=“noname00, post:3, topic:65692”]
Đặt x2 + x3 + x4 = t -> Có nghiệm[/quote]
Chỗ này có công thức à bạn?

Đó là bài toán chia kẹo anh ạ.

F(13,1) * F(13,1) * F(13,1) * F(36,9) * F(13,1) +
F(13,1) * F(13,1) * F(13,1) * F(36,8) * F(13,2) +
… +

F(13,1) * F(13,1) * F(13,1) * F(36,3) * F(13,7)

F(n, k) chập k phần tử của n

Tìm cách loop ra là ra kết quả

[spoiler]Update: Kết quả tương đương:

= 13131313F(42,9)*F(12,6)[/spoiler]
Không biết dùng cái gì để tính đc số này nữa :cold_sweat:

Sao lại nhân C(9, 36) làm gì nữa hả bạn?

Rút đủ 3 con rô, cơ tép rồi thì rút 9 con bất kỳ trong đống 36 con còn lại

1 Like

À rồi, mình tự dưng hơi chậm hiểu =))

Bạn tính trường hợp :

  • có đúng 8 lá bích và 0 đủ 4 loai bài : 13C8*26C5 (1)
  • có đúng 9 lá bích và 0 đủ 4 loai bài : 13C9 *26C4 (2)
  • có đúng 10 lá bích và 0 đủ 4 loai bài : 13C10*26C3 (3)
  • có đúng 8 lá bích và đủ 4 loại bài : 13C8*13C1*13C1*13C1*36C2 (4)
  • có đúng 9 lá bích và đủ 4 loại bài : 13C9*13C1*13C1*13C1*36C1 (5)
  • có đúng 10 lá bích và đủ 4 loại bài : 13C10*13C1*13C1*13C1 (6)
  • có đúng 11 lá bích : 13C11*26C2 (7)
  • có đúng 12 lá bích : 13C12*26C1 (8)
  • có đúng 13 lá bích 13C13=1 (9)

-> TH nhỏ hơn 7 lá và đủ 4 loại bài : 52C13 - (1)-(2)-(3) -(4)-(5)-(6)-(7)-(8)-(9)

10 bich va du 4 bo thi la 14 la bai roi … con nhieu truong hop ban sai nua

10 lá bích và đủ 4 loại bài chữ và mà

Mỗi loại lấy đủ 1 con 13*13*13*13 (cách) * Số cách lấy 9 con bất kỳ trong đống 48 - 6 (bích) * Số cách quẳng 6 con bích bất kỳ trong số 12 con bích.

cách này sao ít quá vậy, bây giờ giả sử 39 lá khác bích, lấy 6 lá sao cho có 3 lá mỗi loại, có ít nhất 1 cách. Từ 13 lá bích chọn ra 7 lá là 13C7 = 1716 cách, vậy số cách hợp lệ phải > 1716 cách, làm sao chỉ có 966 cách được @_@

1 Like

Em quên 13C7 rồi, thanks anh nha.

Không phải :slight_smile: ý là mỗi chất 13 cây khác nhau rõ ràng chứ đâu có lẫn với nhau vậy.

1 Like

tính sao ra hơn 600 tỷ cách đây nè @@ 602065365902 cách @@

#include <iostream>

using Int = long long;
const int kSuits = 4;
const int kValues = 13;

// Return nCk. If n < k, return 0 instead of throwing exception
Int C(int n, int k)
{
    if (n < k) return 0;
    Int ret = 1;
    for (int i = 1; n > 0 && i <= k; ++i, --n)
        ret = ret * n / i;
    return ret;
}

// Number of ways of choosing `k` cards from a deck consists of
//only `s` types of suits, such that all `s` suits appear in `k` cards.
Int S(int k, int s)
{
    Int ret = 0;
    for (int i = 0, n = kValues * s; i <= s; ++i, n -= kValues)
        ret += (i % 2 ? -C(s, i) : C(s, i)) * C(n, k);
    return ret;
}

// Number of ways of choosing `k` cards from a standard deck,
//such that all 4 suits appear in `k` cards,
//and there are exact `i` Spades (1 <= i <= 13) in `k` cards.
Int M(int k, int i)
{
    return C(kValues, i) * S(k - i, kSuits - 1);
}

int main()
{
    int cardsDealt = 13;
    
    Int sum = 0;
    for (int i = 1; i <= 7; ++i)
        sum += M(cardsDealt, i);
    std::cout << sum << "\n";
}
1 Like

Em quy ước là x2, x3, x4 là số quân bài lấy được ở mỗi chất, vai trò của chúng không như nhau nên mới phải nhân 3!.

cái gì tới 1013 ghê vậy, chọn 13 lá bất kì từ 52 lá bài là 52C13 = 6.35x1011 thôi mà :joy:

nhìn lại 6.02x1011 cũng hơi bị bự, như vậy thì 94.81% lần chia bài là ra bộ 13 lá thỏa đề bài, ko biết có đúng ko :joy:

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?