Hai tiêu chỉ đánh giá độ phức tạp tính toán quan trọng nhất là gì?
Biết cách phân tích, đánh giá độ phức tạp thuật toán là kĩ năng quan trọng của người thiết kế thuật toán và chương trình. Các quy tắc đơn giản tính độ phức tạp thời gian mang lại cho em điều gì khi đánh giá thuật toán?
Đánh giá được mức đơn giản của thuật toán, từ đó tìm ra được cách giải nhanh nhất.
Thảo luận về các tiêu chí đánh giá tính hiệu quả của thuật toán hay chương trình giải một bài toán.
1. Tiêu chí quan trọng nhất là thời gian chạy chương trình phải nhanh, không cần quan tâm đến không gian bộ nhớ sử dụng của chương trình.
2. Tiêu chí tiết kiệm bộ nhớ là quan trọng nhất, sau đó mới đến thời gian chạy chương trình.
3. Các tiêu chí 1 và 2 không quan trọng mà quan trọng là chương trình được viết một cách đơn giản, rõ ràng, dễ hiểu và áp dụng.
Các tiêu chí đánh giá tính hiệu quả của thuật toán hay chương trình giải một bài toán có thể khác nhau tùy vào mục đích và yêu cầu của dự án hoặc ứng dụng cụ thể. Dưới đây là một số thảo luận về các tiêu chí được đưa ra trong câu hỏi:
1. Tiêu chí thời gian chạy (runtime): Thời gian chạy của chương trình là một yếu tố quan trọng trong đánh giá tính hiệu quả của thuật toán hay chương trình. Nếu chương trình chạy nhanh, đáp ứng được yêu cầu về thời gian đối với ứng dụng cụ thể, thì đây là một tiêu chí quan trọng để đánh giá tính hiệu quả của chương trình.
2. Tiêu chí tiết kiệm bộ nhớ: Việc sử dụng bộ nhớ của chương trình cũng là một yếu tố quan trọng trong đánh giá tính hiệu quả của chương trình, đặc biệt là đối với các ứng dụng có yêu cầu về tài nguyên hạn chế. Nếu chương trình sử dụng ít bộ nhớ và đáp ứng được yêu cầu về tài nguyên, thì tiêu chí này cũng được coi là quan trọng.
3. Tiêu chí đơn giản, rõ ràng, dễ hiểu: Độ đơn giản, rõ ràng và dễ hiểu của chương trình cũng là một yếu tố quan trọng trong đánh giá tính hiệu quả của chương trình, đặc biệt là trong việc duy trì và phát triển sau này. Nếu chương trình được viết một cách đơn giản, rõ ràng và dễ hiểu, thì nó sẽ dễ dàng trong việc duy trì, nâng cấp, và áp dụng cho các tình huống khác nhau.
Chỉ tiêu quan trọng nhất đánh giá sự phát triển của ngành nội thương nước ta là:
A. đầu tư trực tiếp của nước ngoài (FDI).
B. tổng mức bán lẻ hàng hóa và doanh thu dịch vụ tiêu dùng.
C. hệ thông chợ, mạng lưới các điểm phân bố.
D. hệ thống siêu thị và trung tâm thương mại.
Chỉ tiêu quan trọng nhất đánh giá sự phát triển của ngành nội thương nước ta là
A. đầu tư trực tiếp của nước ngoài (FDI)
B. tổng mức bán lẻ hàng hóa và doanh thu dịch vụ tiêu dùng
C. hệ thông chợ, mạng lưới các điểm phân bố
D. hệ thống siêu thị và trung tâm thương mại
Viết giải thuật tính trung bình cộng của một dãy bất kỳ có n số và đánh giá độ phức tạp của thuật toán
Đánh giá độ mạnh của mật khẩu là một bài toán quan trọng của ngành An Toàn Thông Tin. Trong bài tập này, nhiệm vụ của bạn là đánh giá độ an toàn của một mật khẩu bằng trọng số được gán cho các ký tự:
Các mật khẩu chỉ bao gồm ký tự tiếng Anh viết thường.
Mỗi chữ cái tiếng Anh viết thường được gán một trọng số nguyên từ 0
đến 25 theo cách như sau: Trọng số của ký tự 'a' được cho biết trước. Trọng số các ký tự còn lại được gán theo thứ tự vòng tròn. Ví dụ, nếu trọng số của 'a' là 5, trọng số của 'b' sẽ là 6, trọng số của 'c' là 7, …, trọng số của 'u' là 25, trọng số của 'v' là 0, …, trọng số của 'z' là 4
.
Độ mạnh của một chuỗi mật khẩu là tổng trọng số của các ký tự trong nó.
Yêu cầu: Cho trước một xâu ký tự thể hiện mật khẩu và trọng số của ký tự 'a', hãy tính độ mạnh của mật khẩu đó.
Input
Dòng đầu tiên chứa mật khẩu là một xâu gồm từ 1
tới 100 chữ cái tiếng Anh in thường. Dòng thứ hai chứa một số nguyên x duy nhất là trọng số của ký tự 'a' (0≤x≤25)
.
Output
Một số nguyên duy nhất là độ mạnh của mật khẩu đã cho.
input:
abc
1
output:
6
#include <bits/stdc++.h>
using namespace std;
int main()
{
string S;
int x,sum=0;
cin >> S;
cin >> x;
for (int i=0;i<=S.length()-1;i++)
{
sum+=((int(S[i])-97)+x)%26;
}
cout << sum;
}
bờm có rất nhiều đồng tiền xu chúng có các mệnh giá là a,b đồng việc bảo quản tiền xu rất phức tạp nên bờm muốn tiêu hết mỗi khi mua 1 món hàng giá c đồng bờm chỉ muốn thanh toán bằng tiền xu và sử dụng cách dùng nhiều đồng xu nhất cho abc hãy xác định số tiền xu nhiều nhất có thể sử dụng để thanh toán hoặc chỉ ra rằng không có cách thanh toán chỉ sử dụng 2 loại đồng xu a và b
Pascal
Đọc, quan sát, thảo luận để biết một số quy tắc đơn giản tính độ phức tạp thời gian thuật toán.
Tham khảo:
QT1. Quy tắc cộng: O(f(n)+g(n))=O(max(f(n),g(n)))
QT2. Quy tắc nhân:
- Với hằng sô: O(C.f(n))=O(f(n))
- Với hàm số: O(f(n).g(n))=O(f(n)).O(g(n))
Áp dụng phương pháp tinh chỉnh từng bước, xây dựng thuật toán để nhập vào một dãy số nguyên, đếm xem trong dãy có bao nhiêu số nguyên tố. Số lượng các số nguyên tố là số chẵn hay lẻ? Đánh giá độ phức tạp của thuật toán xây dựng được.
#include <bits/stdc++.h>
using namespace std;
long long n,i,dem,a[10000];
//chuongtrinhcon
bool ktnt(long long n)
{
for (int i=2; i*i<=n; i++)
if (n%i==0) return(false);
return(true);
}
//chuongtrinhchinh
int main()
{
cin>>n;
dem=0;
for (i=1; i<=n; i++)
{
cin>>a[i];
if (a[i]>1 && (ktnt(a[i])==true)) dem++;
}
cout<<dem;
return 0;
}