Giai thừa là gì và công thức tính n giai thừa – một khái niệm mới lần đầu tiên được “nhắc đến” khi chúng ta làm quen với khái niệm hoán vị trong sách giáo khoa giải tích và đại số lớp 11. Khái niệm này có vai trò vô cùng quan trọng, các công thức về hoán vị, tổ hợp, tổ hợp đều được xây dựng trên đó. Và qua bài viết này, chúng tôi sẽ tổng hợp lại cho các bạn các kiến thức về giai thừa và công thức tính n giai thừa nhé!


Giai Thừa Là Gì? Công thức tính N giai thừa

Cho là số tự nhiên dương. Tích của số tự nhiên liên tiếp từ 1 đến được gọi là n – giai thừa. Kí hiệu là Như vậy, kí hiệu là một số nguyên dương được tính bởi công thức.

Bạn đang xem: Công thức n

*
Giai Thừa Là Gì?

Hoặc là

*
Giai Thừa Là Gì?

Ví dụ

Tích của 1 số từ 1 đến 1 là 1! = 1

Tích của 2 số liên tiếp, từ 1 đến 2 là 2! = 1.2 = 2

Tích của 3 số liên tiếp, từ 1 đến 3 là 3! = 1.2.3 =6

Tích của 4 số liên tiếp, từ 1 đến 4 4! = 1.2.3.4= 24

Tích của 5 số liên tiếp, từ 1 đến 5 5! = 1.2.3.4.5 = 120

Theo định nghĩa trên, khái niệm chỉ được định nghĩa với là một số tự nhiên lớn hơn không. 

Về sau để tiện sử dụng và phù hợp với một số công thức tính toán, người ta “mở rộng” khái niệm Giai thừa cho trường hợp bằng 0 và định nghĩa – hay qui ước: 0! = 1


READ Cách tính m3 trong xây dựng chuẩn từng milimet

Đ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 chỉ có nghĩa khi n thuộc N hay 0

Sau khi đã biết được công thức tính N giai thừa thì chúng ta hãy bước đến tính chất giai thừa để hiểu sâu hơn về n giai thừa nhé!

Tính Chất Giai Thừa

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à hay giữa 3!

 3! = 1.2.3

4! = 1.2.3.4

5! = 1.2.3.4.5

Từ mối liên hệ trên ta có thể suy ra: 

5! = (4!).5

4! = (3!).4

5! = (3!).4.5

Tổng quát ta có:

n! = (n -1)!n

 Hoặc (n -1)!n = n!  là với 1

Tính N Giai Thừa Trong C/C++

Giới Thiệu Bài Toán

Giai thừa là một bài toán kinh điển trong lập trình, nó là một bài toán mà mình tin là bất kì bạn nào mới học đều phải trải qua. 

Bài toán này sẽ giúp bạn hiểu được thuật toán đệ quy hoặc sử dụng thành thạo vòng lặp.

*
Tính N Giai Thừa Trong C/C++

Đề bài đại loại có thể tóm tắt lại như sau: Tính n giai thừa và in kết quả ra màn hình, n nhập vào từ bàn phím.

Trước khi giải quyết bài toán, chúng ta cần hiểu định nghĩa về n! (n là một số nguyên dương): n giai thừa là tích của n số nguyên dương đầu tiên.


READ Công thức tính NPV và IRR có ví dụ minh họa

Công thức tổng quát: n! = n*(n-1)!

Trường hợp đặc biệt: 0! = 1

Tính Giai Thừa Sử Dụ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 = 1Sử 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

giai_thua = giai_thua * i;

return giai_thua;

}

Tính Giai Thừa Sử Dụ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.

Xem thêm: Unit 9 Lớp 9: Speak - Speak Unit 9: Natural Disasters

Đ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));

}

*
Tính Giai Thừa Sử Dụng Đệ Quy

Đá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.


READ Công thức diện tích hình thang toán 8 cơ bản

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

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

giai_thua = giai_thua * i;

return giai_thua;

}

int main(){

int n;

cout>n;

cout

// cout

}

Qua bài viết trên, hi vọng bạn đã hiểu hơn về khái niệm giai thừa, công thức tính n giai thửa cả trong đại số lẫn tin học. Cảm ơn độc giả đã dành thời gian đọc bài viết này, đừng quên thường xuyên ghé thăm 91neg.com để đón đọc thêm nhiều bài viết nữa nhé!