- 일반(쌀집) 계산기
일반 계산기로 (상용) 로그값을 구할 수 있을까?
ChatGPT-4o 에게 물어봤습니다.
일반 계산기 basic calculator 를 이용해 상용로그의 값을 구할 수 있나? 예를 들어 상용로그 log(7.56) 을 구한다면?
아니... ChatGPT야! 자연로그 계산 기능이 있는 계산기에 상용로그 계산 기능이 없겠니? 있겠니? 상식적으로 생각해 봐라.
근사적으로 구할 수 있습니다.
댓글 11
-
-
-
Claude 3.5 Sonnet
질문 : 상용로그 log(7.56) 을 구하려고 해. 1. 로그표를 사용할 수 없고, 2. 공학용 계산기를 사용할 수 없어. 3. 상용로그 log(2) log(3) log(5) 와 같은 값도 알고있지 않아.
답변 :
이해했습니다. 상용로그 log(7.56)을 근사적으로 계산하는 방법을 단계별로 설명해 드리겠습니다. 주어진 제한 사항을 고려하여 접근하겠습니다.
1단계: 7.56을 10의 거듭제곱 형태로 표현
7.56 = 10^x 라고 할 때, x를 찾는 것이 우리의 목표입니다.2단계: 양변에 로그를 취합니다.
log(7.56) = log(10^x) = x3단계: 7.56을 10에 가까운 수와 그 나머지로 분해
7.56 = 10 * 0.7564단계: 로그의 성질을 이용
log(7.56) = log(10 * 0.756) = log(10) + log(0.756) = 1 + log(0.756)5단계: 0.756에 대한 근사값 찾기
0.756은 1보다 작고 0.5보다 크므로, log(0.756)은 0과 -0.3 사이의 값일 것입니다. // 0은 알겠는데, -0.3은? (log2에서 착안한 듯?)
더 정확한 근사를 위해, 0.756 ≈ 10^(-0.12)라고 가정해 봅시다. // 뭐지? 급발진은?6단계: 최종 계산
log(7.56) ≈ 1 + (-0.12) = 0.88따라서, 주어진 제한 사항 하에서 log(7.56)의 근사값은 0.88입니다.
이 방법은 정확한 값을 제공하지는 않지만, 주어진 조건에서 상용로그의 개념과 성질을 이용하여 근사값을 구하는 방법을 보여줍니다. 실제 log(7.56)의 정확한 값은 약 0.8785입니다.
더 자세한 설명이 필요하거나 다른 질문이 있으시면 말씀해 주세요.
-
-
-
쌀집 계산기 : 방법1
10^x = 756 을 만족하는 x 를 구하고 -2를 하면 정답이니까,
10의 몇제곱을 하면 756 이 될 것인가? 를 찾으면 됨.
- 1. 2제곱(100)보다는 많아야 하고 3제곱(1000)보다는 적어야 한다.
- 2. 5/2 = 2.5제곱은 √곱하기 5회(=6-1)반복으로 쉽게 구할 수 있는데 316이니까 많이 모자르고
- 3. 분모를 4로 하면 √√곱하기 11회(=12-1)반복하여 보아도 562로 많이 모자르고
- 4. 분모를 8로 하면 √√√곱하기 23회(=24-1)까지 하니까 739.89 로 찾는 값 756에 매우 근접함을 알 수 있다.
- 5. 반복을 더 하여 더 근접한 횟수를 찾을 것 같으면 더 하는 것이고, 대충 만족하려면 여기서 스탑
- 23/8 - 2 로 최종 결과값 0.875를 구함. 오차율 = −0.4 %
-
-
-
분모를 16으로(√√√√) 하면
분모를 8로 했을 때(√√√) 와 비교해
(시도횟수상) 간격이 반으로 줄어들게 됨
그 말을 다시 풀면
분모 8에서는 (24-1) 번째에 749.89 가 나왔으니,
분모 16에서는 (48-2) 번째에 749.89 가 나오고,
(48-1)번째에는 749.89 - 1000 사이의 어떤 값이 나오게 된다는 것.
정확하게는 몰라도 대충 그 값이 '(749보다 더) 756에 가깝지는 않을 것'은 알 수 있을 것
-
-
-
이해를 돕기 위해 그래프로 그려보면
대충 오차가 10 이내로 들어오면 운 좋게 찾아진 것.
-
-
-
쌀집 계산기 방법 2
버튼 입력 횟수에 무관하게
무식&정확하게 구해 나간다면...
(1/2)+(1/2)+(1/2)+(1/2)+(1/2)
+(1/4)
+(1/8)
+(1/16)
-(1/32)
-(1/64)
-(1/128)
-(1/256)
=((737)/(256)) = 2.87890625
최종 답 = 0.87890625
오차율 = 0.0437615208591%
다음 단계의 값을 루트로 구하기 위해서는
우선순위 때문에 앞의 결과값 ans 를 메모리에 먼저 넣어야 하므로
상~당히 귀찮은 작업입니다.
-
-
-
여기서 알 수 있는 것은,
앞에서 10^(1/16) 을 이용해 근사값을 구할 수 있었는데,
그보다 정확한 근사값을 찾으려면 10^(1/256) 을 이용해야 한다는 것이고,
이보다 더 정확한 근사값을 얻기 위한 다음 단계의 값(=10^(1/x))은 알 수 없다는 것.
-
-
-
다시 보니까 √ 버튼이 스택에 쌓여있는 입력보다 우선 계산되기 때문에
M 메모리를 쓰지 않고도 계산이 가능하네요.
(8클릭) 1 0 √ × = = = = 316.2277
(6클릭) × 1 0 √√ = 562.3413
(6클릭) × 1 0 √√√ = 749.8942
749.89420933246 구하는 데까지 20번 클릭이면 되네요.
(오차 줄인다고) 한번 더 갔다가 되돌아오려면추가로 +45 클릭이 필요합니다.
16제곱근(7클릭) : × 1 0 √√√√ = 865.9643 > 756
32제곱근(8클릭) : ÷ 1 0 √√√√√ = 805.8421 > 756
64제곱근(9클릭) : ÷ 1 0 √√√√√√ = 777.3650 > 756
128제곱근(10클릭) : ÷ 1 0 √√√√√√√ = 763.5060 > 756
256제곱근(11클릭) : ÷ 1 0 √√√√√√√√ = 756.6695 ≒ 756버튼 입력 횟수가 줄어드는 것도 좋지만,
계산중 M을 부르고 지우고 더하고 하는 관리과정이 빠지니까 훨씬 수월합니다.
-
-
-
계산 과정을 입체적? 으로 표현하면 이렇게 되구요.
최종 수식에서
곱하기에 해당하는 지수는 더해주고 (1/2)*5회 + (1/4) + (1/8) + (1/16)
나누기에 해당하는 지수는 빼주면 - (1/32) - (1/64) - (1/128) + (1/256)
찾고자 하는 로그값이 나오는 것이죠.
-
-
-
마지막 수식 계산 입력식 (Non-K)
-
-
-
그럼 자연로그도 가능??
10 을 n회 루트 씌우는 것은 쉽지만
e를 매번 입력하는 것은 비교할 수 없을만큼 더 피곤
ln(a) = log(a)/log(e) 이므로
log(a) 값을 구한 후에 log(e) 값을 구해서 나누는 과정이 추가되는 걸로 이해하면 되겠습니다.$ \log_{10}e = 0.43429448190325... $
이 값을 외우고 있으면 가능하다는 건데, 누가 외우고 다님?
-
'log3, log5, log2 값을 내가 알고 있었나?'
0.3010 은 숫자를 보니까 '아하!' 하고 기억이 나는군요.
0.4771 은 숫자를 보니까 '아~~ 그랬던 것 같기도 하고...' 기억이 날듯 말듯
0.6990 은 숫자를 봐도 모르겠네요. 머리속에서 깔끔하게 지워진 듯 합니다. 아... 1-log2 = log5 가 되죠. 외울 필요가 없었던건가?