zpapl   8년 전

데이터의 갯수를 a^b으로 한다고 했는데

이게 엄청 큰 숫자 잖아요..

int 형으로 데이터 갯수를 못받더라고구요..

저렇게 엄청 큰 데이터의 수를 어떻게 저장을 받아야할까요..

whgusfud   8년 전

결국에는 a를 여러번 곱하는 것이고, 우리가 필요한 수는 1의 자리의 수입니다.
예를들어 a = 6일 때, 1의 자리의 변동을 보면,
6 (6) -> 36 (6) -> ... -> (6) 으로서 항상 6번쨰 컴퓨터가 데이터를 처리하게 됨을 알 수 있습니다.

여러 경험을 통해 느낀점은, 저렇게 도저히 계산할 수 없는 수들은 규칙성에 의존해서 풀어야 된다는 거..

zpapl   8년 전

1의 자리의 수를 필요로 하는 건 알겠는데, 데이터 수의 1의 자리를 어떻게 구하죠?

예를 들면 7^100의 1의 자리의 수를 구할려면... 저는 일딴 7^100의 값을 구하고 10으로 나눈 나머지 값으로 하거든요?

제 방식대로 할려면 7^100의 수를 저장을 하고 그 수를 10으로 나눠야하는데..


7^100의 수를 저장할 만한 메모리가 없어용 ㅠㅠ long형도 4바이트고...


cseteram   8년 전

7^100 을 저장할 이유는 없어요. 

7^100의 일의 자리의 경우, 7->9->3->1-> ... 순으로 반복됩니다.

whgusfud   8년 전

7을 예로 들면,  a라는 int형 변수가 있을 때 최초 a = 7입니다. 이후로

a = (a*7)%10; 과 같은 식을 이용해서 1의 자리만 저장을 합니다. 7 -> 9 -> 3 -> 1.. 이렇게 저장되겠죠? 

a가 다시 7이 된다면 한 싸이클이 돌은 것이기 때문에, 싸이클의 size도 알 수 있습니다. 모듈러 연산과 주기를 이용하시면 풀 수 있을거에요.

댓글을 작성하려면 로그인해야 합니다.