thảo luận Nhật ký học lập trình của - Ngày Được Tự Do

Chỗ này ko biết cách làm lắm, ai chỉ với

Đồ thị :
1->2
2->3
3->2
2->1
3->1

Thì làm sao để tìm đc các chu trình đơn:

1-2-1
1-2-3-1
2-3-2

via theNEXTvoz for iPhone
Bạn học đến phần đồ thị sẽ có phần phát hiện chu trình trong đồ thị có hướng, từ đó cuztomize chút là lưu được các chu trình thôi. Cụ thể bài này áp dụng dfs, mỗi khi duyệt 1 đỉnh thì lưu trạng thái đang đỉnh hiện tại đang active trên stack. trước khi dfs các hàng xóm của đỉnh này thì kiểm tra nếu có hàng xóm cũng đang active -> có chu trình.
ví dụ duyệt đệ quy từ nút 1.
dfs(1) -> active(1) = true
- duyệt đệ quy hàng xóm của 1, tức là 2,3
-- dfs(2) -> active(2) = true
--- duyệt đệ quy hàng xómg của 2, tức là 1,3
--- dfs(1) . thấy active(1) already => lưu chu trình 1,2,1
--- dfs(3) -> active(3) = true
----- duyệt đệ quy hàng xóm của 3, tức là 2,1
----- dfs(2). thấy active(2) => lưu chu trình 2,3,2.
----- dfs(1). thấy active(1) => lưu chu trình 1,2,3,1.
.....

Ở cuối mỗi dfs, nhớ remove nút hiện tại không active. tức là đã duyệt xong.
Ở ngoài cùng gọi dfs cho tất cả các nút của graph.

Như các post ở trên mình cũng thấy nên học reactJs, js, html, css, db, làm 1,2 cái web projects để show hàng -> dễ xin việc hơn. Thuật toán các thứ học sau. Cái hay của computer science là bạn học theo kiểu top-down cũng được. không cần bottom-up như Toán. ví dụ để lập trình bạn không cần biết turing machine, lambda calculus, state machines; để làm web cũng không cần biết các thứ giao thức bên dưới. Biết thì tốt nhưng học dần dần cũng được.
 
Khó nhất là bài tính độ phức tạp của giải thuật, đến giờ mình vẫn ko hiểu cách giải.
t thấy độ phức tạp cứ hiểu đơn giản bất kì 1 phép toán cộng/ trừ/ nhân/ chia,gán giá trị/... thì có độ phức tạp O(1), 1 vòng lặp thì là O(n), 2 vòng lặp thì O(n^2). Còn như tìm kiếm nhị phân 1 tập đã được sắp xếp, cứ mỗi lần tìm kiếm nó chia đôi tập hợp để tìm thì O(log n).
Theo hiện giờ t hiểu là vậy :D:D:D
 
t thấy độ phức tạp cứ hiểu đơn giản bất kì 1 phép toán cộng/ trừ/ nhân/ chia,gán giá trị/... thì có độ phức tạp O(1), 1 vòng lặp thì là O(n), 2 vòng lặp thì O(n^2). Còn như tìm kiếm nhị phân 1 tập đã được sắp xếp, cứ mỗi lần tìm kiếm nó chia đôi tập hợp để tìm thì O(log n).
Theo hiện giờ t hiểu là vậy :D:D:D
chia đôi tập xong ở mỗi lần chia đôi mà for i:1->n thì nó lại kiểu khác, không phải O(logN)
 
giờ bạn đã biết viết được phần mềm tìm đường đi ngắn nhất từ nhà bạn đến cty chưa? Đồ thị đó.
Ví dụ nhà bạn là điểm A.
Từ A đi đến cty bạn có nhiều đường đi. Bạn đi từ A làm sao qua các điểm A B C D E F, và công ty bạn ở điểm G.
Bạn tự vẽ hình, tự cho số liệu ma trận rồi làm được bằng các thuật toán C++ trong môn lý thuyết đồ thị, thì bạn đã có thể vào cty game rồi. Dợt sơ STL cái nữa là lương 1 năm tính bằng tỷ bạn ưi!
 
Hồi học tính chuyên front-end mà riết giờ lại thành full-stack mà lại thích back-end, cơ bản là vì back-end tập trung vào lượng ít kiến thức nhưng phải vận dụng khéo để giải quyết vấn đề, còn Frontend thì đkm kiến thức là bao la, làm nhanh thì khó nhưng cứ sreach là có. Tính học chốt quá Algo với Data Structures nữa nhảy mẹ về BE cho lành. Nhưng giờ vẫn apply FE.:censored:

