Tôi mới đến trang web này và câu hỏi này chắc chắn không phải là cấp độ nghiên cứu - nhưng tốt. Tôi có một chút nền tảng về công nghệ phần mềm và hầu như không có gì ở CSTheory, nhưng tôi thấy nó hấp dẫn. Để làm cho một câu chuyện dài ngắn, tôi muốn có một câu trả lời chi tiết hơn cho câu hỏi sau nếu câu hỏi này được chấp nhận trên trang web này.
Vì vậy, tôi biết rằng mọi chương trình đệ quy đều có một phép lặp tương tự và tôi hiểu được cách giải thích phổ biến được cung cấp cho nó bằng cách duy trì một cái gì đó tương tự như "ngăn xếp hệ thống" và đẩy các cài đặt môi trường như địa chỉ trả về, v.v. .
Cụ thể hơn một chút, tôi muốn (chính thức) xem làm thế nào để chứng minh tuyên bố này trong trường hợp bạn có chức năng gọi chuỗi . Hơn nữa, những gì nếu có một số báo cáo có điều kiện mà có thể dẫn một làm cho một cuộc gọi đến một số ? Đó là, biểu đồ gọi hàm tiềm năng có một số thành phần được kết nối mạnh mẽ.F i
Tôi muốn biết làm thế nào những tình huống này có thể được xử lý bằng cách cho chúng tôi nói một số đệ quy để chuyển đổi lặp. Và là mô tả bằng tay tôi đã đề cập trước đó, thực sự đủ cho vấn đề này? Ý tôi là tại sao tôi lại thấy việc loại bỏ đệ quy trong một số trường hợp dễ dàng. Đặc biệt loại bỏ đệ quy khỏi giao dịch đặt hàng trước của cây nhị phân thực sự dễ dàng - đó là một câu hỏi phỏng vấn tiêu chuẩn nhưng loại bỏ đệ quy trong trường hợp đặt hàng bài luôn là một cơn ác mộng đối với tôi.
Điều tôi thực sự hỏi là câu hỏi
(1) Có thực sự có một bằng chứng chính thức (thuyết phục hơn không?) Rằng đệ quy có thể được chuyển đổi thành phép lặp?
(2) Nếu lý thuyết này thực sự nằm ngoài đó, thì tại sao tôi lại tìm thấy nó, ví dụ, lặp đi lặp lại việc đặt hàng trước dễ dàng hơn và đặt hàng rất khó? (khác với trí thông minh hạn chế của tôi)