Skip to main content
🟢 Beginner

Factorial Calculator

Calculate the factorial of any non-negative integer. n! = n × (n-1) × … × 2 × 1. This free online math calculator gives you instant step-by-step results.

<section class="content-section">
    <h2>Hiểu Về Giai Thừa</h2>
    <p>Giai thừa của một số nguyên không âm n, được viết là n!, là tích của tất cả các số nguyên dương từ 1 đến n. Định nghĩa: <strong>n! = n × (n−1) × (n−2) × ... × 2 × 1</strong>. Trường hợp đặc biệt: <strong>0! = 1</strong> theo định nghĩa (không phải tính toán) — điều này cần thiết để các công thức tổ hợp hoạt động nhất quán.</p>
    <p>Giai thừa tăng trưởng cực kỳ nhanh chóng — nhanh hơn bất kỳ đa thức nào hoặc thậm chí hầu hết các hàm mũ. 5! = 120; 10! = 3,628,800; 15! = 1,307,674,368,000; 20! ≈ 2.43 × 10^18; 100! ≈ 9.33 × 10^157. Số 170! xấp xỉ 7.26 × 10^306, là giai thừa lớn nhất có thể biểu diễn dưới dạng số dấu phẩy động 64-bit (độ chính xác kép). Máy tính của chúng tôi sử dụng số học BigInt để có kết quả số nguyên chính xác lên đến 170!</p>
    <p>Định nghĩa đệ quy của giai thừa là: n! = n × (n−1)! cho n > 0, với 0! = 1 là trường hợp cơ bản. Cấu trúc đệ quy này làm cho giai thừa trở thành một ví dụ nhập môn cổ điển trong khoa học máy tính để dạy đệ quy, lập trình động và ghi nhớ. Tính toán giai thừa thông qua lặp lại cũng là tiêu chuẩn: khởi tạo kết quả = 1, sau đó nhân với từng số nguyên từ 2 đến n.</p>
    <p>Ký hiệu "n!" được giới thiệu bởi Christian Kramp vào năm 1808 như một cách viết tắt tiện lợi cho tích thường xuyên xuất hiện 1 × 2 × 3 × ... × n. Trước đó, nhiều ký hiệu khác đã được sử dụng. Ngày nay n! được công nhận rộng rãi trong tất cả các truyền thống toán học.</p>
</section>

<section class="content-section">
    <h2>Giai Thừa Trong Tổ Hợp Và Xác Suất</h2>
    <p>Giai thừa là nền tảng của tổ hợp — nhánh của toán học liên quan đến đếm, sắp xếp và lựa chọn. Hầu như mọi vấn đề đếm trong xác suất và thống kê cuối cùng đều liên quan đến giai thừa.</p>
    <p><strong>Hoán vị (sắp xếp có thứ tự):</strong> Số cách sắp xếp n đối tượng khác nhau thành một hàng là n! — gọi là hoán vị n-giai thừa. Với 4 cuốn sách trên kệ: 4! = 24 cách sắp xếp. Với 10 vận động viên trong một cuộc đua, số thứ tự có thể có cho vị trí 1, 2 và 3 là P(10,3) = 10!/(10−3)! = 10!/7! = 720.</p>
    <p>Công thức hoán vị một phần: P(n,r) = n!/(n−r)! đếm các lựa chọn có thứ tự của r mục từ n. Công thức hoán vị tổng n! là trường hợp đặc biệt r = n.</p>
    <p><strong>Tổ hợp (lựa chọn không có thứ tự):</strong> C(n,r) = n!/(r!(n−r)!), cũng được viết là ⁿCᵣ hoặc "n chọn r" hoặc dưới dạng hệ số nhị thức. Điều này đếm số cách chọn r mục từ n mà không quan tâm đến thứ tự. Từ 52 lá bài, số tay bài 5 lá = C(52,5) = 52!/(5!×47!) = 2,598,960. Xác suất được chia một bộ bài hoàng gia = 4/2,598,960 ≈ 0.000154%.</p>
    <p><strong>Hệ số đa thức:</strong> n!/(n₁! × n₂! × ... × nₖ!) đếm sắp xếp của n mục trong đó n₁ là loại 1, n₂ là loại 2, v.v. Sắp xếp các chữ cái trong MISSISSIPPI: 11!/(1!×4!×4!×2!) = 34,650 sắp xếp khác nhau.</p>
    <table>
      <thead><tr><th>Công thức</th><th>Biểu thức</th><th>Ví dụ</th></tr></thead>
      <tbody>
        <tr><td>n! (tất cả sắp xếp)</td><td>n × (n−1) × ... × 1</td><td>5! = 120</td></tr>
        <tr><td>P(n,r) hoán vị</td><td>n! / (n−r)!</td><td>P(10,3) = 720</td></tr>
        <tr><td>C(n,r) tổ hợp</td><td>n! / (r!(n−r)!)</td><td>C(10,3) = 120</td></tr>
        <tr><td>Đa thức</td><td>n! / (n₁! n₂! ... nₖ!)</td><td>MISS: 4!/(1!3!) = 4</td></tr>
      </tbody>
    </table>
