728x90
몬테 카를로(Monte Carlo) 방식은 무작위로 추출된 난수를 이용하여 함수의 값을 계산하는 통계학의 방법이라고 한다.
위 이미지의 코드와 같은 경우에는 다음과 같이 이용되었다. (여기서의 난수라 함은 0~1 사이의 값을 얘기한다.)
1. 난수 값을 r1에 저장한다.
2. r1이 난수일 확률 probability를 계산한다. (probability = r1 으로 둔다.)
3. 또 다른 난수 r2를 저장한다.
4-1. r2가 probability 보다 크다면, 작은 보폭을 선호.
4-2. r2가 probability 보다 작다면, 큰 보폭을 선호.
5. 두가지 경우 중, 원하지 않는 결과라면 1로 돌아가고 원하는 결과면 r1을 return 한다.
그리고 Math.random을 사용하는 과정에서 최소값, 최댓값의 범위를 정해주기 위해 다음과 같은 방법을 썻다.
let xStepSize = (Math.random() * (stepSize * 2)) - stepSize;
// (Math.random() * (최댓값 - 최소값)) + 최소값
예전에 Random Walker를 만들때, Walker가 화면 밖으로 넘어가면 볼 수 없다는 아쉬움이 조금 있었다.
물론 새로고침을 하면 되긴 했지만 이 아쉬움을 해소하고 싶어서 이번에는 다음과 같은 코드를 적용하였다.
Walker.prototype.clear = function () {
if (this.x < 0 || this.x > WIDTH || this.y < 0 || this.y > HEIGHT) {
window.location.reload(true);
}
}
Walker의 this 값을 가져오기 위해 prototype으로 넣어주었고 핵심 문장은 window.location.reload(true) 이다.
이로써 Walker가 화면 테두리에 닿으면 자동으로 새로고침이 되게끔 하였다.
'활동 > 개인 프로젝트' 카테고리의 다른 글
빠른 개발을 위한 React Form 구성 템플릿 (0) | 2024.12.07 |
---|---|
네이버 특정 블로그에서 가장 많이 사용한 단어 알아보기! (0) | 2023.08.20 |
Gaussian line (ref. Nature Of Code) (0) | 2022.02.20 |
맥주 음미 노트 (개발X / 디자인X / Figma) (0) | 2021.11.29 |
Random Walker (0) | 2021.11.03 |