Bỏ qua để đến nội dung

Quy tắc cộng, quy tắc nhân

Mức độ: Cơ bản

“Có bao nhiêu cách…?”, “Có bao nhiêu số…?” là câu hỏi rất hay gặp trong cả đề Tin học trẻ lẫn đề học sinh giỏi. Với số nhỏ, máy tính có thể thử hết mọi khả năng (vét cạn). Nhưng khi số khả năng lên tới hàng tỉ, ta cần đếm bằng phép tính. Hai công cụ đầu tiên là quy tắc cộng và quy tắc nhân.

Căng tin có 3 món mặn và 2 món chay. Chọn một món ăn: có 3 + 2 = 5 cách.

Quy tắc: nếu việc chọn chia thành các nhóm không trùng nhau, mỗi lựa chọn thuộc đúng một nhóm, thì số cách bằng tổng số cách của từng nhóm.

Quy tắc nhân: làm lần lượt nhiều bước

Phần tiêu đề “Quy tắc nhân: làm lần lượt nhiều bước”

Thỏ có 3 áo (đỏ, xanh, vàng) và 2 quần (đen, trắng). Mặc một bộ gồm 1 áo và 1 quần:

quần đenquần trắng
áo đỏđỏ - đenđỏ - trắng
áo xanhxanh - đenxanh - trắng
áo vàngvàng - đenvàng - trắng

Mỗi áo đi với 2 quần, có 3 áo, nên có 3 × 2 = 6 bộ.

Quy tắc: nếu công việc gồm nhiều bước liên tiếp, bước 1 có a cách, với mỗi cách đó bước 2 có b cách, …, thì số cách làm cả công việc là a × b × …

Nhận biết nhanh: chữ “hoặc” (chọn một trong các nhóm) thường dùng quy tắc cộng; chữ “và”, “lần lượt” (làm đủ các bước) thường dùng quy tắc nhân.

Từ nhà đến trường có 3 đường đi qua nhà sách và mỗi đường từ nhà sách đến trường có 4 lối, ngoài ra còn 2 đường đi thẳng không qua nhà sách:

  • Đi qua nhà sách: 3 × 4 = 12 cách (quy tắc nhân).
  • Đi thẳng: 2 cách.
  • Tổng: 12 + 2 = 14 cách (quy tắc cộng).

Có bao nhiêu số có 3 chữ số khác nhau? Chọn lần lượt từng chữ số, bắt đầu từ chữ số có điều kiện khó nhất:

BướcĐiều kiệnSố cách
Chữ số hàng trămkhác 09
Chữ số hàng chụckhác chữ số hàng trăm (được là 0)9
Chữ số hàng đơn vịkhác hai chữ số trên8

Đáp số 9 × 9 × 8 = 648.

Lưu ý: chọn chữ số hàng trăm trước vì nó có điều kiện riêng (khác 0). Nếu chọn hàng đơn vị trước, số cách của hàng trăm sẽ phụ thuộc vào việc hàng đơn vị có phải là 0 hay không, và không nhân thẳng được nữa. Khi gặp tình huống như vậy, chia thành các trường hợp rồi cộng lại (bài 7).

“Có bao nhiêu số có 4 chữ số chứa ít nhất một chữ số 0?” Đếm trực tiếp rất rối (một số 0, hai số 0, ở vị trí nào…). Đếm phần còn lại thì dễ:

  • Mọi số có 4 chữ số: 9 × 10 × 10 × 10 = 9000.
  • Số có 4 chữ số không có chữ số 0 nào: 9 × 9 × 9 × 9 = 6561.
  • Đáp số: 9000 - 6561 = 2439.

Khi n nhỏ, viết thêm chương trình thử hết mọi khả năng là cách tự kiểm tra công thức rất tốt. Ví dụ đếm số có 3 chữ số khác nhau:

dem = 0
for x in range(100, 1000):
s = str(x)
if s[0] != s[1] and s[0] != s[2] and s[1] != s[2]:
dem += 1
print(dem, 9 * 9 * 8) # 648 648

Vét cạn chỉ dùng được khi số khả năng nhỏ (khoảng dưới 108). Công thức thì dùng được với mọi n, ví dụ số có 10 chữ số khác nhau: 9 × 9 × 8 × 7 × … × 1 = 3265920, tính ngay mà không cần duyệt 9 × 109 số.

Gồm 23 bài, chia thành 5 nhóm từ dễ đến khó. Mỗi bài có một dữ liệu kiểm tra: các bạn chạy chương trình của mình với dữ liệu đó rồi so với đáp số.