</section>

<section class="content-section">
    <h2>Bảng Giai Thừa: n! cho n = 0 đến 20</h2>
    <p>Dưới đây là bảng giai thừa đầy đủ cho các giá trị nhỏ của n. Ghi nhớ 10 giai thừa đầu tiên rất hữu ích cho các tính toán tổ hợp nhanh chóng trong đầu.</p>
    <table>
      <thead><tr><th>n</th><th>n!</th><th>Xấp xỉ</th></tr></thead>
      <tbody>
        <tr><td>0</td><td>1</td><td>1</td></tr>
        <tr><td>1</td><td>1</td><td>1</td></tr>
        <tr><td>2</td><td>2</td><td>2</td></tr>
        <tr><td>3</td><td>6</td><td>6</td></tr>
        <tr><td>4</td><td>24</td><td>24</td></tr>
        <tr><td>5</td><td>120</td><td>120</td></tr>
        <tr><td>6</td><td>720</td><td>720</td></tr>
        <tr><td>7</td><td>5,040</td><td>5 nghìn</td></tr>
        <tr><td>8</td><td>40,320</td><td>40 nghìn</td></tr>
        <tr><td>9</td><td>362,880</td><td>363 nghìn</td></tr>
        <tr><td>10</td><td>3,628,800</td><td>3.6 triệu</td></tr>
        <tr><td>12</td><td>479,001,600</td><td>479 triệu</td></tr>
        <tr><td>15</td><td>1,307,674,368,000</td><td>1.3 nghìn tỷ</td></tr>
        <tr><td>20</td><td>2,432,902,008,176,640,000</td><td>2.4 × 10^18</td></tr>
      </tbody>
    </table>
    <p>Sự tăng trưởng bùng nổ rất ấn tượng: từ 10! = 3.6 triệu đến 20! = 2.4 tỷ tỷ chỉ trong 10 bước. Sự tăng trưởng nhanh chóng này là lý do tại sao giai thừa xuất hiện trong mẫu số của chuỗi Taylor (đảm bảo hội tụ) và trong các yếu tố chuẩn hóa của phân phối xác suất.</p>
</section>

<section class="content-section">
    <h2>Xấp Xỉ Stirling Và Giai Thừa Lớn</h2>
    <p>Với n lớn, việc tính toán giai thừa chính xác là không thực tế — 100! có 158 chữ số. <strong>Xấp xỉ Stirling</strong> cung cấp một ước lượng tuyệt vời: n! ≈ √(2πn) × (n/e)^n, trong đó e ≈ 2.71828 là số Euler.</p>
    <p>Độ chính xác của xấp xỉ Stirling: với n=10, chính xác = 3,628,800; Stirling cho ≈ 3,598,696, sai số nhỏ hơn 1%. Với n=100, sai số tương đối dưới 0.1%. Càng lớn n, xấp xỉ càng chính xác — sai số tương đối của xấp xỉ là O(1/n).</p>
    <p>Log-giai thừa ln(n!) = Σ ln(k) cho k=1 đến n (tổng của các logarit) là quan trọng trong tính toán. Trong thống kê và học máy, log-xác suất được sử dụng thay vì xác suất thô để tránh tràn số (nhân nhiều số nhỏ lại nhanh chóng tràn về 0 trong số học dấu phẩy động). Hàm log-gamma mở rộng điều này cho các đối số không phải số nguyên.</p>
    <p><strong>Hàm Gamma</strong> Γ(n) là sự mở rộng liên tục của giai thừa cho tất cả các số phức trừ các số nguyên không dương: Γ(n) = (n−1)! cho các số nguyên dương. Điều này xuất hiện trong các phân phối xác suất (phân phối Gamma, phân phối Chi-squared, phân phối Beta) và nhiều công thức vật lý. Một số máy tính có thể tính Γ(1.5) = √π/2 ≈ 0.886 — "giai thừa" của 0.5.</p>
