logo

Giai thừa trong toán học là gì? Cách tính giai thừa

icon_facebook

Câu trả lời đúng nhất: Giai thừa – một khái niệm mới mẻ, được “đề cập” lần đầu khi chúng ta làm quen với khái niệm Hoán vị trong SGK Đại số và Giải tích lớp 11. Giai thừa trong toán học là một toán tử một ngôi trên tập hợp các số tự nhiên. Cho n là một số tự nhiên dương,"n giai thừa", ký hiệu n! là tích của n số tự nhiên dương đầu tiên. Khái niệm này có vai trò rất quan trọng, các công thức về số Hoán vị, Chỉnh hợp và Tổ hợp đều được xây dựng trên nó. 

Để hiểu rõ hơn về Giai thừa trong toán học là gì? Cách tính giai thừa, mời các bạn cùng Top lời giải tìm hiểu nội dung dưới đây!


1. Giai thừa trong toán học là gì?

Giai thừa trong toán học là một toán tử một ngôi trên tập hợp các số tự nhiên. Cho n là một số tự nhiên dương,"n giai thừa", ký hiệu n! là tích của n số tự nhiên dương đầu tiên.

n! = 1 × 2 × 3 × ... × n

Ví dụ: 8! = 1 × 2 × 3 × ... × 7 × 8 = 40.320

Đặc biệt, với n = 0, người ta quy ước 0! = 1, đúng theo quy ước của một tích trống. Ký hiệu n! được dùng lần đầu bởi Christian Kramp vào năm 1808. Giai thừa được phổ biến trong nhiều mảng khác nhau của toán học, chủ yếu là mảng tổ hợp, vì đây là số cách khác nhau để xáo trộn một nhóm n {\displaystyle n}nnđối tượng nào đó.

Điều kiện xác định

Với quy ước trên, từ giờ trở đi chúng ta cần nhớ

Kí hiệu: n! chỉ có nghĩa khi n thuộc N hay 0 nhỏ hơn hoặc bằng n, n thuộc Z

Tiếp theo, chúng ta cùng tìm hiểu xem Giai thừa có tính chất gì đặc biệt.


2. Cách tính giai thừa trong toán học

Hãy quay lại ví dụ ở trên, quan sát các giai thừa khi viết chúng ở dạng tích các số tự nhiên liên tiếp và cố gắng tìm ra một mối liên hệ nào đó giữa các giai thừa lớn so với các giai thừa bé hơn. Chẳng hạn, giữa 5! và 4! hay giữa 4! và 3!

giai thừa trong toán học là gì, Cách tính giai thừa
Giai thừa trong toán học là gì? Cách tính giai thừa
Giai thừa trong toán học là gì? Cách tính giai thừa

Bạn có thấy mối quan hệ gì không?

Giai thừa trong toán học là gì? Cách tính giai thừa

Đó là, có thể viết 5! = (4!).5, 4! = (3!).4 và 5! = (3!).4.5 , tương tự bạn có thể suy ra 

Giai thừa trong toán học là gì? Cách tính giai thừa

,… và tổng quát ta có: n! = (n -1)!n hay (n-1)!n = n!  với 1 nhỏ hơn hoặc bằng n thuộc N

Đây chính là tính chất đặc trưng của Giai thừa: Một giai thừa lớn luôn có thể biểu diễn qua một giai thừa bé hơn. Chúng ta có thể phát biểu tính chất này dưới dạng “khẩu quyết” cho dễ nhớ là: “Giai thừa lớn chứa giai thừa bé”


3. Cách tính giai thừa trong lập trình C++

a. Cách tính giai thừa bằng đệ quy

Để hiểu rõ hơn thuật toán này trước tiên bạn nên tìm hiểu thuật toán đệ quy.

Ở bài này, ta có công thức tổng quát n giai thừa là : n!=n*(n-1)!

Chính vì thế, ta cũng sử dụng lệnh truy hồi dựa trên công thức này.

Điều kiện dừng ở đây là khi n =1 (vì ta tính tích các số bắt đầu từ 1)

Code C/C++:

// tinh giai thua su dung de quy

int factorial(int n){

if(n==1)

return 1;

return(n*factorial(n-1));

}

Đánh giá cả 2 cách: Cách sử dụng đệ quy để tính giai thừa có vẻ chuyên nghiệp hơn. Tuy nhiên cách sử dụng vòng lặp có tốc độ nhanh không kém đệ quy, thậm trí là nhanh hơn.

Trong cách bài toán thực tế, nếu để lựa chọn thì các lập trình viên sẽ sử dụng cách 1 để hạn chế ít nhất việc sử dụng đệ quy.

Chú ý: Ở đây kiểu dữ liệu của hàm mình để là kiểu int, chính vì thế chỉ có thể chạy khi n <= 19 (nếu quá thì sẽ vượt kích thước của kiểu int dẫn đến sai kết quả). Nếu bạn muốn chạy được số lớn hơn thì nên để kiểu double (max n 170).

Code full bài toán nhập N và tính đệ quy:

/* Bai toan tinh N giai thua trong C++

By: https://duongdinh24.com/

github: https://github.com/duongdinh24/

*/

#include<bits/stdc++.h>

using namespace std;

// n! su dung de quy

int factorial(int n){

if(n==1)

return 1;

return(n*factorial(n-1));

}

// nn! Khu de quy su dung vong lap

int giaithualap(int n){

int giai_thua = 1;

for (int i = 1; i <= n; i++)

giai_thua = giai_thua * i;

return giai_thua;

}

int main(){

int n;

cout<<"Nhap n: "; cin>>n;

cout<<"Ket qua "<<n<<"!: "<<factorial(n); // De quy

// cout<<"Ket qua "<<n<<"!: "<<giaithualap(n); // Khu de quy

}

Kết quả chạy chương trình:

Giai thừa trong toán học là gì? Cách tính giai thừa

b. Cách tính giai thừa bằng vòng lặp

Cách tính đầu tiên này sẽ đơn giản hơn cách sử dụng đệ quy. Và nó được gọi là cách khửđệ quy bởi vì nó tránh được việc phải dùng đến đệ quy. Tùy từng trường hợp mà đệ quy và khửđệ quy có ưu điểm khác nhau.

Tư tưởng giải quyết:

Khai báo một biến để lưu giá trị và gán nó bằng 1: giai_thua = 1

Sử dụng vòng lặp chạy i từ 1 đến n sau đó gán: giai_thua = giai_thua*i

Code C/C++:

// giai thua su dung vong lap

int giaithualap(int n){

int giai_thua = 1;

for (int i = 1; i <= n; i++)

giai_thua = giai_thua * i;

return giai_thua;

}

------------------------------

Như vậy trên đây Top lời giải đã cùng bạn tìm hiểu về Giai thừa trong toán học là gì? Cách tính giai thừa. Hy vọng những kiến thức chúng tôi cung cấp về giai thừa sẽ giúp ích trong quá trình học tập của bạn. Cảm ơn các bạn đã theo dõi.

icon-date
Xuất bản : 24/06/2022 - Cập nhật : 24/06/2022

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

Đánh giá độ hữu ích của bài viết

😓 Thất vọng
🙁 Không hữu ích
😐 Bình thường
🙂 Hữu ích
🤩 Rất hữu ích
image ads