ĐỆ QUY TIẾNG ANH LÀ GÌ

     

Ý tưởng về đệ quy không thịnh hành lắm trong trái đất thực. Vì chưng vậy, nó có vẻ như hơi nặng nề hiểu với các lập trình viên new làm quen. Khoác dù, tôi đoán, họ dần dần quen với quan niệm này. Bởi vậy, các gì có thể là một lời lý giải tốt đẹp để họ thâu tóm ý tưởng dễ dàng dàng?

thông tin thêm đang được share về chủ đề này tại tài nguyên để cải thiện sự gọi biết của khách hàng về đệ quy? Đệ quy là khi một hàm có thể gọi thiết yếu nó. "Nếu bạn hoàn toàn hiểu không khí tên và phạm vi với cách các tham số được truyền cho một hàm, thì bạn đã biết đệ quy rồi. Tôi hoàn toàn có thể hiển thị những ví dụ, nhưng các bạn sẽ có thể tự mình tìm ra cách chúng hoạt động." những sinh viên thường đấu tranh với đệ quy không vô số vì nó cạnh tranh hiểu, nhưng vị họ không nắm vững phạm vi / không gian tên biến. Trước khi đi sâu vào đệ quy, hãy bảo vệ rằng những sinh viên có thể theo dõi đúng mực thông sang một chương trình mà các bạn đã cố ý đưa ra những biến ở các phạm vi khác nhau cùng tên nhằm gây nhầm lẫn mang đến họ. — dspyz 1 vi.wikipedia.org/wiki/Turtles_all_the_way_down — Thomas Eding 1 Để hiểu đệ quy, trước tiên các bạn phải đọc đệ quy — Goerman

Câu trả lời:

110

Để giải thích đệ quy , tôi sử dụng phối hợp nhiều cách giải thích khác nhau, thường là cả hai núm gắng:

giải ưa thích khái niệmgiải thích nguyên nhân nó quan trọnggiải say đắm làm nuốm nào để sở hữu được nó.

Bạn đang xem: đệ quy tiếng anh là gì

Bạn đã xem: Đệ quy giờ anh là gì

Để bắt đầu, Wolfram | Alpha khái niệm nó theo thuật ngữ đơn giản và dễ dàng hơn Wikipedia :

Một biểu thức sao cho từng thuật ngữ được tạo bằng cách lặp lại một phép toán rứa thể.

Toán học

Nếu học sinh của người tiêu dùng (hoặc fan bạn giải thích quá, từ bây giờ tôi sẽ nói học sinh) bao gồm ít nhất một vài nền tảng toán học, ví dụ là chúng đã gặp gỡ phải đệ quy bằng cách nghiên cứu vãn loạt và quan niệm về đệ quy cùng quan hệ lặp lại của chúng .

Một cách cực tốt để ban đầu sau sẽ là thể hiện bằng một loạt cùng nói rằng nó khá dễ dàng là phần đa gì đệ quy nói về:

một hàm toán học tập ...... Nó tự gọi mình để đo lường một giá chỉ trị tương ứng với thành phần thứ n ...... Và xác minh một số tinh quái giới.

Thông thường, bạn có thể nhận được "huh huh, whatev "" bởi vì họ vẫn không thực hiện nó, hoặc nhiều khả năng chỉ là một trong những tiếng ngáy hết sức sâu.

Ví dụ mã hóa

Đối với phần còn lại, nó thực sự là một trong phiên bản chi huyết về phần đa gì tôi mô tả trong Phụ lục của câu vấn đáp của tôi cho thắc mắc mà bạn chỉ ra liên quan đến nhỏ trỏ (chơi chữ xấu).

Ở quá trình này, học sinh của tôi thường biết cách in một cái gì đấy lên màn hình. Trả sử bọn họ đang sử dụng C, họ biết cách in một char bằng phương pháp sử dụng writehoặc printf. Họ cũng biết về các vòng điều khiển.

Tôi thường áp dụng một vài vấn đề lập trình đơn giản và lặp đi lặp lại cho tới khi họ phát âm được:

một thiết bị in bảng chữ cái,một sản phẩm công nghệ in bảng chữ cái đảo ngược,

yếu tố

Yếu tố là 1 trong khái niệm toán học tập rất dễ dàng và đơn giản để hiểu, và việc tiến hành rất sát với trình diễn toán học của nó. Tuy nhiên, họ có thể không nhận được nó thời điểm đầu.


*

Bảng chữ cái

