Google Classroom
GeoGebraTarefa

14.6 몬테카를로 방법으로 원의 넓이 측정하기

p.150 몬테카를로 방법으로 원의 넓이 측정하는 코드

책에 제시된 코드는 오류를 일으킬 수 있는 부분을 포함하고 있었습니다. var x = 0 ; var y = 0 ; var dist = 0 ; var cnt = 0 ; for( var i = 0 ; i < 1000 ; i ++ ) { x = Math.random(); y = Math.random(); ggbApplet.evalCommand( "P_" + i + "= ( " + x + "," + y + ")" ); dist = Math.sqrt( (x - 0.5)^2 + ( y - 0.5)^2 ) ; if (dist <= 0.5 ) { cnt ++; ggbApplet.evalCommand( "텍스트1 = " + cnt / 1000 ); } }

p.150의 개선된 코드

교재에 제시된 코드를 검토한 결과 문제가 있어 아래와 같이 수정하였습니다.  var x = 0 ; var y = 0 ; var dist = 0 ; var cnt = 0 ; for ( var i = 0 ; i < 100 ; i ++ ) { x = Math.random(); y = Math.random(); ggbApplet.evalCommand( "P_{" + i + "} = (" + x + "," + y + ")" ); dist = ( x - 0.5) * ( x- 0.5) + ( y - 0.5) * ( y - 0.5) ; if (dist < 0.25 ) cnt ++; } ggbApplet.setValue( "cntpt" , cnt ); 문제는 제곱을 표시할 때 ^2 와 같이 표시한 것으로 생각됩니다. 여기에서는 직접 두번 곱하여 해결하였습니다. 또한 점의 이름을 설정할 때 i 주변에 중괄호를 설정하여 점 이름이 의도대로 잘 설정될 수 있도록 하였습니다. 맨 마지막에는 지오지브라 애플릿의 cntpt 라는 변수에 cnt의 값을 입력하도록 하였습니다.