🌐 VI

🔢 Máy tính giai thừa

Tính chính xác n! (giai thừa của n) mà không có sai số làm tròn, bằng JavaScript BigInt. n phải là số nguyên từ 0 đến 5000.

Nhập số nguyên từ 0 đến 5000. Kết quả sẽ được hiển thị dưới dạng số nguyên chính xác.

Kết quả
HƯỚNG DẪN

Tìm hiểu thêm

01

Giai thừa (n!) là gì?

Giai thừa là tích của tất cả các số nguyên dương từ 1 đến n, được định nghĩa là n! = 1 × 2 × 3 × ⋯ × n. Ví dụ, 5! = 1×2×3×4×5 = 120. Theo quy ước, 0! = 1. Giai thừa là công cụ nền tảng trong tổ hợp học (hoán vị và tổ hợp), lý thuyết xác suất và khai triển chuỗi.
02

Vì sao phải tính bằng BigInt?

Kiểu Number thông thường của JavaScript sẽ mất độ chính xác sau 2⁵³-1 (khoảng 9×10¹⁵). Nhưng n! vượt quá giá trị đó rất nhanh khi n tăng lên - 18! đã khoảng 6.4×10¹⁵. Máy tính này thực hiện phép nhân bằng kiểu BigInt của JavaScript, nên ngay cả với n lớn, kết quả nguyên chính xác vẫn được hiển thị mà không có sai số làm tròn.
03

Giá trị tham chiếu và giới hạn đầu vào

5! = 120, 10! = 3,628,800, 15! = 1,307,674,368,000, 20! = 2,432,902,008,176,640,000. Số chữ số tăng cực nhanh khi n tăng (100! có 158 chữ số, 1000! có 2,568 chữ số), nên kết quả sẽ rất dài - đầu vào bị giới hạn ở n ≤ 5000 để giữ tải máy chủ/trình duyệt ở mức hợp lý.

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

Vì sao n tối đa bị giới hạn ở 5000?
Khi n tăng, số chữ số của n! tăng theo cấp số nhân (5000! có khoảng 16,326 chữ số), đồng thời tài nguyên cần cho tính toán và hiển thị cũng tăng lên. Giới hạn 5000 giúp tránh sử dụng tài nguyên quá mức nhưng vẫn đáp ứng gần như mọi nhu cầu thực tế.
Vì sao 0! bằng 1?
0! được định nghĩa là 1 theo quy ước toán học. Điều này khớp với cách hiểu trong tổ hợp rằng chỉ có đúng một cách sắp xếp không có phần tử nào, và giúp định nghĩa truy hồi n! = n × (n-1)! vẫn nhất quán ngay cả khi n=1.
Điều gì xảy ra nếu tôi nhập số âm hoặc số thập phân?
Giai thừa chỉ được định nghĩa cho các số nguyên không âm, nên nếu nhập số âm, số thập phân hoặc văn bản không phải số, hệ thống sẽ hiển thị thông báo lỗi. (Hàm Gamma mở rộng giai thừa cho hầu hết số thực và số phức, trừ các số nguyên âm, nhưng máy tính này chỉ xử lý giai thừa của số nguyên.)