CCalculate.Studio

Máy tính giai thừa

Giai thừa của một số nguyên không âm n, viết là n!, là tích của tất cả các số nguyên dương từ 1 đến n. Công cụ này tính n! chính xác với n đến 18, và theo ký hiệu khoa học với n đến 170, cùng với số chữ số 0 ở cuối và logarit tự nhiên của n!.

Cập nhật lần cuối: 2026-07-07
Add as preferred on Google

Hiểu tốc độ tăng của giai thừa

Tốc độ tăng của giai thừa nhanh chóng vượt qua tăng trưởng hàm mũ, như bảng giá trị chính xác và gần đúng dưới đây.

nn!Bậc độ lớn xấp xỉ
011
51201,2 × 10²
103.628.8003,6 × 10⁶
151.307.674.368.0001,3 × 10¹²
186.402.373.705.728.0006,4 × 10¹⁵
202.432.902.008.176.640.0002,4 × 10¹⁸
  • 18! (≈6,40 × 10¹⁵) là giai thừa lớn nhất còn nằm dưới giới hạn số nguyên an toàn, vì hằng số Number.MAX_SAFE_INTEGER của JavaScript là 2⁵³ − 1 ≈ 9,007 × 10¹⁵; do đó công cụ này chỉ hiển thị giá trị chính xác tới n = 18. Vượt qua giới hạn đó, các giai thừa vẫn biểu diễn chính xác được dưới dạng số độ chính xác kép cho tới 22!, vì mỗi giai thừa đều chứa rất nhiều thừa số 2, và 23! là giai thừa đầu tiên bị làm tròn.
  • Với n từ 19 đến 170, chỉ hiển thị giá trị xấp xỉ theo ký hiệu khoa học (và ln(n!)), vì giá trị nguyên chính xác sẽ đòi hỏi độ chính xác cao hơn mức mà số học dấu phẩy động tiêu chuẩn hỗ trợ nếu không có thư viện số nguyên lớn.
  • Vượt quá n = 170, n! lớn hơn giá trị lớn nhất mà số dấu phẩy động độ chính xác kép tiêu chuẩn biểu diễn được (khoảng 1,8 × 10³⁰⁸) và tràn thành vô cực, nên công cụ này giới hạn n ở mức 170.

Giai thừa là gì?

Giai thừa của một số nguyên không âm n, ký hiệu n!, được định nghĩa là tích của tất cả các số nguyên dương từ 1 đến n: n! = n × (n − 1) × (n − 2) × ... × 2 × 1. Ví dụ, 5! = 5 × 4 × 3 × 2 × 1 = 120. Theo định nghĩa, 0! = 1 (tích rỗng, phần tử đơn vị của phép nhân), đây là quy ước chuẩn được dùng xuyên suốt trong tổ hợp.

Giai thừa tăng cực kỳ nhanh — nhanh hơn nhiều so với các hàm mũ theo n. 10! = 3.628.800, trong khi 20! đã vượt quá 2,4 tỷ tỷ (2,43 × 10¹⁸), lớn hơn số giây đã trôi qua kể từ vụ nổ Big Bang. Chính tốc độ tăng bùng nổ này là lý do giai thừa thường được trình bày theo ký hiệu khoa học khi n lớn, và vì sao giá trị nguyên chính xác trở nên không thực tế để hiển thị sau một ngưỡng nhất định.

Giai thừa là nền tảng của tổ hợp: chúng đếm số cách sắp xếp n đối tượng phân biệt theo thứ tự (chỉnh hợp và hoán vị), và xuất hiện ở mẫu số trong công thức hệ số nhị thức dùng để đếm các cách chọn không kể thứ tự (tổ hợp). Chúng cũng xuất hiện trong lý thuyết xác suất, giải tích (hệ số của chuỗi Taylor) và nhiều đồng nhất thức tổ hợp dạng đóng.

Cách dùng máy tính giai thừa này

  1. Nhập một số nguyên n từ 0 đến 170 (170! gần với giai thừa lớn nhất mà số dấu phẩy động độ chính xác kép tiêu chuẩn còn biểu diễn được trước khi tràn thành vô cực).
  2. Đọc kết quả theo ký hiệu khoa học, kết quả này luôn được hiển thị bất kể n lớn hay nhỏ.
  3. Với n ≤ 18, giá trị nguyên chính xác của n! cũng được hiển thị, vì các giai thừa lớn hơn vượt quá phạm vi số nguyên biểu diễn chính xác được trong số học độ chính xác kép tiêu chuẩn (2⁵³ ≈ 9,007 × 10¹⁵).
  4. Xem thêm logarit tự nhiên của n! (hữu ích khi làm việc với giai thừa rất lớn mà không bị tràn số) và số chữ số 0 ở cuối trong biểu diễn thập phân chính xác của n!.

Cách tính giai thừa, số chữ số 0 ở cuối và ln(n!)

n! = n × (n − 1) × (n − 2) × ... × 2 × 1, với 0! = 1
ln(n!) = Σ ln(k) for k = 1 to n
Số chữ số 0 ở cuối (công thức Legendre) = Σ ⌊n / 5ⁱ⌋ với i = 1, 2, 3, ...
Ví dụ: 10! = 3.628.800 (2 chữ số 0 ở cuối)

Quan hệ đệ quy định nghĩa giai thừa là n! = n × (n − 1)!, với trường hợp cơ sở 0! = 1. Ví dụ minh họa: 5! = 5 × 4! = 5 × 4 × 3! = 5 × 4 × 3 × 2! = 5 × 4 × 3 × 2 × 1! = 5 × 4 × 3 × 2 × 1 × 0! = 120 × 1 = 120.

