Trong bài viết này, chúng ta sẽ tìm hiểu cách tính tổ hợp sử dụng giá trị n và r. nCr được tính bằng công thức:
(giai thừa của n) / (giai thừa của r * giai thừa của (n-r))
Dưới đây là minh họa:
Đầu vào
Giả sử đầu vào của chúng ta là:
Giá trị n: 6 Giá trị r: 4
Đầu ra
Đầu ra mong muốn sẽ là:
Giá trị nCr là: 15
Thuật Toán
Bước 1 - BẮT ĐẦU Bước 2 - Khai báo hai biến nguyên n và r Bước 3 - Đọc giá trị từ người dùng hoặc định nghĩa giá trị Bước 4 - Định nghĩa hai hàm: một tính giai thừa n và (n-r), một tính công thức: (giai thừa n) / (giai thừa r * giai thừa (n-r)) và lưu kết quả Bước 5 - Hiển thị kết quả Bước 6 - DỪNG
Ví Dụ 1
Ở đây, đầu vào được nhập bởi người dùng dựa trên nhắc nhở. Bạn có thể thử ví dụ này trực tiếp trong công cụ coding ground của chúng tôi.
import java.util.*;
public class Combination {
static int Compute_nCr(int n, int r) {
return my_factorial(n) / (my_factorial(r) * my_factorial(n - r));
}
static int my_factorial(int n) {
int i, my_result;
my_result = 1;
for (i = 2; i <= n; i++)
my_result = my_result * i;
return my_result;
}
public static void main(String[] args) {
int n, r;
System.out.println("Các gói cần thiết đã được nhập");
Scanner my_scanner = new Scanner(System.in);
System.out.println("Đối tượng đọc đã được định nghĩa");
System.out.print("Nhập giá trị n: ");
n = my_scanner.nextInt();
System.out.print("Nhập giá trị r: ");
r = my_scanner.nextInt();
System.out.println("Giá trị tổ hợp cho đầu vào là = " + Compute_nCr(n, r));
}
}
Đầu Ra
Các gói cần thiết đã được nhập Đối tượng đọc đã được định nghĩa Nhập giá trị n: 6 Nhập giá trị r: 4 Giá trị tổ hợp cho đầu vào là = 15
Ví Dụ 2
Ở đây, số nguyên đã được định nghĩa trước, và giá trị của nó được truy cập và hiển thị trên bảng điều khiển.
public class Combination {
static int Compute_nCr(int n, int r) {
return my_factorial(n) / (my_factorial(r) * my_factorial(n - r));
}
static int my_factorial(int n) {
int i, my_result;
my_result = 1;
for (i = 2; i <= n; i++)
my_result = my_result * i;
return my_result;
}
public static void main(String[] args) {
int n, r;
n = 6;
r = 4;
System.out.println("Giá trị n và r được định nghĩa là " + n + " và " + r);
System.out.println("Giá trị tổ hợp cho đầu vào là = " + Compute_nCr(n, r));
}
}
Đầu Ra
Giá trị n và r được định nghĩa là 6 và 4 Giá trị tổ hợp cho đầu vào là = 15