Bạn Thỏ có a chiếc áo, b chiếc quần và c đôi giày (a, b, c ≤ 106). Mỗi lần đi chơi, Thỏ chọn 1 áo, 1 quần và 1 đôi giày. Có bao nhiêu cách chọn?

Ví dụ: nhập 3 2 1 thì in ra 6.

Kiểm tra: nhập 5 4 3.

Xem đáp số

60

Hướng dẫn giải chi tiết: liên hệ tác giả.

Căng tin có a món mặn, b món chay và c loại đồ uống (a, b, c ≤ 106). Mỗi suất ăn gồm một món (mặn hoặc chay) và một đồ uống. Có bao nhiêu cách chọn suất ăn?

Ví dụ: nhập 3 2 4 thì in ra 20.

Kiểm tra: nhập 12 7 9.

Xem đáp số

171

Hướng dẫn giải chi tiết: liên hệ tác giả.

Từ nhà đến nhà sách có a con đường, từ nhà sách đến trường có b con đường, ngoài ra từ nhà đến thẳng trường có c con đường không qua nhà sách (a, b, c ≤ 106). Có bao nhiêu cách đi từ nhà đến trường?

Ví dụ: nhập 3 4 2 thì in ra 14.

Kiểm tra: nhập 15 12 7.

Xem đáp số

187

Hướng dẫn giải chi tiết: liên hệ tác giả.

Mật khẩu gồm n chữ số (mỗi chữ số từ 0 đến 9, được lặp lại, n ≤ 18). Có bao nhiêu mật khẩu khác nhau?

Ví dụ: nhập 2 thì in ra 100.

Kiểm tra: nhập 6.

Xem đáp số

1000000

Hướng dẫn giải chi tiết: liên hệ tác giả.

Biển số xe gồm a chữ cái rồi b chữ số. Chữ cái lấy từ 26 chữ cái tiếng Anh nhưng không dùng chữ O và chữ I (dễ nhầm với 0 và 1); chữ số từ 0 đến 9. Nhập a, b (a + b ≤ 12), in ra số biển số khác nhau.

Ví dụ: nhập 1 2 thì in ra 2400.

Kiểm tra: nhập 2 4.

Xem đáp số

5760000

Hướng dẫn giải chi tiết: liên hệ tác giả.

Nhập n (1 ≤ n ≤ 10). Có bao nhiêu số tự nhiên có đúng n chữ số mà các chữ số đôi một khác nhau?

Ví dụ: nhập 2 thì in ra 81.

Kiểm tra: nhập 3.

Xem đáp số

648

Hướng dẫn giải chi tiết: liên hệ tác giả.

Bài 7. Số chẵn có các chữ số khác nhau

Phần tiêu đề “Bài 7. Số chẵn có các chữ số khác nhau”

Nhập n (2 ≤ n ≤ 10). Có bao nhiêu số chẵn có đúng n chữ số mà các chữ số đôi một khác nhau?

Ví dụ: nhập 2 thì in ra 41.

Kiểm tra: nhập 3.

Xem đáp số

328

Hướng dẫn giải chi tiết: liên hệ tác giả.

Nhập n (1 ≤ n ≤ 18). Có bao nhiêu số đối xứng (đọc xuôi ngược như nhau, ví dụ 12321) có đúng n chữ số?

Ví dụ: nhập 3 thì in ra 90.

Kiểm tra: nhập 5.

Xem đáp số

900

Hướng dẫn giải chi tiết: liên hệ tác giả.

Có bao nhiêu xâu độ dài n tạo từ k chữ cái cho trước (mỗi chữ dùng được nhiều lần)? Nhập n, k (kn ≤ 1018).

Ví dụ: nhập 2 3 thì in ra 9.

Kiểm tra: nhập 5 4.

Xem đáp số

1024

Hướng dẫn giải chi tiết: liên hệ tác giả.

Nhập n (1 ≤ n ≤ 18). Có bao nhiêu số có đúng n chữ số chứa ít nhất một chữ số 0?

Ví dụ: nhập 2 thì in ra 9.

Kiểm tra: nhập 4.

Xem đáp số

2439

Hướng dẫn giải chi tiết: liên hệ tác giả.

Nhập n (n ≤ 106). Đếm các số từ 1 đến n có chứa ít nhất một chữ số 7.

Ví dụ: nhập 100 thì in ra 19.

Kiểm tra: nhập 1000.

Xem đáp số

271

Hướng dẫn giải chi tiết: liên hệ tác giả.

