0-1 사이 무작위 난수 생성할때 double이 53bit precision이니까
53bit 난수를 생성하고 이걸 2^53 으로 나누는걸 자주 씀
그런데 Go는 64bit 풀로 생성하려다가 자기 스펙이랑 안 맞아서 표준 라이브러리에 저렇게 써있음;;
0-1 사이 무작위 난수 생성할때 double이 53bit precision이니까
53bit 난수를 생성하고 이걸 2^53 으로 나누는걸 자주 씀
그런데 Go는 64bit 풀로 생성하려다가 자기 스펙이랑 안 맞아서 표준 라이브러리에 저렇게 써있음;;
63으로 나누면 뭐가 달라지는거임?
2^63과 가까운 수가 나와서 2^63으로 나누면 정밀도가 손실되면서 1.0이 나와버림
그런데 스펙을 보면 [0, 1) 을 생성한다고 되어있음 그래서 1.0이 나오면 안 됨
원래 53이 최대니까 확률이 좀 바뀌나?
go엔 2^53만들 방법이 없음? 저래놓고 goto again이라니 개뻔뻔하네
맨 처음 만들 때 잘못 만들었는데 호환성때문에 바꿀수가 없음
ㅋㅋ꼬리뼈같은 흔적기관이네
미쳤네 저거;; - return 0;