Project Euler là một loạt các bài toán liên quan đến ứng dụng toán học, tư duy logic và lập trình.
Trong nhiều trường hợp, bạn có thể tạo ra một giải pháp "trâu bò" để ra được kết quả.
Nếu bạn thực sự muốn tạo ra các giải pháp tốt, tối ưu về giải thuật và thời gian chạy nhanh chóng, bạn cần nghiên cứu một số giải thuật toán học đằng sau các vấn đề.
Việc tối ưu được một bài toán từ PE sẽ giúp người thực hiện có một "bước tiến" trong tư duy logic và ứng dụng ngôn ngữ lập trình.
Cá nhân tôi thích "toán học" (mặc dù không giỏi toán) và tôi lựa chọn Python để giải quyết các bài toán trên PE.
Tại sao lại là Python mà không phải C++/C# hay Java?
Vì Python là ngôn ngữ lập trình đưa tôi đến với Pymi.vn và projecteuler.net
Về code Python, tôi sẽ thực hiện code theo đúng chuẩn PEP8 (tối đa).
Mục tiêu đặt ra của tôi là mỗi tuần làm khoảng 5 bài có giải thích (viết phần giải thích mất rất nhiều thời gian).
Mỗi bài viết có thể gồm có bài giải thích hoặc chỉ có code :D . Những bài tôi không giải thích phần lớn là do... không biết làm thế nào để diễn đạt ý của mình.
Khi nào tôi cán đích hết page-1 thì sẽ dừng lại :)
Danh sách các bài viết phân tích chiến thuật giải các bài toán trên https://projecteuler.net/ (Mục tiêu đặt ra là làm hết page-1, liên tục cập nhật ít nhất 1 ngày/1 bài)
P/S: Code Python run on my MacOS: (for Benchmark timings)
MacBook Pro (13-inch, 2016, Two Thunderbolt 3 ports)
Processor 2 GHz Intel Core i5
Memory 8 GB 1867 MHz LPDDR3
"Gạch đá" các loại có thể ném vào issue hoặc inbox của tôi :)