2234 lượt xem

Tham khảo Công Thức Tính N Giai Thừa Dễ Hiểu Nhất

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 – Công thức giai thừa chuẩn nhất

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.

Giai Thừa Là Gì?
Giai Thừa Là Gì?

Hoặc là

Giai Thừa Là Gì?
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  Xuất siêu là gì và công thức tính xuất siêu cơ bản

Đ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<=n,n thuộc Z

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<=n thuộc N

Tính N Giai Thừa Trong C/C++ – Công thức tính giai thừa nhanh

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.

Công thức tính N giai thừa
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.

N giai thừa bằng gì? Công thức n giai thừa – Công thức n!

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 quãng đường và các công thức liên quan

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

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

Cách 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 = 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;

}

Tính Giai Thừa Sử Dụng Đệ Quy – Công thức của giai thừa chuẩn

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

}

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

READ  Công Thức Tính Số Axit Amin

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.

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

}

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 Educationuk-vietnam.org để đón đọc thêm nhiều bài viết nữa nhé!