btvn.vn
Tìm kiếm Đăng nhập

Tính giới hạn n từ mô hình thời gian giả định

Lưu trên thiết bị này
Kĩ thuật lập trình — CS · Chọn bài khác

Phải có công thức số thao tác

Giả sử **trong một mô hình học tập**, mỗi thao tác mất đúng 1 micro giây, tức `10⁻⁶` giây. Một giây cho tối đa 1 000 000 thao tác. Nếu một chương trình được **quy ước cụ thể** là cần `T(n) = n²` thao tác, điều kiện chạy trong một giây là `n² ≤ 1 000 000`, nên số nguyên `n` lớn nhất là 1000. Chỉ biết thuật toán thuộc `O(n²)` thì **chưa đủ** tính ra `n = 1000`, vì bậc O lớn bỏ qua hệ số, các hạng thấp hơn và chi phí thực của thao tác. Quy ước 1 micro giây cũng không phải tốc độ thật cố định của mọi máy.

Một phút vẫn phải lấy phần nguyên phù hợp

Một phút bằng 60 000 000 micro giây. Với đúng mô hình `T(n) = n²`, cần `n² ≤ 60 000 000`. Vì `7745² = 59 985 025` còn `7746² = 60 000 516`, số nguyên lớn nhất là **7745**. Việc làm tròn lên 7746 sẽ vượt ngân sách 516 thao tác. Nếu công thức là `T(n) = n`, một phút cho tối đa 60 000 000 phần tử theo mô hình ấy.

Bài luyện

Nếu `T(n) = n²` thao tác và mỗi thao tác đúng 1 micro giây, `n` nguyên lớn nhất trong 1 giây là bao nhiêu?
Chọn một đáp án

Bài luyện

Với cùng mô hình `T(n) = n²`, số nguyên `n` lớn nhất trong 1 phút là gì?
Chọn một đáp án

Bài luyện

Nếu chỉ biết một thuật toán có bậc `O(n²)`, có thể suy chính xác `n` tối đa trong một giây không?
Chọn một đáp án

Đang học