Skip to main content

1. 랜덤 워크

랜덤 워크 운동

랜덤 워크(Random Walk)는 임의의 방향으로 연속적인 단계를 진행하는 운동을 말합니다. 이 운동은 다음과 같은 간단한 규칙으로 만들어 볼 수 있어요.

동전 1개를 이용한 1차원 랜덤 워크

  • 10초마다 동전을 한 번씩 던집니다.
  • 동전의 앞면이 나오면 앞으로 한 걸음, 뒷면이 나오면 뒤로 한 걸음 움직입니다.
  • 이렇게 임의로 한 걸음씩 움직이다 보면 매 10초마다의 1차원 궤적(path)이 만들어지게 됩니다.

동전 2개를 이용한 2차원 랜덤 워크

  • 이번에는 동전을 2개 사용해 볼게요. 두 동전을 던지면 다음과 같이 4(2×22 \times 2)가지 경우의 수가 나옵니다.
동전1동전2이동
앞으로
오른쪽으로
왼쪽으로
뒤로
  • 4가지 경우에 각기 다른 이동 방향을 매칭 시키면 2차원 평면 상의 궤적이 그려지겠죠?
이 책에서 첫 예제로 랜덤 워크를 선택한 이유
  1. 이 책의 모든 예제는 객체 지향 프로그래밍을 중심으로 하고 있습니다.
  2. 랜덤 워크를 통해 "객체의 운동을 제한하는 규칙을 어떻게 정의할까?", "프로그래밍으로 어떻게 구현할까?"라는 질문에 대해 함께 생각해 보세요.
  3. 이 책에서는 임의성(randomness), 확률(probability), 펄린 노이즈와 관련한 내용이 자주 등장합니다. 랜덤 워크와 연관 지어 이해해 보시기 바랍니다.