</section>

<section class="content-section">
    <h2>Giai Thừa Trong Phân Phối Xác Suất</h2>
    <p>Nhiều phân phối xác suất quan trọng nhất trong thống kê sử dụng giai thừa trong các công thức của chúng, kết nối tổ hợp thuần túy với phân tích dữ liệu thực tế.</p>
    <p><strong>Phân phối nhị thức:</strong> P(X = k) = C(n,k) × p^k × (1−p)^(n−k). Mô hình hóa số lần thành công trong n thử nghiệm độc lập với xác suất p mỗi lần. C(n,k) = n!/(k!(n−k)!) là hệ số tổ hợp. Tổng của tất cả các k của các hạng tử này bằng 1 (tổng xác suất).</p>
    <p><strong>Phân phối Poisson:</strong> P(X = k) = (λ^k × e^(−λ)) / k!. Mô hình hóa số sự kiện hiếm xảy ra trong một khoảng thời gian cố định khi tốc độ trung bình là λ. K! trong mẫu số chuẩn hóa phân phối. Được sử dụng cho: số lượt đến bệnh viện mỗi giờ, số yêu cầu bảo hiểm mỗi ngày, số đột biến mỗi lần sao chép bộ gen.</p>
    <p><strong>Phân phối chuẩn</strong> và xấp xỉ Stirling có mối liên hệ sâu sắc. Định lý giới hạn trung tâm — rằng tổng của các biến ngẫu nhiên độc lập tiến gần đến phân phối chuẩn — có thể được chứng minh bằng cách sử dụng xấp xỉ Stirling của n!. Mối liên hệ này giữa thế giới rời rạc (giai thừa) và liên tục (phân phối chuẩn) là một trong những kết quả sâu sắc nhất trong lý thuyết xác suất.</p>
    <p><strong>Vấn đề sinh nhật:</strong> Xác suất rằng tất cả 23 người trong một phòng có ngày sinh khác nhau = 365!/(365−23)! ÷ 365^23 ≈ 49.3%. Vì vậy, có hơn 50% khả năng ít nhất hai người có cùng ngày sinh — một kết quả nổi tiếng và trái ngược với trực giác sử dụng hoán vị một phần.</p>
</section>

