Dưới đây là đoạn code đệ quy trong câu hỏi:làm thế nào để xác định đầu ra của hàm đệ quy phức tạp bằng tay
def trace(a, b):
if (a > b):
return -1
elif (a == b):
print (a * a)
return a * a
else:
m = (a + b)/2
return trace (a, m) + trace (m + 1, b)
x=trace(1,4)
trong khi tôi không chắc chắn những gì chức năng này là nghĩa vụ phải làm, chúng ta có nghĩa vụ phải tìm đầu ra của x=trace(1,4)
cùng với giá trị của x, bằng tay (nghĩa là chúng ta không thể sử dụng nhàn rỗi để giúp chúng ta).
Sau một thời gian, tôi xác định rằng hàm sẽ in 1 và 12.25, sẽ là đầu ra khi gán x thành trace(1,4)
.
Tuy nhiên, tôi không biết cách xác định giá trị của X sẽ là bao nhiêu. Mặc dù câu trả lời là -91,75, tôi không có manh mối nhỏ như thế nào nó có nguồn gốc (mặc dù tôi biết làm thế nào, nó sẽ mất lứa tuổi để đến với câu trả lời này, và tôi không chắc chắn làm thế nào chúng ta có thể nhanh chóng đến với giải pháp trong một khoảng thời gian ngắn như khi viết bài kiểm tra).
Cảm ơn trước sự giúp đỡ của bạn!
Dòng thứ 8 phải là 'm = (a + b) // 2'. Bằng cách này, nó sẽ hoạt động tương tự trong Python2 và Python3. –
@EricDuminil: Jupp, đây chắc chắn là một câu hỏi Python 2, nhưng có thể được thực hiện để làm việc trong Python 3 bằng cách sửa nó theo cách của bạn. – Sherlock70