Kỹ năng toán học tiên quyết cho cuốn sách Giới thiệu về Thuật toán (CLRS) [đã đóng]


30

Tôi đã có kiến ​​thức về các thuật toán cơ bản. Bây giờ tôi có kế hoạch nghiên cứu thêm các thuật toán nâng cao và tôi quyết định đi cùng với Giới thiệu về Thuật toán .

Tôi không chắc chắn, tôi có cần làm mới kỹ năng toán học của mình trước khi đọc cuốn sách này hay không? (Tôi quên gần như môn toán mà tôi học ở trường trung học và đại học) Nếu cuốn sách này cần kiến ​​thức toán học mạnh, xin vui lòng đề xuất các môn học có lợi.

Tôi muốn tìm hiểu về việc thực hiện, thiết kế và phân tích các thuật toán.


1
Đây là một nguồn tuyệt vời để làm mới các kỹ năng của bạn nếu bạn chọn bạn cần. khanacademy.org
Alan B. Dee

Câu trả lời:



9

Vì @ user16764 ám chỉ đến các đề xuất khóa học cụ thể của MIT (6.042) , một phiên bản thường được gọi là toán học rời rạc , kết hợp với phép tính cấp độ (đại học) năm đầu tiên là những yêu cầu chính để hiểu nhiều thuật toán (cơ bản) và của chúng phân tích.

Các thuật toán chuyên ngành hoặc nâng cao có thể yêu cầu nền toán học bổ sung hoặc nâng cao, chẳng hạn như về thống kê / xác suất (lập trình khoa học và tài chính), đại số trừu tượng và lý thuyết số (tức là cho mật mã học).

Khi còn là học sinh, khóa học toán rời rạc của tôi có sách giáo khoa Toán học rời rạc với các ứng dụng của Susanna Epp, và một cuốn sách giáo khoa khác mà tôi tìm thấy trong thư viện của mình là Toán học rời rạc của Kenneth Ross và Charles Wright. Một bản sao chất lượng được sử dụng của một trong số này có thể là một nơi hợp lý để bắt đầu (có hoặc không kết hợp với MIT Open Course Ware, tùy thuộc vào cách học của bạn). Để tự học tôi thường thấy có hai nguồn để tham khảo có thể giúp làm rõ những điểm tôi gặp khó khăn trong việc hiểu.

Một giải pháp thay thế mà tôi thấy được đề xuất là Toán học cụ thể , ấn bản thứ hai của Ronald L. Graham, Donald E. Knuth và Oren Patashnik. Tôi không thể tìm thấy bản sao của mình vào lúc này và đã không làm việc chăm chỉ vì vậy tôi không thể đưa ra khuyến nghị cho hoặc chống lại nó.

Từ lời nói đầu:

Nhưng chính xác thì Toán học cụ thể là gì? Nó là sự pha trộn của toán học liên tục và rời rạc. Cụ thể hơn, đó là thao tác kiểm soát các công thức toán học, sử dụng một tập hợp các kỹ thuật để giải quyết các vấn đề.

Tôi sẽ lưu ý các bình luận cộc lốc của Bill the Lizard trong mục blog này " Các lập trình viên sách không thực sự đọc ". Cá nhân tôi vẫn thấy Thuật toán của Robert Sedgewick (nay là phiên bản thứ 4) ít đáng sợ hơn và dễ tiếp cận hơn.

Liên quan đến sự liên tục (tức là Bất số) một phần của toán học, Calculus Stewart có vẻ là một tome thường xuyên được sử dụng để giảng dạy cho sinh viên về sự giác ngộ mà xuất phát từ sự khác biệt và hội nhập.


6

Nó không thực sự quá nhiều toán học, vì nó thoải mái và trôi chảy với hình thức toán học. Tìm hiểu thuật ngữ thiết lập cơ bản và chủ nghĩa hình thức tương ứng.

Việc phân tích các thuật toán, đặc biệt là trong bối cảnh của lý thuyết phức tạp, trong đó bạn nghiên cứu vấn đề tính toán cơ bản (nếu bạn đang cố gắng làm một điều gì đó quan trọng hơn ký hiệu "Big-Oh"), đòi hỏi phải đầu tư đáng kể thời gian vào lý thuyết đồ thị và đại số trừu tượng, tất cả ngoài một liều lượng lớn của sự thông minh bẩm sinh.


1

Tôi tin rằng bạn tốt để đi trừ khi bạn quan tâm đến "Phân tích" các thuật toán, không chỉ là việc thực hiện chúng. Đó là khóa học của chúng tôi thường và khóa học toán hoặc CS trong hầu hết các chương trình giảng dạy đại học.

Chỉ cần hiểu làm thế nào để thực hiện các thuật toán trong cuốn sách đó không phải là một vấn đề


Tôi muốn tìm hiểu về phân tích các thuật toán quá. Xin vui lòng cho tôi đề nghị. :)
Ẩn danh

@ Đồng nghĩa Trong trường hợp đó tôi nghĩ không có lựa chọn nào khác ngoài cắn viên đạn. Tôi bắt đầu dạy bản thân môn toán rời rạc, nhưng sớm bị choáng ngợp và bỏ cuộc, đã thử cách dễ dàng bằng cách làm những cuốn sách "phổ biến" về cấu trúc dữ liệu và thuật toán, chỉ để thấy rằng thỏa thuận thực sự bị thiếu. Bây giờ tôi đang tập trung can đảm để bắt đầu lại.
ankush981
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.