귀속 철학
5404 단어 recursionprogramming
나의 교수가 차례차례 묘사를 시작하고 나서야 나는 비로소 두려움을 느꼈다.그는 귀착은 일종의 다른 사고방식이라고 말했다.그것은 강대하고 추상적이다.그것은 우아하고 신비롭다.그것은 당신의 생각을 왜곡시켜 다른 생각을 하게 할 것이다.그러나 진정으로 나의 주의를 끄는 것은 완전히 이해하는 것이 계몽의 순간이라는 것이다.너는 지금, 며칠, 심지어 몇 달 후에도 이해할 수 없을 것이다.어느 날, 네가 준비가 되면, 차례차례 너에게 다가와 말했다. "나는 너를 보았다."
나에게 그 순간은 몇 년 후 내가 대학을 졸업한 후 처음으로 전업으로 일할 때였다.나는 한 프로그램에서 어려움을 만났다.나는 이 문제를 이해하지만, 나는 해답 알고리즘을 개발할 수 없다.그리고 나는 귀착이 생각났다.이 문제는 나로 하여금 차례차례 돌아오는 것을 생각나게 했다.한차례의 사고를 거친 후에 나는 귀속과 알고리즘 개발에 전념할 수 있다.이것은 나에게 깨우침의 순간이었다. 마치 에서 다니엘은 공수도가 그의 마음속에 있다는 것을 깨달았다.
그때 나는 귀착이 항상 여러 가지 형식으로 내 주위에 존재한다는 것을 깨달았다.텔레비전에서 나는 뉴스 아나운서를 보았다.그의 뒤에는 같은 방송의 텔레비전 감시기가 있다.그 모니터에서 같은 아나운서가 같은 라디오의 텔레비전 모니터 앞에 앉았다.등등
한 아이의 생일 파티에서 나는 폴리에스테르 박막 풍선 두 개를 주웠다.그것들은 모두 은색의 거울면을 가지고 있다.나는 그것들을 한데 놓아 거꾸로 된 그림자 속에서 나 자신을 보았고, 거꾸로 된 그림자 속에서 마치 무한으로 들어간 것 같았다.
심지어 일찍이 1320년의 예술품도 귀환을 보여 주었다.중세 회화는 Droste effect를 사용하여 그림, 그림 속, 그림 속 등을 나타낸다. 본고의 맨 위에 있는 주요 그림은 Droste 효과의 예이다.그 그림을 곰곰이 생각해 보는 데 시간이 좀 걸리다.끌리게 해줘.
2010년의 공상 과학 영화'도몽공간'은 아마도 영화에서 가장 뚜렷한 귀속 예일 것이다.이 영화에서 캐릭터는 정보를 추출하고 미래를 바꾸기 위해 잠재의식의 깊이에 들어가야 한다.이를 위해 그들은 잠을 자고 공유하는 꿈의 세계로 들어갔다.일단 꿈나라로 들어가면 그들은 함께 모여 다시 자고 꿈을 꾼다.등등그들은 깊이 걸을수록 목표의 잠재의식 상태에 가까워진다.꿈의 상태를 벗어나기 위해 캐릭터는 발차기로 이전의 꿈의 상태로 되돌아간다.이따가 더 재미있는 내용이 있을 거예요.
귀착의 마지막 예는 네가 스스로 할 수 있는 것이다.휴대전화 두 대를 가지고 그들 사이에서 영상통화를 시작하다.그리고 한 카메라를 다른 카메라에 대고두 개의 카메라가 모두 보이는 상황에서 시계 바늘을 따라 휴대전화 한 대를 4분의 1 바퀴 빠르게 회전한다.다른 휴대전화에서 효과를 보다.이런 효과는 텔레비전 연속극'아칸고르'의 마지막 회에도 나타난다.
이제 프로그래밍으로 돌아갑니다.차례로 돌아가는 Hello-World 프로그램은 수학의 계승 개념이다.다음은 5인자(5!)의 계산입니다.
5! = 5 * 4 * 3 * 2 * 1 = 120
간단한 Java 프로그램은 다음과 같습니다.
int n = 5;
for (int i=4; i >= 1; i--)
n = n * i;
System.out.println(n); //120
for
순환은 상술한 계산을 간단한 방식으로 집행한다.귀속 절차는 서로 다른 사고방식을 필요로 한다.위의 곱셈 방정식은 어떻게 돌아가는 사고의 단서를 제공했다.오.5 곱하기 4!사.4 곱하기 3!등등결국 우리는 1에 도달했다!정의에 따르면 그것은 단지 1이다.
그래서 함수 호출로 5를 계산합니다!표현식이 반환됩니다.
함수 호출 5회, 총 4회!
하지만 함수 호출은 4!같은 함수에 대한 함수 호출입니다.다시 말하면 함수를 스스로 호출하도록 한다.
생각 좀 해봐.🤔.
첫 번째 함수로 5를 호출합니다!4! 2차 함수 호출!,그것은 두 번째 함수 호출이 되돌아오기를 기다린다.두 번째 함수 호출 반환 표현식:
4회 함수 호출, 총 3회!
함수 호출을 기다리고 있습니다 3!돌아가다함수 호출은 함수가 1을 호출할 때까지 이런 방식으로 반복됩니다.이때 함수는 간단하게 1을 되돌릴 수 있기 때문에 추가 함수 호출이 필요하지 않습니다.이 간단한 예는 귀속 호출을 멈추고 이전 단계로 돌아가는 데 필요한 kick입니다.발단
이전 함수 호출은 수신1을 호출자에게 되돌려주고, 호출자는 3*2를 호출자에게 되돌려주고, 호출자는 4*6를 호출자에게 되돌려주고, 호출자는 5*24를 첫 번째 함수 호출자에게 되돌려준다. 이것은 120의 최종 답이다.
다음은 이 예제의 전체 Java 프로그램입니다.
public class FactorialExample {
public static int factorial(int n) {
if (n == 1)
return 1;
return n * factorial(n-1);
}
public static void main(String[] args) {
System.out.println( factorial(5) ); //120
}
}
귀착은 너로 하여금 한 가지 혹은 여러 가지 다른 차원에서 생각하게 할 것이다.그것은 한 폭의 그림처럼 너의 생각을 왜곡시킬 것이다.하지만 언젠가는 옛 친구를 아는 것처럼 알게 될 것이다.너희는 함께 너희가 생각하지 못했던 방식으로 프로그래밍 세계를 탐색할 것이다.읽어주셔서 감사합니다.😃
트위터에서 나를 주목하고 더 많은 프로그래밍 기교와 도움을 알아라.
Reference
이 문제에 관하여(귀속 철학), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/realedwintorres/the-philosophy-of-recursion-3nhb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)