<section class="content-section">
    <h2>Giai Thừa Trong Số Học: Số Không Cuối Và Định Lý Wilson</h2>
    <p>Giai thừa tương tác phong phú với lý thuyết số nguyên tố, mang lại những kết quả thanh lịch về tính chia hết và phát hiện số nguyên tố.</p>
    <p><strong>Số không cuối trong n!:</strong> Số lượng số không cuối trong n! bằng số lượng các yếu tố của 10, bằng số lượng các yếu tố của 5 (vì các yếu tố của 2 luôn nhiều hơn). Công thức: đếm = ⌊n/5⌋ + ⌊n/25⌋ + ⌊n/125⌋ + ... (tổng khi lũy thừa của 5 ≤ n). Với 100!: ⌊100/5⌋ + ⌊100/25⌋ = 20 + 4 = 24 số không cuối.</p>
    <p><strong>Công thức Legendre:</strong> Lũy thừa cao nhất của số nguyên tố p chia hết n! là ⌊n/p⌋ + ⌊n/p²⌋ + ⌊n/p³⌋ + ... Điều này cho bạn biết chính xác phân tích số nguyên tố của n!, điều này rất quan trọng trong lý thuyết số và tổ hợp.</p>
    <p><strong>Định lý Wilson:</strong> Một số nguyên p > 1 là số nguyên tố nếu và chỉ nếu (p−1)! ≡ −1 (mod p). Với p=5: 4! = 24 ≡ 4 ≡ −1 (mod 5) ✓. Với p=6 (hợp số): 5! = 120 ≡ 0 (mod 6) ✗. Mặc dù định lý Wilson rất đẹp về mặt lý thuyết, nhưng nó không thực tế về mặt tính toán cho các số lớn vì tính toán (p−1)! là rất tốn kém.</p>
    <p><strong>Số nguyên tố giai thừa:</strong> Một số nguyên tố giai thừa là một số nguyên tố có dạng n! + 1 hoặc n! − 1. Ví dụ: 2! − 1 = 1 (không phải số nguyên tố), 3! − 1 = 5 (số nguyên tố), 3! + 1 = 7 (số nguyên tố), 4! − 1 = 23 (số nguyên tố). Tìm kiếm các số nguyên tố giai thừa lớn là một lĩnh vực nghiên cứu tích cực trong lý thuyết số giải trí và tính toán.</p>
</section>

<section class="content-section">
    <h2>Cách Sử Dụng Máy Tính Giai Thừa Này</h2>
    <p>Nhập một số nguyên không âm n (từ 0 đến 170) và nhấp vào Tính toán. Máy tính trả về giá trị giai thừa chính xác dưới dạng số nguyên đầy đủ bằng cách sử dụng BigInt của JavaScript cho các giá trị lớn, tránh sự không chính xác của dấu phẩy động có thể làm hỏng kết quả cho n ≥ 19.</p>
    <p><strong>Ghi chú:</strong></p>
    <ul>
      <li>Đầu vào phải là một số nguyên không âm. Máy tính sẽ làm tròn đầu vào thập phân đến số nguyên gần nhất.</li>
      <li>Giới hạn tối đa n = 170 cho tính toán chính xác (170! ≈ 7.26 × 10^306, nằm trong phạm vi độ chính xác kép để hiển thị).</li>
      <li>Với n = 0, kết quả là 1 (theo định nghĩa).</li>
      <li>Với các giai thừa rất lớn (n &gt; 100), kết quả là một số có hơn 150 chữ số — được hiển thị đầy đủ bằng cách triển khai BigInt của chúng tôi.</li>
      <li>Đối với các ứng dụng yêu cầu ln(n!), sử dụng công thức: ln(n!) = Σ ln(k) cho k=1 đến n.</li>
    </ul>
</section>