Phiên bạn dạng bảng vần âm rất thú vị để dạy dỗ họ lưu ý đến về sản phẩm tự của những câu lệnh đệ quy. Y như với bé trỏ, họ đang chỉ ném hốt nhiên vào bạn. Vụ việc là đưa chúng đến nhận biết rằng một vòng lặp có thể được hòn đảo ngược bằng phương pháp sửa đổi những điều kiện HOẶC chỉ bằng phương pháp đảo ngược trang bị tự của những câu lệnh vào hàm của bạn. Đó là chỗ in bảng vần âm giúp, bởi nó là một trong cái nào đó trực quan cho họ. Đơn giản chỉ cần họ viết một hàm vẫn in một ký kết tự cho từng cuộc gọi và gọi chủ yếu nó một phương pháp đệ quy nhằm viết tiếp (hoặc trước đó).

Các fan hâm mộ của FP, bỏ qua thực tế rằng việc in các thứ vào luồng cổng output là một tính năng phụ hiện thời ... Họ đừng quá giận dữ trên mặt trận FP. (Nhưng nếu như khách hàng sử dụng một ngôn ngữ có hỗ trợ danh sách, hãy thoải mái nối cùng với một list ở những lần lặp và chỉ còn in kết quả cuối cùng. .

Lũy thừa

Vấn đề lũy quá hơi khó khăn hơn ( ở giai đoạn học hành này). Rõ ràng khái niệm này hoàn toàn giống với cùng 1 giai thừa và không có sự phức tạp thêm vào ... Ngoại trừ câu hỏi bạn có không ít tham số. Và điều ấy thường đủ để gây nhầm lẫn mang đến mọi bạn và ném chúng ngay trường đoản cú đầu.

Hình thức đơn giản của nó:


*

*

Khó hơn

Khi những vấn đề đơn giản này đã có được hiển thị VÀ được tiến hành lại trong hướng dẫn, bạn cũng có thể đưa ra những bài tập cạnh tranh hơn (nhưng siêu cổ điển):

Và nếu khách hàng có một môi trường xung quanh đồ họa (hoặc rất có thể cung cấp cho cuống mã mang lại nó hoặc cho áp ra output thiết bị đầu cuối hoặc họ bao gồm thể thống trị điều đó rồi), rất nhiều thứ như:Và so với các lấy ví dụ thực tế, hãy cẩn thận viết:một thuật toán truyền thiết lập cây,một trình so với cú pháp biểu thức toán học 1-1 giản,một trò chơi quét mìn.

Lưu ý: một lượt nữa, một số trong số này thực sự không cạnh tranh hơn ... Chúng ta chỉ tiếp cận sự việc từ cùng một góc độ, hoặc một góc khá khác. Nhưng lại thực hành tạo cho hoàn hảo.

Xem thêm: Tổ Hợp Phím Dùng Để Soạn Email Trong Tích Tắc Trên Macos Là Gì

Người giúp việc

Một tài liệu tham khảo

Cấp độ / độ sâu

Giả sử sinh viên của chúng ta không có không ít kinh nghiệm mã hóa, hãy cung cấp cuống mã. Sau mọi lần demo đầu tiên, hãy hỗ trợ cho họ chức năng in có thể hiển thị mức đệ quy. In quý giá số của cấp độ giúp.

Sơ đồ phòng xếp

Việc thụt vào một công dụng được in (hoặc áp ra output của cấp độ) cũng giúp ích, bởi nó cung ứng một màn trình diễn trực quan khác về phần nhiều gì chương trình của công ty đang làm, mở với đóng những bối cảnh ngăn xếp như chống kéo hoặc folder trong trình thám hiểm hệ thống tệp.

Từ viết tắt đệ quy

Nếu sinh viên của người sử dụng đã thành thạo một chút về văn hóa máy tính, họ hoàn toàn có thể đã sử dụng một số trong những dự án / phần mềm có tên bằng những từ viết tắt đệ quy . Đó là 1 truyền thống xuất hiện trong 1 thời gian, đặc biệt là trong những dự án GNU. Một trong những ví dụ bao gồm:

Đệ quy:

GNU - "GNU chưa hẳn Unix"Nagios - "Nagios Ain"t Gonna nhất định về vị thánh"PHP - "Bộ cách xử trí siêu văn phiên bản PHP" (và bắt đầu là "Trang chủ cá nhân")Rượu vang - "Rượu không phải là trình mang lập"Zile - "Zile là mất non Emacs"

Đệ quy lẫn nhau:

HURD - "HIRD của Unix thay thế Daemon" (trong kia HIRD là "HURD của các giao diện đại diện thay mặt cho độ sâu")

Có họ cố gắng để đưa ra với riêng rẽ của họ.

Tương tự, có không ít sự xuất hiện của sự vui nhộn đệ quy, như sửa lỗi tra cứu kiếm đệ quy của Google . Để biết thêm tin tức về đệ quy, gọi câu vấn đáp này .

Cạm bẫy và học hỏi và chia sẻ thêm

Một số vấn đề mà mọi fan thường tranh đấu và bạn nên biết câu trả lời.

Tại sao, trời ơi lý do ???

Tại sao bạn lại làm vậy? Một lý do tốt nhưng không cụ thể là thường dễ dàng và đơn giản hơn để diễn tả một vụ việc theo phương pháp đó. Một nguyên nhân không xuất sắc nhưng cụ thể là nó hay mất ít thao tác làm việc gõ rộng (đừng khiến họ cảm xúc loot l33t vị chỉ áp dụng đệ quy tuy nhiên ...).

Một số vấn đề chắc chắn là dễ giải quyết và xử lý hơn khi sử dụng cách thức đệ quy. Thông thường, ngẫu nhiên vấn đề nào chúng ta cũng có thể giải quyết bằng mô hình Phân phân chia và đoạt được sẽ tương xứng với thuật toán đệ quy đa nhánh.

Lại là gì nữa ??

Tại sao các lần tôi nhoặc (bất cứ tên trở thành của bạn) khác nhau? bạn mới bước đầu thường có một sự việc hiểu một biến hóa và tham số là gì và làm núm nào để hầu như thứ mang tên ntrong chương trình của bạn cũng có thể có các giá trị khác nhau. Bởi vì vậy, hiện thời nếu quý hiếm này bên trong vòng tinh chỉnh hoặc đệ quy, điều ấy thậm chí còn tồi tàn hơn! Hãy tử tế cùng không áp dụng cùng một tên biến đổi ở hồ hết nơi và nắm rõ rằng các tham số chỉ với biến .

Điều kiện kết thúc

Làm cầm cố nào để tôi xác định tình trạng cuối của tôi? Điều đó thật dễ dàng, chỉ việc họ nói to các bước. Chẳng hạn, giai thừa bước đầu từ 5, rồi 4, rồi ... Cho đến 0.

Ma quỷ là trong các chi tiết

Đừng rỉ tai với đều thứ sớm như tối ưu hóa cuộc call đuôi . Tôi biết, tôi biết, TCO khôn xiết hay, nhưng ban sơ họ ko quan tâm. Cung cấp cho họ một chút thời hạn để quấn đầu xung quanh quy trình theo cách phù hợp với họ. Hãy dễ chịu phá vỡ nhân loại của chúng ta một lần nữa sau đó, cơ mà hãy đến họ nghỉ ngơi ngơi.

Tương tự, chớ nói thẳng từ bài xích giảng thứ nhất về chống xếp cuộc call và nút tiêu thụ bộ lưu trữ của nó với ... à ... Tràn ngăn xếp . Tôi thường dạy kèm cho các sinh viên một biện pháp riêng tư, những người chỉ cho tôi những bài xích giảng khu vực họ có 50 slide về mọi thứ nên biết về đệ quy khi họ phần đông không thể viết một vòng lặp đúng đắn trong quy trình tiến độ này. Đó là một trong ví dụ tốt về phương pháp một tư liệu tham khảo sẽ giúp đỡ sau này cơ mà ngay hiện giờ chỉ khiến chúng ta bối rối .

Nhưng xin vui lòng, trong thời gian thích hợp, làm rõ rằng bao gồm những nguyên nhân để đi theo tuyến đường lặp hoặc đệ quy .

Xem thêm: Ban Chỉ Huy Trưởng Tiếng Anh Là Gì ? Ban Chỉ Huy Tiếng Anh Là Gì

Đệ quy lẫn nhau

Chúng ta đang thấy rằng các hàm rất có thể được đệ quy và thậm chí còn chúng tất cả thể có nhiều điểm gọi (8-Queen, Hà Nội, Fibonacci hoặc thậm chí là một thuật toán thăm dò cho một fan quét mìn). Nhưng phần nhiều gì về các cuộc call đệ quy cho nhau ? bước đầu với toán học tập ở đây là tốt. F(x) = g(x) + h(x)nơi g(x) = f(x) + l(x)và hvà lchỉ có tác dụng công cụ.

Bắt đầu chỉ cách loạt toán học góp viết và thực hiện thuận lợi hơn vày hợp đồng được xác định rõ ràng bằng các biểu thức. Chẳng hạn, những chuỗi nam giới và cô bé của Hofstadter :