private static final double[] PI_TABLE = new double[] {
3.0, 3.1, 3.14, 3.141, 3.1415, 3.14159, 3.141592, ...
};
public static double getPi(int digits) {
if (digits < 0) {
throw new Exception("digits < 0");
}
return PI_TABLE[digits];
}
이러면 O(1)이 됨. 나 진짜 천재인듯 (뿌듯)
공간복잡도가 O(Infinity)아님?
눈치챙겨^^
학생 글내려
아니 그럼 파이값 똥꼬쇼해서 구해서 쓸거임?
math.pi // (10 ** -digits) / (10 ** digits)
탈락
double mantisaa 53비튼가 그러니까 한 17자리 까지만 해놓거라......
이새끼 최소 IBM출신
w get
https://stuff.mit.edu/afs/sipb/contrib/pi/pi-billion.txt
댓글에 wget 그대로 박으면 댓글 안 올라가네 인젝션 방지인가
캐시히트 관점에선 이게 맞음. 그리고 digits가 테이블 사이즈를 넘어서면 그때 직접 계산해서 구하게 해도 됨.
반올림 생각 안해도 되는거였냐고...
위에 퇴물아재 말처럼 digits가 특정값 넘어가면 스피곳같은거 굴려서 구하는식으로 만들어도 되긴 할 듯 파이값을 특정 자리수까지 알아야할 상황이 얼마나 있을진 잘 몰루겧지만
FACT) Math.PI 쓰면 그만이다
L1캐시 한번쓰고 레지스터에서 계산하기 vs 수KB데이터 L3 L2 L1 로딩될때까지 기다리기 비교하면 닥전임
문자열로 하면 안됨?
넌 이거 풀어라
https://www.acmicpc.net/problem/27875
ㅇㅂ - dc App
그냥 3.141592 를 배열로 만든다음에 digit 자릿수만큼 짤라주면 더 효율적이지않음?