<section class="content-section faq-section">
    <h2>Câu Hỏi Thường Gặp</h2>
    <details>
      <summary>Tại sao 0! = 1?</summary>
      <p>Theo định nghĩa và quy ước toán học: 0! = 1 đảm bảo các công thức tổ hợp hoạt động nhất quán. C(n,0) = n!/(0! × n!) = 1, nghĩa là chỉ có 1 cách để chọn 0 mục (không làm gì cả). Nếu không có định nghĩa này, mọi công thức sử dụng C(n,0) sẽ cần một trường hợp đặc biệt. Quy ước tích rỗng (tích của không có số hạng nào = 1) cung cấp cùng một lý do.</p>
    </details>
    <details>
      <summary>Giai thừa của một số âm là gì?</summary>
      <p>Giai thừa không được định nghĩa cho các số nguyên âm. Quan hệ đệ quy n! = n × (n−1)! sẽ cho 0! = 1/(−1)! = 0! tại n=0, nhưng 0! = 1, và (−1)! sẽ là 1/(0!) = 1, và (−2)! = 1/((−1)×(−1)!) = không xác định (chia cho 0 tại n=0). Hàm Gamma mở rộng giai thừa cho các số thực dương nhưng có các cực (điểm không xác định) tại tất cả các số nguyên không dương.</p>
    </details>
    <details>
      <summary>Có bao nhiêu số không ở cuối của 100!?</summary>
      <p>24 số không cuối. Đếm các yếu tố của 5: ⌊100/5⌋ + ⌊100/25⌋ = 20 + 4 = 24. (Không có hạng tử ⌊100/125⌋ vì 125 > 100.) Vì các yếu tố của 2 luôn nhiều hơn các yếu tố của 5, số lượng số không cuối bằng số lượng 5 trong phân tích số nguyên tố của n!.</p>
    </details>
    <details>
      <summary>Giai thừa lớn nhất mà một máy tính có thể tính toán là gì?</summary>
      <p>Các máy tính dấu phẩy động tiêu chuẩn đạt tối đa khoảng 170! (≈ 7.26 × 10^306, nằm trong phạm vi độ chính xác kép IEEE 754). Vượt quá 170!, dấu phẩy động cho ra Infinity. Máy tính của chúng tôi sử dụng JavaScript BigInt để tính toán số nguyên chính xác lên đến 170!, hiển thị chuỗi chữ số đầy đủ mà không có bất kỳ xấp xỉ nào.</p>
    </details>
    <details>
      <summary>Giai thừa được sử dụng như thế nào trong xác suất?</summary>
      <p>Giai thừa là nền tảng của hoán vị P(n,r) = n!/(n−r)! và tổ hợp C(n,r) = n!/(r!(n−r)!). Những điều này đếm số cách sắp xếp hoặc chọn các mục, hình thành cơ sở của các tính toán xác suất. Chúng xuất hiện trong phân phối nhị thức, phân phối Poisson và nhiều công thức thống kê khác.</p>
    </details>
    <details>
      <summary>Xấp xỉ Stirling là gì?</summary>
      <p>Xấp xỉ Stirling: n! ≈ √(2πn) × (n/e)^n. Với n=10: chính xác = 3,628,800; Stirling cho ≈ 3,598,696 (sai số &lt;1%). Với n=100: sai số &lt;0.1%. Dạng log: ln(n!) ≈ n×ln(n) − n + ½×ln(2πn) là vô giá trong thống kê để làm việc với log-xác suất mà không cần tính toán các giai thừa khổng lồ.</p>
    </details>
    <details>
      <summary>Mối liên hệ giữa giai thừa và hàm Gamma là gì?</summary>
      <p>Hàm Gamma Γ(n) thỏa mãn Γ(n) = (n−1)! cho các số nguyên dương. Điều này mở rộng giai thừa cho tất cả các số phức (trừ các số nguyên không dương). Γ(1/2) = √π ≈ 1.7725, vì vậy chúng ta có thể nói (−1/2)! = √π theo quy ước. Hàm Gamma xuất hiện trong các phân phối xác suất (Gamma, Beta, Chi-squared), xử lý tín hiệu và cơ học lượng tử.</p>
    </details>
    <details>
      <summary>Giai thừa liên quan đến tam giác Pascal như thế nào?</summary>
      <p>Mỗi mục trong tam giác Pascal là hệ số nhị thức C(n,r) = n!/(r!(n−r)!). Hàng n của tam giác Pascal chứa C(n,0), C(n,1), ..., C(n,n). Mỗi mục là tổng của hai mục phía trên nó (quy tắc Pascal: C(n,r) = C(n−1,r−1) + C(n−1,r)), điều này có thể được xác minh từ công thức giai thừa. Tam giác Pascal mã hóa đếm tổ hợp bằng cách sử dụng giai thừa.</p>
    </details>
    <details>
      <summary>Định lý Wilson là gì?</summary>
      <p>Định lý Wilson: p là số nguyên tố nếu và chỉ nếu (p−1)! ≡ −1 (mod p). Với p=7: 6! = 720 = 102×7 + 6 ≡ 6 ≡ −1 (mod 7) ✓. Với p=8 (hợp số): 7! = 5040 = 630×8 + 0 ≡ 0 ≢ −1 (mod 8) ✓. Đẹp về mặt lý thuyết, nhưng không thực tế cho kiểm tra số nguyên tố lớn vì tính toán (p−1)! cho p lớn là rất tốn kém về mặt tính toán.</p>
    </details>
    <details>
      <summary>n! đại diện cho điều gì trong số lượng sắp xếp?</summary>
      <p>n! là số cách khác nhau để sắp xếp n mục độc nhất thành một hàng (một hoán vị). Với 3 mục {A, B, C}: 3! = 6 sắp xếp: ABC, ACB, BAC, BCA, CAB, CBA. Với 10 mục: 10! = 3,628,800 sắp xếp — hơn 3 triệu thứ tự của chỉ 10 thứ. Với 52 lá bài: 52! ≈ 8 × 10^67, một số cực kỳ lớn cho thấy tại sao các bộ bài xáo trộn hầu như không bao giờ ở cùng một thứ tự hai lần trong lịch sử.</p>
    </details>