Có bao nhiêu cách xếp n bạn (n ≤ 20) thành một hàng dọc?

Ví dụ: nhập 3 thì in ra 6.

Kiểm tra: nhập 10.

Xem đáp số

3628800

Hướng dẫn giải chi tiết: liên hệ tác giả.

Có n bạn (2 ≤ n ≤ 20) xếp thành một hàng, trong đó có An và Bình. Có bao nhiêu cách xếp sao cho An và Bình đứng cạnh nhau?

Ví dụ: nhập 3 thì in ra 4.

Kiểm tra: nhập 6.

Xem đáp số

240

Hướng dẫn giải chi tiết: liên hệ tác giả.

Có n bạn (2 ≤ n ≤ 20) xếp thành một hàng, trong đó có An và Bình. Có bao nhiêu cách xếp sao cho An và Bình không đứng cạnh nhau?

Ví dụ: nhập 3 thì in ra 2.

Kiểm tra: nhập 6.

Xem đáp số

480

Hướng dẫn giải chi tiết: liên hệ tác giả.

Có n bóng đèn (n ≤ 30), mỗi bóng có ba trạng thái: tắt, sáng xanh, sáng đỏ. Có bao nhiêu cách đặt trạng thái cho các bóng sao cho có ít nhất một bóng sáng?

Ví dụ: nhập 2 thì in ra 8.

Kiểm tra: nhập 5.

Xem đáp số

242

Hướng dẫn giải chi tiết: liên hệ tác giả.

Lá cờ có 3 sọc ngang. Có k màu (k ≤ 106), tô mỗi sọc một màu sao cho hai sọc kề nhau khác màu (sọc trên và sọc dưới được cùng màu). Có bao nhiêu cách tô?

Ví dụ: nhập 2 thì in ra 2.

Kiểm tra: nhập 5.

Xem đáp số

80

Hướng dẫn giải chi tiết: liên hệ tác giả.

Bảng có 2 hàng và n cột ô (n ≤ 30). Tô mỗi ô màu đen hoặc trắng sao cho mỗi cột có ít nhất một ô đen. Có bao nhiêu cách tô?

Ví dụ: nhập 1 thì in ra 3.

Kiểm tra: nhập 5.

Xem đáp số

243

Hướng dẫn giải chi tiết: liên hệ tác giả.

Nhập n (n ≤ 109). Đếm số cặp có thứ tự (a, b) với 1 ≤ a, b ≤ n và a + b là số chẵn.

Ví dụ: nhập 3 thì in ra 5.

Kiểm tra: nhập 2026.

Xem đáp số

2052338

Hướng dẫn giải chi tiết: liên hệ tác giả.

Cho n = 2a × 3b × 5c (a, b, c ≤ 60). Nhập a, b, c, in ra số ước của n.

Ví dụ: nhập 3 2 1 thì in ra 24.

Kiểm tra: nhập 10 6 3.

Xem đáp số

308

Hướng dẫn giải chi tiết: liên hệ tác giả.

Trong buổi gặp mặt có n người (n ≤ 109), mỗi hai người bắt tay nhau đúng một lần. Có tất cả bao nhiêu cái bắt tay?

Ví dụ: nhập 4 thì in ra 6.

Kiểm tra: nhập 2026.

Xem đáp số

2051325

Hướng dẫn giải chi tiết: liên hệ tác giả.

Trên đường thẳng d1 có n điểm, trên đường thẳng d2 song song với d1 có m điểm (n, m ≤ 106). Có bao nhiêu tam giác có ba đỉnh là ba trong số các điểm đó?

Ví dụ: nhập 2 2 thì in ra 4.

Kiểm tra: nhập 4 5.

Xem đáp số

70

Hướng dẫn giải chi tiết: liên hệ tác giả.

Lưới ô vuông có m hàng và n cột ô (m, n ≤ 106). Đếm số hình chữ nhật (kể cả hình vuông) có các cạnh nằm trên các đường kẻ của lưới.

Ví dụ: nhập 1 2 thì in ra 3.

Kiểm tra: nhập 3 5.

Xem đáp số

90

Hướng dẫn giải chi tiết: liên hệ tác giả.

Lưới ô vuông có m hàng và n cột ô (m, n ≤ 106). Đếm số hình vuông có các cạnh nằm trên các đường kẻ của lưới.

Ví dụ: nhập 2 2 thì in ra 5.

Kiểm tra: nhập 3 5.

Xem đáp số

26

Hướng dẫn giải chi tiết: liên hệ tác giả.