Tôi có một câu hỏi về sys.setrecursionlimit()Python max đệ quy, thắc mắc về sys.setrecursionlimit()
từ doc trăn chức năng này:
Đặt độ sâu tối đa của thông dịch Python ngăn xếp để giới hạn. Giới hạn này ngăn cản đệ quy vô hạn gây ra tràn của ngăn xếp C và làm rơi Python. Giới hạn cao nhất có thể là phụ thuộc vào nền tảng. Người dùng có thể cần đặt giới hạn cao hơn khi có chương trình yêu cầu đệ quy sâu và nền tảng hỗ trợ giới hạn cao hơn. Điều này nên được thực hiện cẩn thận, bởi vì một giới hạn quá cao có thể dẫn đến sự cố.
Đây là câu hỏi của tôi:
chúng ta hãy chức năng này vô dụng đệ quy:
def rec(N):
if N==0:
return 1
else:
return rec(N-1);
bây giờ hãy thiết lập các đệ quy tối đa đến 100:
sys.setrecursionlimit(100)
Nếu tôi cố gắng rec(99)
(100 các cuộc gọi đệ quy), tôi nhận được:
RuntimeError: maximum recursion depth exceeded
Để tính toán rec (99), tôi cần đặt giới hạn đệ quy thành 105
Tại sao lại như vậy?
Thx, tôi đoán tôi nên đọc kỹ hơn định nghĩa và không xem xét tên của hàm –