</section>

<section class="content-section">
    <h2>Giai Thừa Trong Khoa Học Máy Tính: Thuật Toán Và Độ Phức Tạp</h2>
    <p>Giai thừa có mối liên hệ mật thiết với lý thuyết độ phức tạp tính toán — nghiên cứu về mức độ khó khăn của các vấn đề để giải quyết bằng thuật toán. Hiểu về giai thừa giúp giải thích tại sao một số vấn đề là "khó" theo nghĩa toán học chính xác.</p>
    <p><strong>Vấn đề Người Bán Hàng Du Lịch (TSP)</strong> hỏi: cho n thành phố và khoảng cách giữa mỗi cặp, tìm tuyến đường ngắn nhất đi qua tất cả các thành phố chính xác một lần. Một cách tiếp cận brute-force ngây thơ kiểm tra tất cả các thứ tự có thể: (n−1)!/2 tuyến đường (chia cho 2 cho đối xứng, cố định thành phố bắt đầu). Với n=20 thành phố: 19!/2 ≈ 6 × 10^16 tuyến đường. Ngay cả với 1 nghìn tỷ tuyến đường/giây, điều này sẽ mất hơn 60,000 năm. Sự bùng nổ giai thừa này là lý do tại sao TSP là "NP-khó" và tại sao các thuật toán heuristic (thay vì giải pháp chính xác) được sử dụng trong thực tế cho các trường hợp lớn.</p>
    <p><strong>Vấn đề sắp xếp</strong> cũng có liên hệ với giai thừa: n! là số lượng thứ tự có thể của n phần tử. Một thuật toán sắp xếp tối ưu dựa trên so sánh phải phân biệt giữa tất cả các trường hợp n!, yêu cầu ít nhất log₂(n!) so sánh. Theo xấp xỉ Stirling, log₂(n!) ≈ n×log₂(n), đó là lý do tại sao số so sánh tối thiểu lý thuyết cho sắp xếp là O(n log n) — đạt được bởi sắp xếp hợp nhất và sắp xếp đống.</p>
    <p>Trong <strong>lập trình động</strong>, các vấn đề con giai thừa có thể được ghi nhớ: một khi bạn tính toán k!, bạn có thể nhận được (k+1)! = (k+1) × k! mà không cần tính toán lại từ đầu. Điều này giảm chi phí tính toán tất cả các giai thừa từ 1 đến n từ O(n²) xuống O(n), một tối ưu hóa quan trọng trong các ứng dụng yêu cầu nhiều giá trị giai thừa như tạo bảng xác suất.</p>
</section>

<section class="related-section">
    <h2>Máy Tính Liên Quan</h2>
    <ul class="related-grid">
          <li><a href="/percentage-calculator/">Máy Tính Phần Trăm</a></li>
          <li><a href="/fraction-calculator/">Máy Tính Phân Số</a></li>
          <li><a href="/square-root-calculator/">Máy Tính Căn Bậc Hai</a></li>
          <li><a href="/standard-deviation-calculator/">Máy Tính Độ Lệch Chuẩn</a></li>
          <li><a href="/scientific-notation-calculator/">Máy Tính Ký Hiệu Khoa Học</a></li>
    </ul>
</section>