Kết nối qua MCP →

Nhập phép tính

Các chất trong bộ bài
Các số trong bộ bài

Công thức

Công thức: Công Cụ Tạo Lá Bài Tây Ngẫu Nhiên
Show calculation steps (1)
  1. Fisher-Yates shuffle (without replacement)

    Fisher-Yates shuffle (without replacement): Công Cụ Tạo Lá Bài Tây Ngẫu Nhiên

    For k from N-1 down to 1, choose j uniformly and swap, producing an unbiased random permutation; take the first numSamples cards.

Quảng cáo

Kết quả

Số lá đã rút
2
from a deck of 52 cards
Ten of Diamonds
Six of Diamonds
Kích thước bộ bài 52 cards
Các lá đã rút Ten of Diamonds, Six of Diamonds

Công cụ này dùng để làm gì

Công cụ Tạo Lá Bài Tây Ngẫu Nhiên giúp bạn rút một hoặc nhiều lá bài từ một bộ bài tây tiêu chuẩn ảo vừa được trộn lại. Bạn tự quyết định rút bao nhiêu lá, có tùy chỉnh bộ bài hay không, và mỗi lá rút ra sẽ được đặt lại vào bộ (có hoàn lại) hay để riêng ra (không hoàn lại). Đây là trợ thủ đắc lực cho các trò chơi bài, bài giảng xác suất trên lớp, màn ảo thuật, việc đưa ra quyết định, hay bất cứ khi nào bạn cần một lá bài ngẫu nhiên thật sự công bằng và không thiên vị.

Bộ bài chuẩn 52 lá xếp theo chất và hạng cùng hai lá phăng teo
Một bộ bài chuẩn: 13 hạng trên bốn chất, cộng thêm phăng teo tùy chọn.

Cách sử dụng

Nhập số lá bài muốn rút, chọn chế độ rút và đặt số lá hiển thị trên mỗi hàng. Trong phần Thiết Lập Bộ Bài, bạn có thể bật/tắt từng chất (Tép, Rô, Cơ, Bích) và từng số (từ 2 đến Át), đồng thời thêm 0, 1 hoặc 2 lá joker. Bộ bài thực tế sẽ gồm mọi cặp số-và-chất đều được tick chọn, cộng với số joker bạn thêm vào. Mặc định, bộ bài là đầy đủ 52 lá.

Giải thích công thức

Bộ bài là một danh sách gồm \(N\) lá. Để rút một lá, ta tính chỉ số ngẫu nhiên đều

$$i = \lfloor \text{random()} \times N \rfloor$$

trong đó random() trả về một số thực trong khoảng \([0, 1)\). Ở chế độ "Có hoàn lại", mỗi lần rút đều độc lập và lấy từ toàn bộ bộ bài, nên cùng một lá có thể xuất hiện nhiều lần. Ở chế độ "Không hoàn lại", ta thực hiện thuật toán trộn Fisher-Yates — với \(k\) chạy từ \(N-1\) xuống 1, ta chọn

$$j = \lfloor \text{random()} \times (k+1) \rfloor,\quad D[k] \leftrightarrow D[j]$$

rồi hoán đổi vị trí \(k\) và \(j\) — sau đó lấy các lá đầu tiên, đảm bảo không bị trùng lặp.

Quảng cáo
Giá trị ngẫu nhiên từ 0 đến 1 ánh xạ tới một chỉ số trong mảng các lá bài
Một phân số ngẫu nhiên nhân với kích thước bộ bài \(N\) chọn ra chỉ số một lá bài.

Ví dụ minh họa

Dùng bộ bài mặc định 52 lá, rút 2 lá ở chế độ "Có hoàn lại": giả sử random() trả về 0,0769 rồi đến 0,6442. Chỉ số lá 1

$$\lfloor 0{,}0769 \times 52 \rfloor = 3$$

chỉ số lá 2

$$\lfloor 0{,}6442 \times 52 \rfloor = 33$$

Kết quả là một cặp lá bài có thứ tự, chẳng hạn "5 Tép" và "9 Bích", được hiển thị hai lá trên một hàng.

Câu hỏi thường gặp

Chế độ Có hoàn lại và Không hoàn lại khác nhau thế nào? Có hoàn lại nghĩa là rút rồi đặt lá bài trở lại (có thể bị trùng); Không hoàn lại nghĩa là rút mà không đặt lại (mọi lá đều khác nhau, giống như chia một ván bài).

Tôi có thể rút nhiều lá hơn số lá trong bộ bài không? Chỉ ở chế độ Có hoàn lại. Ở chế độ Không hoàn lại, số lá rút bị giới hạn bằng kích thước bộ bài, vì bạn không thể chia ra nhiều lá khác nhau hơn số lá hiện có.

Joker được xử lý ra sao? Joker không có chất và đơn giản được gọi là "Joker". Khi có hai joker ở chế độ Không hoàn lại, chúng được tính là hai lần rút khác nhau dù cùng tên gọi.

Cập nhật lần cuối: