(10 ^ 7)! 의 자리수를 어떻게 구할 수 있을까?
Membership/알고리즘 2015. 3. 29. 00:21 |(10 ^ 7)! 의 자리수를 어떻게 구할 수 있을까?
- log를 이용하면 자리수를 쉽게 구할 수 있다.
log1010 = 1,
log10100 = 2,
log101000 = 3
...
이렇게 log는 자리수를 나타 낼 수 있다.
이를 이용하여
팩토리얼의 자리수를 구한다면,
10! 은 1*2*3*4*5*6*7*8*9*10이다.
1*2 = 2;
2*3 = 6
6*4 = 24
24*5 = 120
120 * 6 = 720
720 * 7 = 5040
5040 * 8 = 40320
40320 * 9 = 362880
362880 * 10 = 3628800
이렇게 7자리 수가 된다.
하지만 이렇게 구한다면 10^7 팩토리얼의 자리수인 65657060 자리수를 표현해야한다.
long long형을 사용하여도 9223372036854775807i64(8바이트,64비트)까지 밖에 표현 못한다.
이때 log를 이용하여 팩토리얼 계산시 자리수를 double 형으로 계산한다면 10^7의 값인 천만 팩토리얼의 자리수도 연산가능하다.
(정확히 개념이 이해가 되질 않지만, 일단 적어본다...ㅜㅜ)
'Membership > 알고리즘' 카테고리의 다른 글
유클리드 호제법 정리 (2) | 2015.04.15 |
---|---|
기본적인 LinkedList 구현 (0) | 2015.01.20 |
루트값 까지 배수를 제외해서 소수값 구하는방법 (0) | 2015.01.16 |
백트래킹 기초 주사위 굴리기 (0) | 2015.01.15 |
재귀로 글래스파이어 활용 (0) | 2015.01.12 |