인간의 뇌 이해는 귀착된다.
나는 먼저 알기에 다음과 같은 두 가지 예를 발견하고 귀속과 순환을 비교했다.예는 이용자 이계강의 대답에서 비롯됐다.
귀속: 네가 앞에 있는 이 문을 열면 집 안에 또 한 개의 문이 있는 것을 볼 수 있다. (이 문은 앞에 열린 문과 크기가 같을 수도 있고 (조용할 수도 있고) 문이 좀 작을 수도 있다. 네가 지나가면 손에 있는 열쇠가 그것을 열 수 있다는 것을 발견할 수 있다. 네가 문을 열고 안에 또 한 개의 문이 있는 것을 발견하면 네가 계속 열어라...몇 번 후에 네가 앞에 있는 문을 열었는데 방이 하나밖에 없고 문이 없는 것을 발견했다.너는 원래의 길로 돌아오기 시작했다. 한 칸씩, 한 번 세어 보아라. 입구에 도착했을 때, 너는 도대체 이 열쇠로 몇 개의 문을 열었는지 대답할 수 있다.
순환: 네가 앞에 있는 이 문을 열면 집 안에 문이 하나 더 있는 것을 볼 수 있다. (이 문은 앞에 열린 문과 크기가 같을 수도 있고 (조용할 수도 있고) 문이 좀 작을 수도 있다. 네가 지나가면 손에 있는 열쇠가 그것을 열 수 있다는 것을 발견할 수 있다. 네가 문을 열면 안에 문이 하나 더 있는 것을 발견할 수 있다.(앞문도 똑같으면 이 문도 똑같고 두 번째 문도 첫 번째 문보다 작아지면 이 문도 두 번째 문보다 작아진다(동정이 똑같으면 변화가 없거나 똑같은 변화가 없다)) 이 문을 계속 열어라...계속 이렇게 걸어가다.입구에 있는 사람들은 시종 네가 돌아가서 그에게 답을 알려주기를 기다릴 수 없었다.
이 사용자는 다음과 같이 요약했습니다.
돌아오는 것은 가는 것도 있고 돌아오는 것도 있다.
**구체적으로 말하면 왜'가다'고 할 수 있습니까? **이 요구하는 귀속 문제는 같은 문제풀이 사고방식으로 규모와 크기가 다른 다른 완전히 같은 문제를 대답할 수 있어야 합니다.
왜'회'가 있을 수 있습니까? 이것은 이런 문제들이 끊임없이 큰 것에서 작은 것, 가까운 것에서 먼 것까지 가는 과정에서 하나의 종점, 하나의 임계점, 하나의baseline을 요구한다. 당신이 그 점에 도착하면 더 작고 더 먼 곳으로 갈 필요가 없는 점, 그리고 그 점에서부터 원래의 길은 원점으로 돌아간다.
위의 설명은 거의 나의 오래된 의문에 대답했다. 왜 나는 항상 문제를 해결하고 있는 느낌이 들지 않는지.건네주는 것은 문제를 묘사하는 것이고, 결국은 문제를 해결하는 것이기 때문이다.내 뇌는 쉽게 점거되고 먼 곳으로만 가고 끝도 못 가는데 무슨 말을 하겠는가.
《만담귀속:귀속사상》이라는 문장은 귀속사상을 다음과 같이 귀납한다.
귀착의 기본 사상은 규모가 큰 문제를 규모가 작은 비슷한 하위 문제로 바꾸어 해결하는 것이다.함수가 실현될 때 큰 문제를 해결하는 방법과 작은 문제를 해결하는 방법은 왕왕 같은 방법이기 때문에 함수가 그 자체를 호출하는 상황이 발생한다.또한 이 문제를 해결하는 함수는 반드시 뚜렷한 종결 조건이 있어야 무한 귀속 상황이 발생하지 않는다.
주의해야 할 것은 규모가 큰 것을 규모가 작은 것으로 전환하는 것이 핵심 사상이지만 귀환은 이 단계의 전환만 하는 것이 아니라 규모가 큰 문제를 규모가 작은 자문제와 자문제 해결을 토대로 남은 스스로 해결할 수 있는 부분으로 분해하는 것이다.후자는 귀의 정수이며 실제 문제를 해결하는 과정이다.
나는 귀환 사상을 귀환용 프로그램으로 표현하고자 세 가지 요소를 확정했다. 그것이 바로 배달+끝조건+귀환이다.
recursion( )
{
if (end_condition)
{
end;
}
else
{ // , “ ”
recursion( ); //go;
solve; //back;
}
}
그러나 나는 이렇게 묘사하는 것이 내가 자주 만나는 귀속 상황, 예를 들어 귀속이 반복되는 두 갈래 나무의 선행을 빠뜨린 것을 쉽게 발견할 수 있다.나는 이런 상황을 다음과 같은 귀속 프로그램으로 표현할 것이다.
recursion( )
{
if (end_condition)
{
end;
}
else
{ // , 。
solve; //back;
recursion( ); //go;
}
}
여기까지 정리한 결과 귀환은 이런 사상을 가장 잘 표현하기 위해서라는 것을 갑자기 발견했다. 그래서'귀환'이라는 단어를 사용했는데 사실 귀환은'유회유회'일 수도 있고'유회무회'일 수도 있다.그러나 그 근본은'큰 것에서 작은 것으로, 가까운 것에서 먼 것으로'이다.'배달'은 필수다.'귀'는 필수가 아니다. 해결해야 할 문제에 의존한다. 어떤 사람은 가는 길에 해결해야 하고, 어떤 사람은 돌아오는 길에 해결해야 한다.점차적으로 돌아가는 귀착은 사실 우리가 쉽게 이해할 수 있는 분치 사상이다.
사실 귀환은'귀'가 없을 수도 있고 가(분치)만 있는 상황을 이해한 후에 우리는 귀환이'가는'길에서 문제를 해결할 필요도 없고'귀'의 길에서 문제를 해결할 필요도 없고 길의 끝에서 문제를 해결할 수 있다는 것을 생각해야 한다. 즉, 정지 조건이 충분할 때 문제를 해결할 수 있다.귀속의 분치 사상은 반드시 문제의 규모를 최소로 귀속시키는 것이 아니라 문제를 모든 상황을 빈틈없이 들추어내는 것이다. 이때 통상적으로 귀속의 표현력은 글을 쓸 수 없는 끼워넣기 순환(불확정한 수량의 끼워넣기 순환)을 귀속을 통해 표현하는 데 나타난다.이러한 반복 상황을 반복 프로그램으로 다음과 같이 설명합니다.
recursion()
{
if (end_condition)
{
solve;
}
else
{ // , 。
for () { recursion(); //go; }
}
}
예를 들어 문자열의 전체 배열은 다음과 같은 반복을 통해 간결하게 표현할 수 있다.
void permute(const string &prefix, const string &str)
{
if(str.length() == 0)
cout << prefix << endl;
else
{
for(int i = 0; i < str.length(); i++)
permute(prefix+str[i], str.substr(0,i)+str.substr(i+1,str.length()));
}
}
이 예에서 이러한 귀환이 귀환 함수 매개 변수에 대한 설계 요구가 나타났음을 알 수 있다. 귀환이 끝까지 가도 조합된 문자열의 규모(길이)가 작아지지 않고 규모가 작아지는 것은 귀환 함수의 매개 변수이다.이를 통해 알 수 있듯이 이러한 변화는 귀속의 유연성을 크게 확장한 것 같다. 이른바 대규모에서 소규모로 전환하려면 더욱 넓은 이해가 필요하다.
귀속에 대한 이해는 잠시 여기까지 왔다. 글에서 언급한'한 개의 문을 열어라'에 대한 귀속 예로 귀속을 해석하는 것은 정확하지 않고 예는 귀속의 한 가지 상황만 묘사한 것을 알 수 있다.'귀환은 가고(건네주고) 돌아오는 것이다'는 논단도 정확하지 않다.글의 앞부분만 읽은 독자들을 위해 안타까워해야 한다.나도 귀속 사상에 대한 총결을 하자.
귀착의 기본 사상은 규모가 큰 문제를 규모가 작은 비슷한 자문제나 비슷한 자문제 집합으로 광의적으로 전환시켜 해결하는 것이다.광의적으로 규모에 대한 것이고 규모의 축소는 구체적으로 귀속 함수의 매개 변수를 가리킬 수도 있고 그 매개 변수 중의 하나일 수도 있다.비슷하다는 것은 큰 문제를 해결하는 방법과 작은 문제를 해결하는 방법이 종종 같은 방법이며, 또한 자문제집의 각 자문제를 해결하는 방법이 같은 방법이라는 것을 가리킨다.큰 문제를 해결하는 방법은 차규모 문제를 해결하는 방법과 나머지 부분을 해결하는 방법으로 구성될 수도 있고 일련의 차규모 문제를 해결하는 방법으로 구성될 수도 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.