Hôm qua đi phỏng vấn bị stun vcl, éo đem sạc mà phải làm cái Login page có gọi API luôn. Mà mình có làm cái app trống sẵn đâu ? Mất cụ nó 30 phut setup create react app + cài 5,6 cái Addon nhỏ như axios, React router dome, react bootstrap... xong lại éo biết xài PTS, cho cái PDS file kêu phải extract ra chi tiết để làm... Nội mò mò cắt ảnh mất hơn 1 tiếng, vô code đc mấy dòng shutdown cmnr cái lập. :oops:

Kính nghiệm xương máu về nhà làm cái app trống sẵn để trong máy + setup cái lệnh cho nó làm app thông minh hơn xí. Giờ phải lại học thêm tí PTS,

1. Back-end cũng cần lượng kiến thức lớn chỉ có hơn chứ ko có kém FE. Chắc b tưởng BE là làm CRUD chắc, nội một mục threading thôi mà b code cho tốt thì cũng tốn tgian học cỡ vài ba framework FE rồi.

2. Đi pv ngta cho b làm cái page login với call API, mà b ngồi rị mọ cài đặt react rồi addon, rồi lib, rồi tool hết cmn nó nửa ngày rồi mới code đc. Đó cũng là vấn đề chung của mấy e dev FE hiện tại: kn chỉ có React, ko có React (hoặc 1 framework quen tay nào đó) thì như cụt tay cụt chân. Mọi bài toán đưa ra dù lớn nhỏ dài ngắn ntn đi nữa cũng setup React cái đã rồi mới code được.
 
Tốt nhất vào trung tâm, hoặc tìm thầy dạy nhóm. Học cách làm việc, ban đầu có thể vào outsoucre để có cái nhìn tổng quan về nghề. Chọn 1 stack, 1 domain để theo lâu dài. Đừng quá nặng nề thuật toán, quy hoạch động hay gì gì cả. Tìm cách làm tối ưu và sáng, đơn giản. Học sql. Làm pet pj và nhờ mn trên này review.
————
Bạn cứ nghĩ rằng, những người có chuyên môn và được đào tạo, mỗi ngày code và làm việc liên quan đến códe 8-12h/ ngày. Thì để đuổi được họ, bạn cần nỗ lực như thế nào.
 
Tốt nhất vào trung tâm, hoặc tìm thầy dạy nhóm. Học cách làm việc, ban đầu có thể vào outsoucre để có cái nhìn tổng quan về nghề. Chọn 1 stack, 1 domain để theo lâu dài. Đừng quá nặng nề thuật toán, quy hoạch động hay gì gì cả. Tìm cách làm tối ưu và sáng, đơn giản. Học sql. Làm pet pj và nhờ mn trên này review.
————
Bạn cứ nghĩ rằng, những người có chuyên môn và được đào tạo, mỗi ngày code và làm việc liên quan đến códe 8-12h/ ngày. Thì để đuổi được họ, bạn cần nỗ lực như thế nào.
Cười vl. Đi làm mà phải đuổi ai vậy.
 
1. Back-end cũng cần lượng kiến thức lớn chỉ có hơn chứ ko có kém FE. Chắc b tưởng BE là làm CRUD chắc, nội một mục threading thôi mà b code cho tốt thì cũng tốn tgian học cỡ vài ba framework FE rồi.

2. Đi pv ngta cho b làm cái page login với call API, mà b ngồi rị mọ cài đặt react rồi addon, rồi lib, rồi tool hết cmn nó nửa ngày rồi mới code đc. Đó cũng là vấn đề chung của mấy e dev FE hiện tại: kn chỉ có React, ko có React (hoặc 1 framework quen tay nào đó) thì như cụt tay cụt chân. Mọi bài toán đưa ra dù lớn nhỏ dài ngắn ntn đi nữa cũng setup React cái đã rồi mới code được.
tui dev backend nên thấy thím nói khá đúng. phải ca này tôi kéo cái bootstrap form login về xong dùng js hay jquery call api đấy là xong. như thế dc ko nhỉ :D

via theNEXTvoz for iPhone
 
Last edited:
Back
Top