알고리즘 독창성을 어떻게 개선 할 수 있습니까?
-
28-09-2020 - |
문제
아웃 그라드 동안 나는 내 교육이 현실적인 세계 문제 (즉, 알고리즘 설계 / 분석)에 기존 이론을 적용하는 것으로 주로 구성되었다고 느꼈다.나는 많은 알고리즘의 파생과 그들의 복잡성의 증거를 보았지만, 나는 종종 알고리즘을 발견하는 것에 대한 질문에 의해 괴롭힘을 당한다.효과적인 접근법을 만드는 데 관여하는 독창성을 감안할 때 소설 알고리즘을 개발하는 것을 상상하기 위해 어려움을 겪고있는 것처럼 보입니다.나는 그 독창성을 훈련시키는 방법이 있는지 궁금해하고 있습니다.
내 질문은 정량적 인 문제에 대한 원래의 접근 방식을 개발하는 데 필요한 기술을 어떻게 재배 할 수있는 방법을 재배 할 수 있습니까?이 기술에 집중하는 자원이 있습니까?
해결책
경쟁 프로그래밍이 당신을 도울 수있는 것 같습니다. 또는 "프로그래밍"부분 만 있습니다. 당신이 당신의 문제를 해결하는 기술을 연마하고 싶다면 (그러므로 원래 아이디어를 생각할 수있는 능력을 얻을 수있는 능력), 경쟁 문제를 해결하는 것은이 기술을 목표로 삼고 있기 때문에, 경쟁 문제를 해결하는 것처럼 보입니다.
문제 아카이브 및 이론 자료의 두 가지 종류의 자료가 필요합니다.
문제 아카이브의 경우
를 시도 할 수 있습니다.- timus.online (일부 영리한 통찰력 / 관찰이 필요없는 문제 ~ 270 어려움 후 시작)
- relinchers.org (문제 설정 탭, 다양한 문제가 있지만 전반적인 품질이 뮤지션보다 다소 낮습니다. )
- Onlinejudge.org 에서는 다양한 문제를 다루는 문제가있는 테이블이 있습니다. 예약 경쟁 프로그래밍 3)
- Urionlinejudge.com.br (몇 가지 훌륭한 문제가 있음)
또한 atcoder.co.jp와 같지만 주로 수학 관련 문제를 주로 대상으로하는
이 있습니다.
- 솔루션을 보면서 적어도 30 분 동안 생각해보십시오 (나를 위해, 낙서는 직관적 인 솔루션을 제시하는 데 도움이됩니다)
- 그때, 당신이 생각하는 아이디어가 100 % 일할 것으로 생각한다고 생각한다면 당신은 당신이 당신의 두뇌에서 그들을 꽤 도달 할 수는 없으며, 당신이 갈 때까지 그것을 포기하지 말고 그들에게 붙들고 그들을 붙잡을 수는 없습니다. 자다. 문제에 대해 생각할 수 없을 수없는 경우, 일어날 때 통찰력을 얻을 수 있습니다. ( https://psychology.stackexchange.com/a/13366 + 내 경험
- 문제를 해결했는지 여부에 관계없이 또는 그러한 절차를 열지 못했을 것인지 여부에 관계없이 증명을 열지 않을 때, 읽을 때부터 훨씬 더 효율적으로 흡수하고 분석 할 수 있습니다. 아이디어를 아는 것이 아니라 당신의 아이디어가 왜 작동하지 않는지 알아 내지 않고, 당신은 당신의 생각에 실수를 한 것처럼, 당신이 놓친 것은 무엇인지, 당신이 너무 많이 초점을 맞춘 것들이 관련이 없었습니다. , 어쨌든 그것을 해결하기 위해 무엇을 알아야 했습니까? ( sq3r < / A> 방법은 또한 먼저 텍스트를 질문하고 질문에 답변하는 방법으로 읽을 수 있습니다. 수동 독서 대신에 적극적으로 읽기). .
- 증거에서 일부 가이드 맛있는 직관을 추출 할 수 있다면 축하드립니다! 이제이 문제를 잊어 버리고 2 ~ 3 일 후에 돌아와 같은 주제에 대해 다른 비슷한 또는 조금 더 어려운 문제를 해결하십시오. 이런 식으로 당신은이 뇌 에서이 직감을 "infrint"할 수 있으므로 상대적으로 오랜 시간 동안 ( 간격 반복 )
- 당신이 그렇게하지 않으면 슬퍼하지 마십시오. 당신은 증거가 어떻게 작동하는지 더 많거나 적게 이해했습니다. 이는 남아있는 유일한 것들이 어떻게 든 직감으로 그들을 연합하는 것입니다. 동일한 일반적인 주제 (문자열, 그래프, 번호 이론 등)에서 문제를 계속 해결하는 것을 계속합니다. 직감은 일부 구체적인 문제에 묶이지 않아야합니다 (그 경우, 직감은 다른 문제를 해결할 수 없을 것입니다.) 다른 문제들과의 직감을 이해하면 자연스럽게 원래의 문제의 직감을 이해할 수 있습니다. !
괜 찮 아 요, 그래서. 이와 함께 오래된 아이디어를 효율적으로 파악할 수 있고, 직관과 ingenuit를 이해할 수 있습니다.
그들 뒤에 y. 이것들은 그럴듯한 자원이지만 (이미 그들을 사용 할 수 있다고 생각합니다) :- 알고리즘 소개. comen
- geekforgeeks.com
- wikipedia.com (진지하게, 그들은 어떤 알고리즘에 대한 훌륭한 기사가 있습니다)
- "NoReferRer"> VisualGo.net (특히 시각적 인 학습자 인 경우)
이 시점에서 나의 경험에서 자신과 자연스럽게 독창적 인 아이디어로 올 수 있습니다. 아이디어 간의 연결을 명확하게 볼 수있게 될 수 있으며 머리에 튀어 나오기 시작할 것입니다. 문제를 해결하면 뇌의 신경 경로를 유지하면 이론적으로 지어진 이론적 근거와 직관을 잊지 못할 것입니다. 문제를 해결하면 새로운 신경 연결을 구축하고 새로운 통찰력을 발견 할 때 기쁨을 가져올 것입니다.
마지막으로, 당신의 통찰력이 당신이 전에 배운 것은 아무것도 아닌 경우 가치가 있습니다. 두 가지 아이디어를 결합하면 간단한 경우에도 새로운 아이디어를 얻을 수 있으며 가치가 있습니다. 어떤 경우에도 그러한 아이디어를 생각할 때마다 귀중한 것을 창출합니다. 당신의 목표가 가치있는 뭔가를 올리면 매번 성공할 것입니다. 당신의 목표가 "원래 통찰력"을 생각해내는 것이라면, 당신이 할 일이 무엇이든간에, 당신은 아마도 실패 할 것입니다 (확실히) 실패 할 것입니다. 결국, 당신 이이 단계 나 비슷한 것을 따르면 더 나아질 수는 없습니다! 확실히, 앞으로도, 당신의 아이디어의 10 분의 1은 진정으로 원래의 것입니다.)