30/09/2018, 20:44
Làm sao học thuật toán?
Chào mấy anh ! Em đọc mấy cái blog thấy người ta bảo là học tốt thuật toán rồi học ngôn ngữ lập trình. Vậy cho em hỏi là học thuật toán ở đâu ?
Bài liên quan
Chào mấy anh ! Em đọc mấy cái blog thấy người ta bảo là học tốt thuật toán rồi học ngôn ngữ lập trình. Vậy cho em hỏi là học thuật toán ở đâu ?
Học một ngôn ngữ lập trình rồi học thuật toán thì tốt hơn nhé.
Search google “Giải thuật toán” đi sẽ hiểu
vi.wikipedia.org
Thuật toán
Thuật toán , còn gọi là giải thuật, là một tập hợp hữu hạn của các chỉ thị hay phương cách được định nghĩa rõ ràng cho việc hoàn tất một số sự việc từ một trạng thái ban đầu cho trước; khi các chỉ thị này được áp dụng triệt để thì sẽ dẫn đến kết quả sau cùng như đã dự đoán trước. Nói cách khác, thuật toán là một bộ các quy tắc hay quy trình cụ thể nhằm giải quyết một vấn đề trong một số bước hữu hạn, hoặc nhằm cung cấp một kết quả từ một tập hợp của các dữ kiện đưa vào. Ví dụ: thuật toán để giả...
Thuật toán phải dùng một ngôn ngữ lập trình để hiện thực. Càng đơn giản càng tốt. Mình nghĩ bạn nên dùng Python hoặc Pascal.
Mình nghĩ nên học toán song song với ngôn ngữ lập trình.
Học thuật thì cũng phải biết ngôn ngữ lập trình trước
mak học thuật khó hơn so vs học ngôn ngữ
tai sao khong dung c ban nhi
Bạn nên học những môn như phân tích và thiết kế thuật toán (design and analysis of algorithms), lý thuyết đồ thị (Graph theory các thuật toán thiên về đồ thị, cây) chẳng hạn hoặc đọc các quyển sách như Introduction to Algorithms của Thomas H. Corman, Algorithms của Robert Sedgewick & Kevin Wayne…v…v :v còn về ngôn ngữ thì bạn rành ngôn ngữ nào thì học thuật toán bằng ngôn ngữ đó :v à mà nếu bạn đã biết hơn 1 ngôn ngữ lập trình rồi thì học thuật toán chả sao cả nhưng nếu chưa biết 1 ngôn ngữ nào thì bạn nên học rành 1 ngôn ngữ(để triển khai thuật toán trên máy tính) rồi hẳn học thuật toán nếu không chạy giải thuật bằng tay chắc chết quá (mặc dù cũng được đó ) :v. Good luck!
chạy bằng tay mới hiểu chứ code từ mã giả người ta viết sẵn thì hiểu được gì?
hiểu rồi thì mới code được. Chưa hiểu thì biết cái gì mà code
Hướng dẫn bạn ấy vừa phân tích vừa thiết kế mà không biết ngôn ngữ nào thì sao mà thiết kế thuật toán được 1 vài kỹ thuật như Greedy, Dynamic chạy tay còng được chứ mấy cái khác thì thua
Graph theory cũng chạy tay hết mà.
Ko biết ngôn ngữ nào thì viết pseudo code. Nguyên cuốn Intro to Algo của Cormen cũng toàn viết mã giả ko mà. HIểu thuật toán thì ngôn ngữ gì cũng áp dụng được. Đâu cần phải biết 1 ngôn ngữ lập trình rồi mới thiết kế thuật toán được.
Thuật toán là lý thuyết. Áp dụng thuật toán là thực hành. Áp dụng thuật toán thì còn phải có debug đủ thứ, hoặc hiểu được hạn chế của ngôn ngữ mà tìm cách áp dụng cho đúng. Debug hay cách code riêng biệt của từng ngôn ngữ thì có liên quan gì tới thuật toán đâu ~.~
ví dụ mã giả viết cho mảng 2 chiều Aij thì mặc định index trong mảng bắt đầu bằng số 1 (1 <= i <= n, 1 <= j <= n). Matlab thì ko sao, nhưng C,C++,Java, thì phải đổi mấy cái i j k trong vòng lặp lại cho đúng. Ngược lại có mã giả bắt truy cập phần tử b0 Matlab ko làm được thì lại phải đổi +1. Cái đổi index này thì có liên quan gì tới thuật toán đâu.
Chả biết trường các bạn dạy sao nhưng trường tôi dạy như thế đấy học & hiểu mã giả chạy tay xong rồi phải thiết kế giải thuật bằng ngôn ngữ và áp dụng vào các bài toán thực tế
Dạ cám ơn mấy anh đã góp ý kiến ! em cũng học qua cơ bản ngôn ngữ C nên em muốn biết thêm là làm sao học thuật toán và học ở đâu ?
mình nghĩ là bạn nên nâng cao trình độ toán. Không hề vô lý đâu khi các bạn mình tham gia các cuộc thi tin(các cuộc thi giải thuật) đều phải học toán rời rạc. Bạn nên học thêm về lý thuyết trò chơi, các đề thi IMO toán rời rạc của nó cũng rất hay, sách tham khảo về toán mình nhớ mỗi quyển counting and configuration
quyen nay duoc bieu dienm bang ngon ngu gi ha ban
quyển này về toán thôi, không phải là lập trình, Ý mình là nếu bạn muốn nâng cao giải thuật thì nên nâng cao trình toán nghĩa là tư duy, đặc biệt là toán rời rạc
Introduction to Algorithms nay ha ban thanh nhieu nha