Cách tư duy thuật toán

Cần lắm mọi người cho e ít lời khuyên về cách tư duy thuật toán. Các bài hầu như e đều biết cách làm về mặt toán học mà không hiểu sao e ko chuyển nó thành thuật toán được. Cũng do 1 phần cấp 3 e cũng chưa động gì đến c pascal cả.

Cụ thể bài nào nè, bài mà giải bằng toán được nhưng không biết code í.

4 Likes

nghe vô lý ghê
cái gọi là thuật toán chính là hiện thực những gì mình giải bằng tay và đưa nó vào code bằng những câu lệnh
code chỉ là công cụ, thuật toán không liên quan gì tới cú pháp cả

5 Likes

Trước khi đứng dậy và đi dc, hãy tập bò. Trước khi có thể sáng tạo, hãy học cách bắt chước cho tốt.
Thuật toán cũng vậy, ko có gì cao siêu cả, chỉ cần em học tốt những thuật toán căn bản và giải nhiều bài tập, tới những bài khó tự nhiên sẽ có cách suy luận.

4 Likes

Bạn này chắc mới học lập trình gõ chắc chưa đc vài nghìn dòng code thì khó chuyển ý tưởng thành code là đúng rồi. Đọc nhiều code gõ lại nhiều là ok

1 Like

E cảm ơn. Kk e mới học lập trình ạ

A nói đúng thật. E học dc 1 tháng r. E học toán khá tốt. Nhưng tin thì lại kkk

E giải tay dc. Có hướng nhưng thuật toán e kém lắm

Bạn hiểu sai về thuật toán r.
Thuật toán là cách giải 1 bài toán theo ngôn ngữ tự nhiên, cái này bạn đã có (thuật toán tối ưu chưa xét).
Ví dụ với bài giải phương trình ax + b = c.
Thuật toán là:

  • Kiểm tra nếu a = 0 và b=c thì phương trình vô số nghiệm.
  • Nếu a = 0 và b!=c thì pt vô nghiệm

    Những cái trên bạn đã biết, cái bạn chưa biết là việc sao chuyển những câu trên thành dòng lệnh để chương trình hiểu đc. Thì với mỗi ngôn ngữ sẽ có 1 cách viết khác nhau, bạn cần có nhiều tg hơn để thử và sai.
    Good luck!
3 Likes

Hà mã tím đáng yêu nghĩ trong giai đoạn đầu bạn cứ nghĩ về lập trình là ghi ra 1 đoạn hướng dẫn cho máy tính:

nếu cái này xảy ra thì làm cái kia
2 Likes

bạn giải tay như thế nào
cũng là + - * /, theo điều kiện, lặp đi lặp lại?
những gì bạn làm khi giải bằng tay để cho ra kết quả có gì ngoài những cái đó không?

3 Likes

Dạ vâng oki a ạ. Cảm ơn đã góp ý

Có những cái e nói ra nó khó hiểu mà e chỉ hiểu trong đầu mình ý. :joy:

tư duy lâp trình là có thể mô tả lại những bước mình làm để giải toán
sao cho cái mà mình mô tả đó, người khác có thể làm được
nó không phụ thuộc vào ngôn ngữ lập trình.

5 Likes

thầy tôi đã nói 1 câu này: “Khi bạn chưa thể nói để người khác hiểu tức là bạn chưa hiểu”.

6 Likes

chuẩn chuẩn :crazy_face::crazy_face::crazy_face::crazy_face::crazy_face:

1 Like

Mình nghĩ ngôn ngữ lập trình không ảnh hưởng gì đến việc bạn có nghĩ ra thuật toán cho một bài hay không. Nếu bạn hiểu cách làm của bài về mặt toán mà không nghĩ được thuật, có thể do bạn chưa quen với tư duy tin học. Tư duy toán là tìm ra công thức tổng quát, còn tư duy tin là dùng công thức tổng quát để tối ưu thuật toán, kiểu more specific hơn.
Còn về phương pháp thì vẫn như thường lệ, practice and practice. Mình recommend giải các bài về số học, hình học trước để bạn dần quen từ toán sang tin. Khi đã quen với thuật toán và code, bạn có thể học & giải các bài thuần tư duy tin, các thuật toán QHĐ, đồ thị, CTDL …

2 Likes

Chắc vậy r a ơi. Kkk

Dạ vâng. E cảm ơ ạ. Thank

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?