Thuật toán của Floyd [đã đóng]


8

Có thể (dự kiến) cho một cá nhân để tìm ra (chưa bao giờ nhìn thấy nó trước đây) thuật toán nếu được hỏi tại một cuộc phỏng vấn? Những vấn đề khác có giải pháp thú vị như nhau?

Chỉnh sửa: Do sự nhầm lẫn của thuật toán thực tế mà tôi đang đề cập, đó là thuật toán tìm chu kỳ của Floyd , hay còn gọi là thuật toán rùa và thỏ.


Nếu bạn chưa bao giờ nghe về Floyd, bạn sẽ không thể tìm ra thuật toán của anh ấy, bởi vì ngay cả khi bạn không bao giờ biết rằng được gọi là Floyd. Nếu bạn nghe, tuy nhiên, rất có thể bạn đã nghiên cứu thuật toán trước đó.
P Shved

Câu trả lời:


7

Chà, không có gì là không thể như họ nói cả.

Tuy nhiên, nếu bạn chưa bao giờ nghe về Dijkstra's hoặc Flloyd thì việc tiếp tục tìm hiểu điều này trong một cuộc phỏng vấn là điều không thể.

Mọi người dành cả cuộc đời để phát triển một thuật toán duy nhất, chỉ trong trường hợp bạn có hai suy nghĩ về nó.


Xin lỗi về sai lầm của tôi, xin vui lòng đọc chỉnh sửa của tôi.
picakhu

7

Không, không phải vậy. Phải mất nhiều năm để các nhà toán học / nhà khoa học máy tính vĩ đại nhất trong thời gian của họ xây dựng các thuật toán đó, bạn sẽ không làm điều tương tự trong 2 phút trong khi chịu áp lực.

Đối với phần thứ hai của câu hỏi của bạn ... Chà, tôi thực sự không biết những gì bạn cho là thú vị ở đây. Nếu thuật toán, cấu trúc dữ liệu và tổ hợp của nó phù hợp với những gì bạn thích, chỉ cần đọc "Nghệ thuật hoặc lập trình máy tính", nó sẽ không tốt hơn thế nhiều.


Xin lỗi về sai lầm của tôi, xin vui lòng đọc chỉnh sửa của tôi.
picakhu

Tôi chắc chắn rằng hầu hết các thuật toán tuyệt vời mất ít nhất vài ngày để được phát hiện ra khi một người thích hợp bắt đầu quan tâm đến vấn đề.
salva

5

Người phỏng vấn có thể hỏi một câu hỏi không thể hoặc vô nghĩa để xem phản ứng của bạn.

Họ chỉ muốn hiểu cách tiếp cận vấn đề của bạn, không nhất thiết là kiến ​​thức.

Có rất nhiều thông tin ngoài kia để giữ lại, rằng điều quan trọng là năng lực của google và cách tiêu thụ thông tin từ một lò sưởi.


Xin lỗi về sai lầm của tôi, xin vui lòng đọc chỉnh sửa của tôi.
picakhu

1

Giống như @ fanatic23 đã nói, nếu bạn chưa bao giờ nghe về Dijsktra, thì khá khó để tìm ra thuật toán của Floyd, tuy nhiên, nếu bạn đã thực hiện một số nghiên cứu về đồ thị, Floyd là một trong những thuật toán cơ bản. Nếu bạn đang tìm kiếm các vị trí công việc có thể yêu cầu bạn phải có một số kỹ năng thuật toán thành thạo, tôi sẽ khuyên bạn ít nhất nên đọc về một vài thuật toán được coi là quan trọng khi sử dụng biểu đồ:

Với 4 chủ đề này, bạn có thể điều hướng qua bất kỳ câu hỏi đồ thị cơ bản đến giữa trong một cuộc phỏng vấn.


Xin lỗi về sai lầm của tôi, xin vui lòng đọc chỉnh sửa của tôi.
picakhu

1

Vì đây là một câu hỏi phỏng vấn, bạn luôn phải tự hỏi mình câu hỏi quan trọng nhất trước tiên:

Nhà tuyển dụng tiềm năng có thể mong đợi gì từ một ứng viên điển hình và làm thế nào tôi có thể làm tốt hơn?

Rõ ràng, hầu như không ai (và chắc chắn không phải là ứng cử viên nguyên mẫu) sẽ có thể thực hiện công việc khiến các nhà khoa học lỗi lạc mất nhiều năm trong thời gian hạn chế của một cuộc phỏng vấn. Vì vậy, đó không phải là những gì họ mong đợi từ bạn.

