Bài viết này là câu chuyện thật của mình, hy vọng nhận được sự góp ý của mọi người.
Vì bài dài và đỡ mất công chỉnh sửa lại nên mình xin được chia sẻ link.
http://niviki.com/2017/01/bi-gau-bo-vi-khong-biet-big-o-la-gi/
Bài viết này là câu chuyện thật của mình, hy vọng nhận được sự góp ý của mọi người.
Vì bài dài và đỡ mất công chỉnh sửa lại nên mình xin được chia sẻ link.
http://niviki.com/2017/01/bi-gau-bo-vi-khong-biet-big-o-la-gi/
Đắng lòng thật :v
Cảm ơn anh đã chia sẽ bài viết
Thớt đang mô tả big-theta chứ không phải big-O. Thực ra big-O có thể sử dụng trong các công thức xấp xỉ như:
ln(1 + x) = 0 + x - x^2 + O(x^3) (x -> 0)
đánh giá: lim(x -> 0)(ln(1+x) / x) = lim(x -> 0)(0 + x + O(x^2)) / x = lim(x -> 0)(1 + O(x)) = 1
Trong đánh giá thuật toán ta cho x -> +inf.
ừa, trong bài viết mình có nói là học thuật thì người ta phân rõ ra Big O với Big Theta. Nhưng để dễ trao đổi trong đời sống thì gộp 2 cái lại với nhau
chắc cô ý chỉ đùa yêu gái cùng ngành nó khổ thế đây anh à thế nào em ko bao giờ yêu gái cùng ngành cà mặc dù chưa yêu ai cả
Sau này bạn làm cả Độ Phức tạp Không gian nhé
Cái cô này cũng nhảm, đâu phải IT thì cái gì cũng thông tường hết đâu.
Nhìn lại thấy hoàn cảnh giống mình, thằng bạn nó hỏi: làm sao hack nick Facebook của người khác ??
Mình bí, nó phán câu: Học IT mà ko biết cái vụ này hả ?
Ôi, cuộc đời của 1 thằng IT…
Cái phần Giữ lại đại lượng lớn nhất ấy anh, đáng lẽ biểu thức trên rút gọn lại là O(N^2) chứ đúng không anh @VanKhoa ?
hư cấu thế mà bạn vẫn tin à
Câu đó thì từ biết sơ sơ, tới nắm cặn kẽ (mấy course), tới làm được PoC là cả 1 quãng đường dài
cảm ơn bạn, lỗi typo để mình gõ lại
Cái này độ phức tạp con gái
Thực ra cả bài không liên quan gì đến con gái cả, tựa để chỉ để lôi cuốn người đọc thôi. Toàn bài tập trung vào giải thích định nghĩa Big O theo cách dễ hiểu.
Comment trước khi đọc bài một xíu: Big O là trường hợp xấu nhất (upper bound), còn có một cái là Big Omega là trường hợp tốt nhất (lower bound).
Hy vọng đúng
Không đúng Nói ví von thì nó ntn:
Ngoài ra mỗi trường hợp best, average, worst đều có Omega và O riêng.
Khi đã viết thành thuật toán thì gần như là theta luôn, vì thế nên đây là ví dụ sử dụng Omega và O.
Chứng minh Fibonacci(n) có theta(n) chữ số (n > 0):
Với n >= 3, Fibo(n) > Fibo(n-1) nên Fibo(n+1) < 2Fibo(n).
Lập dãy u[n] = Fibo(n+3) và v[n] = 2v[n-1], v[0] = Fibo(3). Dễ thấy v[n] = theta(2^n) và u[n] <= v[n] nên Fibo(n) = O(2^n).
Tương tự, Fibo(n+1) > 2Fibo(n-1). Xét dãy w[n] = 2w[n-2], w[0] = Fibo(3) = 2, w[1] = Fibo(4) = 3. Dễ thấy w[n] = theta(2^(n/2)) và u[n] >= w[n] nên Fibo(n) = Omega(căn(2^n))
Lấy log của v[n] <= u[n] <= w[n] thu được đpcm.