Bình loạn về thuật toán in ra các số chẵn trong khoảng từ 1 đến 100
White

Bùi Văn Nguyện viết ngày 24/06/2018

Hãy viết chương trình in ra các số chẵn trong khoảng từ 1 đến 100. Đây là một bài tập rất cơ bản với những người mới học lập trình, nó không hề khó, thậm chí dễ như ăn kẹo.

Đây là cách giải:

alt text

Có thể chương trình trên chỉ mang tính chất hài hước, mang nặng tinh thần chống đối, tuy nhiên chúng ta sẽ phân tích theo một cách khác, dưới góc nhìn thực tế.

Nếu đây là một dự án thực tế

Hãy tưởng tượng có một ông khách giàu sụ đến và bảo bạn rằng "Viết cho tôi chương trình in ra các số chẵn trong khoảng từ 1 đến 100, hoàn thành trong 01 ngày, tôi sẽ trả cho anh 1000 đô". Và tất nhiên, bạn không thể để lỡ kèo thơm như thế được.

Mình cho rằng đây là một lời giải tốt

Tại sao lại là lời giải tốt, mà không phải là lời giải đúng? Bởi vì trong trường học, nếu bạn đưa ra lời giải đúng bạn sẽ được điểm cao. Nhưng trong thực tế, cùng một vấn đề có rất nhiều cách để giải quyết, và không có phương án nào là đúng tuyệt đối cả, chỉ có phương án này tốt hơn phương án kia mà thôi.

Code chỉ là phù du, sản phẩm mới là quan trọng

Có hàng tỉ cách để in ra được dãy số này, nhưng ai mà quan tâm cơ chứ? Cái mà người ta mong muốn là gì? Là chương trình in ra được dãy số trên, tất cả chỉ có vậy. Như blogger Hoàng code dạo đã viết "Éo ai quan tâm đến code bạn viết đâu". Ông khách kia trả tiền để có được sản phẩm, chứ không phải code hay thuật toán gì cả.

Hiệu năng và giá trị

Có thể cách giải trên có vẻ không thông minh cho lắm, nhưng nếu đây là một sản phẩm thực tế, tôi sẽ cho nó điểm 10, rõ ràng rằng chương trình đã làm tốt nhiệm vụ, tối ưu về tốc độ, ít (hoặc không có) lỗi phát sinh, sản phẩm dùng tốt đối với khách hàng, mang lại giá trị thực tế.

Đây là phương án phù hợp

Sau khi xem ảnh trên, một số bạn comment rằng: "Thế nếu là 10.000 thì viết đến sáng à"

Không, nếu như bài toán là 10.000, chúng ta sẽ chọn phương án khác, các phương án đưa ra phải phù hợp với điều kiện và khả năng thực tế. Sử dụng những công nghệ và thuật toán phức tạp cho một vấn đề đơn giản là không thông minh cho lắm.

Mặc dù diện tích tờ giấy làm bài thi là có hạn, nhưng nó đủ để đáp ứng trong trường hợp này. Liên hệ với thực tiễn, chẳng việc gì phải sử dụng NoSql database cho một bảng chỉ có 100 record cả.

Về thời gian hoàn thành dự án, thời gian làm bài đủ để viết dãy số trên. Do đó, đây là một phương án tốt đảm bảo tiến độ trước deadline.

Hi vọng bài viết này đã cho bạn một cái nhìn mới, bạn nghĩ sao về bài thi này? Hãy để lại comment ở bên dưới.

Nguồn: Bình loạn về thuật toán in ra các số chẵn trong khoảng từ 1 đến 100 từ Blog Lập Trình Cuộc Sống

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Bùi Văn Nguyện

10 bài viết.
111 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
33 6
Nguồn: (Link) trên (Link) Là một lập trình viên, chắc hẳn bạn cũng có những ý tưởng phần mềm hay, hữu ích muốn làm. Bạn hăm hở háo hức làm một các...
Bùi Văn Nguyện viết 5 tháng trước
33 6
White
30 7
Dạo gần đây có rất nhiều tranh cãi xung quanh vấn đề bằng cấp đối với lập trình viên, người bảo cần thiết, người bảo không. Khi mình bắt đầu chính ...
Bùi Văn Nguyện viết 6 tháng trước
30 7
White
20 13
Có thể khi đọc xong tiêu đề, bạn sẽ nghĩ cái thằng này thật vớ vẩn, lập trình thì liên quan quái gì đến sáng tạo? Đây là blog lập trình, thì viết v...
Bùi Văn Nguyện viết 5 tháng trước
20 13
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
10 bài viết.
111 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!