Với n lớn, logarit tự nhiên ln(n!) được tính bằng tổng Σ ln(k) với k chạy từ 2 đến n, cách này tránh được hiện tượng tràn số vốn sẽ xảy ra nếu nhân trực tiếp giai thừa thô. Ký hiệu khoa học sau đó được suy ra từ tổng này qua logarit cơ số 10: log₁₀(n!) = ln(n!) ÷ ln(10), phần nguyên cho số mũ và phần thập phân (đổi ngược lại bằng 10^x) cho phần định trị.

Số chữ số 0 ở cuối n! bằng số lần 10 chia hết n!, và vì 10 = 2 × 5 còn thừa số 2 luôn nhiều hơn thừa số 5 trong một giai thừa, bài toán quy về đếm thừa số 5 bằng công thức Legendre: số chữ số 0 ở cuối = ⌊n/5⌋ + ⌊n/25⌋ + ⌊n/125⌋ + ... Ví dụ minh họa với 10!: ⌊10/5⌋ = 2, ⌊10/25⌋ = 0, nên 10! có 2 chữ số 0 ở cuối — đúng như 10! = 3.628.800.

Những lỗi thường gặp

  • Quên rằng 0! = 1, chứ không phải 0 — đây là quy ước toán học chuẩn (tích rỗng bằng 1), thiết yếu để các công thức tổ hợp hoạt động đúng ở các trường hợp biên.
  • Cho rằng có thể tính chính xác giai thừa với n lớn tùy ý trong số học tiêu chuẩn — vượt quá n = 22, giá trị nguyên chính xác vượt khỏi khả năng biểu diễn không sai số của số dấu phẩy động độ chính xác kép.
  • Nhầm n! (giai thừa) với nⁿ (n mũ n) — giai thừa nhân một dãy số nguyên giảm dần xuống 1, còn lũy thừa nhân n với chính nó n lần; hai đại lượng tăng với tốc độ khác nhau và nhanh chóng tách xa (5! = 120 so với 5⁵ = 3.125).
  • Nhập số âm hoặc số không nguyên — theo nghĩa sơ cấp này, giai thừa chỉ được định nghĩa cho số nguyên không âm (hàm Gamma mở rộng khái niệm này sang số không nguyên, nhưng đó là một công thức riêng, nâng cao hơn).

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

n giai thừa là gì?

n giai thừa (n!) là tích của tất cả các số nguyên dương từ 1 đến n. Ví dụ, 5! = 5 × 4 × 3 × 2 × 1 = 120. Theo định nghĩa, 0! = 1.

Tại sao 0! bằng 1?

0! được định nghĩa bằng 1 theo quy ước toán học, thể hiện một 'tích rỗng' (tích của không thừa số nào), mà theo quy ước bằng phần tử đơn vị của phép nhân, tức 1. Định nghĩa này giữ cho các công thức tổ hợp như chỉnh hợp và tổ hợp nhất quán ở các trường hợp biên — ví dụ, có đúng 1 cách sắp xếp không đối tượng nào.

Giai thừa tăng nhanh đến mức nào?

Giai thừa tăng nhanh hơn các hàm mũ theo n. 10! khoảng 3,6 triệu, nhưng 20! đã vượt quá 2,4 × 10¹⁸ (2,4 tỷ tỷ). Tốc độ tăng trên cả hàm mũ này là lý do giai thừa xuất hiện dưới dạng ký hiệu khoa học ngay cả với n lớn vừa phải, và vì sao chúng thường được nêu làm ví dụ về tăng trưởng cực nhanh trong toán học.

100! có bao nhiêu chữ số 0 ở cuối?

Dùng công thức Legendre (cộng các ⌊100/5ⁱ⌋), 100! có ⌊100/5⌋ + ⌊100/25⌋ = 20 + 4 = 24 chữ số 0 ở cuối. Các chữ số 0 ở cuối sinh ra từ các thừa số 10 = 2 × 5 trong tích, và vì thừa số 2 luôn nhiều hơn thừa số 5 trong một giai thừa, chỉ cần đếm thừa số 5 là ra số chữ số 0 ở cuối.

Giai thừa lớn nhất mà một máy tính có thể tính chính xác là bao nhiêu?

Trong số học dấu phẩy động độ chính xác kép tiêu chuẩn (dùng bởi JavaScript và hầu hết máy tính), 18! là giai thừa lớn nhất còn nằm dưới giới hạn số nguyên an toàn, vì 18! ≈ 6,40 × 10¹⁵ nhỏ hơn 2⁵³ − 1 ≈ 9,007 × 10¹⁵, trong khi 19! đã vượt qua. Vượt qua giới hạn đó, các giai thừa vẫn biểu diễn chính xác được dưới dạng số độ chính xác kép cho tới 22!, vì mỗi giai thừa đều chứa rất nhiều thừa số 2; 23! là giai thừa đầu tiên bị làm tròn. Các giai thừa lớn hơn thường được hiển thị theo ký hiệu khoa học.

Tài liệu tham khảo

  1. NIST Digital Library of Mathematical Functions (DLMF), §5.1 Gamma Function: Factorial Function. dlmf.nist.gov.
  2. Rosen KH. Discrete Mathematics and Its Applications. 8th ed. McGraw-Hill, 2018. (Factorials and combinatorics.)
  3. Graham RL, Knuth DE, Patashnik O. Concrete Mathematics. 2nd ed. Addison-Wesley, 1994. (Legendre's formula for factors in n!.)

Lý thuyết số · Tất cả máy tính

Máy tính liên quan

Guides & articles