190418-TIL

2019년에 Hexo 블로그에 쓴 글을 옮겨 왔습니다. 당시 이해를 그대로 두었습니다.

Today I Learned

오늘 한 일

  • Epsilon, Number Digit 등 컴퓨터에서 실수를 표현하는 방식과 상대오차에 대해서 깊게 배웠다.

  • 실수형의 논리비교를 위한 is_equal 함수를 만들었다.

    function is_equal(x, y, allowed=0){
    	// 둘 중 큰 수의 다음 숫자와의 오차의 allowed 배 정도 되는 범위 안에 있으면 같다고 판단한다.
    	return (Math.abs(x-y) <= Math.max(Math.abs(x), Math.abs(y))*Number.EPSILON*Math.pow(2, allowed));
    }
    function main(){
    	var sum = 0;
    	for(var i =0; i< 100; i++){
    		sum += 0.01;
    	}
    	if(is_equal(sum, 1.0, 2)){
    		console.log("THE SAME");
    	} else{
    		console.log("NOT THE SAME");
    	}
    }
  • Python을 배우는데 너무 재미있다. 익숙하지 않아 찾아보는 것이 번거롭지만 문법이나 기능이 흥미롭다.