Nhà tuyển dụng có thể mong đợi gì nữa?

  • Bạn có thể đã biết thuật toán. Điều này thật đơn giản và nhàm chán. Bạn chỉ có thể nói như vậy và rất có thể chủ đề sẽ được chuyển đổi, bởi vì không có nhiều điều để tìm hiểu về bản thân bạn (theo quan điểm của nhà tuyển dụng).

  • Bạn có thể không biết thuật toán. Đây thực sự là trạng thái của ứng cử viên điển hình, và nếu điều đó được mong đợi, kết quả sẽ như thế nào? Hãy xem xét quan điểm của công ty ở đây và bạn sẽ thấy rằng rất có thể đó không phải là một điều tốt nếu một ứng viên không thể nói rõ: tôi không biết thuật toán này. Nếu bạn bắt đầu đưa ra những câu mơ hồ và nói xung quanh vấn đề thực sự ở đây, thì bạn sẽ cho một ấn tượng xấu. Vì vậy, mục đích chính của việc đặt câu hỏi như vậy không phải là mong đợi bạn có thể trả lời nó, mà là để kiểm tra phản ứng của bạn khi gặp phải những điều bạn không biết.

  • Bạn có thể không biết thuật toán, nhưng ... để quay lại câu hỏi ban đầu ở trên: làm thế nào bạn có thể làm tốt hơn? Bạn có thể biết các thuật toán tương tự, do đó, hãy giải thích những điểm tương đồng bạn nhận ra (ví dụ: thuật toán Rùa + Hare của Floyd sử dụng một cách tiếp cận tương tự như Thuật toán Polard-Rho-Thuật toán). Bạn có thể có kỹ năng đọc / hiểu mã ấn tượng, v.v. Tất nhiên, phần này là khó nhất, nhưng một lần nữa, nó chỉ khả dụng nếu bạn thực sự giỏi hơn ứng viên trung bình, theo định nghĩa giúp nó dễ dàng hơn.


0

Có thể (dự kiến) cho một cá nhân để tìm ra (chưa bao giờ nhìn thấy nó trước đây) thuật toán nếu được hỏi tại một cuộc phỏng vấn?

Có thể không? Điều đó phụ thuộc vào thuật toán và ứng cử viên. Tôi muốn nói rằng đại đa số các ứng cử viên sẽ đấu tranh để thực sự làm điều này. (Nếu những vấn đề này đơn giản như vậy, tại sao một người nào đó lại nổi tiếng vì đã giải quyết chúng?)

Nó có được mong đợi không? Điều đó phụ thuộc vào con người của người phỏng vấn, và kỳ vọng của họ về ứng viên. Tôi muốn nói rằng nếu họ thực sự mong đợi các ứng viên có thể làm điều này trong một cuộc phỏng vấn thì họ sẽ phải phỏng vấn rất nhiều ứng viên. Một câu hỏi như thế này có nhiều khả năng được hỏi để xem ứng viên làm việc / suy nghĩ như thế nào dưới áp lực.

Những vấn đề khác có giải pháp thú vị như nhau?

Tôi sẽ không trả lời hàng đầu đó. Thay vào đó tôi sẽ nói rằng:

  • Khả năng bạn (với tư cách là một ứng cử viên) sẽ được yêu cầu làm việc này là nhỏ, đối với một công việc điển hình. Tuy nhiên, nếu bạn đang nộp đơn cho một công việc CNTT chuyên gia, nơi có một yêu cầu cụ thể để biết các thuật toán cụ thể, bạn có thể được yêu cầu giải thích chúng.

  • Có rất ít điểm học tập để rút ra các thuật toán trong trường hợp bạn được yêu cầu. (Hoặc "gian lận" bằng cách biết trước thuật toán.) Nếu bạn thực sự được yêu cầu làm điều này, bạn sẽ cố gắng hết sức ... theo kiến ​​thức mà hầu hết các ứng cử viên khác cũng có khả năng đấu tranh.

  • Thật hữu ích khi biết một loạt các thuật toán, hoặc ít nhất là biết về chúng , bởi vì chúng có thể hữu ích trong công việc của bạn. Tuy nhiên, điều đó phụ thuộc rất nhiều vào lĩnh vực CNTT mà bạn sẽ làm việc.


Xin lỗi về sai lầm của tôi, xin vui lòng đọc chỉnh sửa của tôi.
picakhu
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.