작은 충돌 확인 기능을 쓰고 있습니다. 'is_collision'함수가 'True'를 반환하면 'extend_until'함수는 모든 재귀 함수의 실행을 멈추고 해당 루프의 시작점을 반환해야합니다. 어떻게 실행해야하는지 잘 모르겠습니다. 초기 시작 따라서 1.0 길이를 따라 기기와의 해상도에서 조건 기능 '까지 확장'경우재귀 루프 종료 - 파이썬
가def is_collision(query):
print "Collision occurred"
return True
def extend_until(start, goal):
if goal-start <= 1.0:
if is_collision(goal):
# if YES all recursion should stop and return.
return start
else:
midpoint = (start+goal)/2
extend_until(start, midpoint)
extend_until(midpoint, goal)
return goal
if __name__ == '__main__':
p1 = 0
p2 = 4
new_configuration = extend_until(p1, p2)
print new_configuration
여기에서 재귀를 사용하고 있지 않습니다. 재귀 적으로 만들려면 함수를 반환해야합니다. else loop 안에서'extend_until (start, midpoint)'대신에'return extend_until (start, midpoint)'가 될 수 있습니다. 그러나 거기서 사용하는 진술은 2 가지입니다. 또한 '복귀 목표'가 없어야합니다. 이 설정에서는 작동하지 않습니다. 함수 extend_until에 입력과 출력을 정확히 알려주고 정확히 무엇을해야하는지 알려주세요. – Abhijeetk431
'extend function'에 대한 입력은 대개 2 포인트입니다. 이 경우 점은 1 차원입니다. 목표 : 주어진 두 입력 점 사이의 거리 (위의 경우 해상도가 1.0 임)를 이산화하고 충돌이없는 경우 각 불연속 점을 확인합니다. 충돌 함수가 True를 반환하면 전체 재귀가 중지되고 값을 반환해야합니다. – BhanuKiran
그리고 정확히 수행해야 할 기능은 무엇입니까? – Abhijeetk431