1P by GN⁺ | ★ favorite | 댓글 1개
  • Charles Petzold가 집필 중인 웹북으로, 로그의 역사와 활용을 통해 곱셈·거듭제곱·삼각법·음악·그래프 같은 주제를 연결해 보여줌
  • 중심 축은 계산 도구로서의 로그와 슬라이드 룰이며, 이론뿐 아니라 직접 계산하고 도구를 만드는 흐름까지 포함함
  • 장 제목 색으로 집필 상태를 구분해, 거의 완료된 장과 아직 변동 중이거나 시작 전인 장을 독자가 바로 파악할 수 있음
  • 아직 전문 편집을 거치지 않았고, 전체 완성 목표는 2027년 말로 잡혀 있음
  • 데스크톱·노트북 열람에 가장 맞춰져 있으며, iPad Mini iOS 12.5.7과 휴대폰에서는 표시 문제가 생길 수 있음

웹북의 범위와 집필 상태

  • The Lost Art of Logarithms는 Charles Petzold가 집필 중인 웹북임
  • 로그를 단순한 수학 개념이 아니라, 계산과 과학사 전반에 걸친 도구로 다룸
    • 로그가 무엇인지
    • 로그의 유용성, 역사, 보편성
    • 평면 및 구면 삼각법에서 로그가 쓰인 역사적 용도
    • 슬라이드 룰의 이론과 실제 사용법
  • 장 제목 색으로 현재 집필 단계를 표시함
    • 초록색: 거의 완료됐으며 큰 변경은 예상되지 않지만, 작은 편집·수정·외형 정리는 가능함
    • 빨간색: 미완성이고 현재 변동 중임
    • 검은색: 아직 시작되지 않음
  • 아직 전문 편집은 진행되지 않았고, 완성 예상 시점은 2027년 말

열람 환경과 목차 구성

댓글과 토론

Hacker News 의견들
  • 로그를 초등·중등 과정에서 배우는 방식보다, 로그의 원래 동기를 따라가며 보는 편이 훨씬 더 잘 이해됐음
    Napier가 마주한 문제, 즉 큰 천문 관측값의 곱셈을 단순화하려고 f(ab) = f(a) + f(b) 형태의 함수를 찾았고, 왜 이것이 특정한 함수족으로 이어지는지를 생각하면 로그가 어디에나 등장하는 이유가 더 잘 와닿음
    지수함수의 역함수로 가르치는 방식과는 대비되는데, 실제로 그런 식의 논의는 Euler 전까지는 아니었음
    수학도 이런 식으로 배우는 게 더 재미있다고 봄. 원 저자가 풀려던 문제는 무엇이었고, 당시에는 어떤 도구를 쓸 수 있었는지를 따라가는 방식임

    • Toeplitz가 쓴 "Calculus: The Genetic Approach"는 수학을 역사적 전개를 통해 설명하는 방식이고, 이런 접근은 https://en.wikipedia.org/wiki/Genetic_method로도 더 널리 쓰이는 듯함
      Felix Klein도 “작은 규모에서 학습자는 자연스럽고 필연적으로 과학이 큰 규모에서 거친 전개를 반복해야 한다”고 했음
    • 이런 접근이 마음에 든다면 Kolmogorov의 Mathematics: It's Content, Methods, and Meaning을 강력히 추천함
      같은 방식을 수학의 훨씬 많은 개념에 적용한 책이고, 분량도 약 1,000쪽임
      이 책도 아마 여기서 알게 됐던 것 같아서, 이제 다시 전해주는 셈임
      이 접근은 모든 것이 물질적 필요에서 생겨난다고 보는 소련식 변증법적 유물론 철학과도 맞닿아 있었음
      그 철학 전체에 완전히 동의하는지는 모르겠지만, Kolmogorov의 책은 정말 눈이 트이는 느낌이었음
    • 이 방식이 전면에 와야 한다고 봄
      그런 취지에서 "magnitude notation"[0]을 제안함. “logarithm”이라는 말은 고급 수학처럼 들려서 사람들을 밀어내는데, 사실 기본 개념은 수학을 더 쉽고 재미있게 만들어줌
      https://saul.pw/mag
    • 자주 이런 생각을 함
      수학 교육은 Euler처럼 아주 똑똑하고 추상적으로 생각하는 사람, 즉 조작 절차가 아니라 직관으로 이해할 사람들을 끌어들이려는 경향이 있는 것 같음
      다른 사람들에게는 원래 문제 속에서 한동안 헤엄쳐 봐야 비로소 빛이 보임
    • 오히려 로그는 지수의 역함수라는 직설적인 설명이 더 좋음
      10^2 * 10^3 = 10^5를 자동으로 이해할 수 있어서 더 직관적임
      그래서 로그표를 쓰면 덧셈이 말이 됨. 굳이 긴 글이 필요하지 않았음
      로그를 취해 2 + 3 = 5를 더한 뒤 다시 거듭제곱하면 10^5가 됨
  • 타이밍이 좋음. 바로 어제 계산자 쓰는 법을 배웠음
    하나 사려고 보니 선택지가 너무 많아서 작은 토끼굴[0]에 빠졌고, 어떤 계산자는 순수한 예술품처럼 보였음
    요즘은 모든 인터페이스가 유리판인 시대에 아날로그 도구가 줄 수 있는 의외의 장점을 다시 발견하는 중임
    최근에는 코딩 프로젝트의 초기 초안을 잡을 때 펜과 종이를 편집기처럼 쓰는 걸 즐기고 있음
    특별히 좋아하는 아날로그 도구가 있는지 궁금함
    [0]:https://sliderulemuseum.com/

    • 수학 강의를 들으면서 가끔 이런 아날로그 도구를 사볼까 생각함
      Hacker News에서 누군가 일본식 주판인 Soroban[1]에 관심을 갖게 해줬는데, 지금도 엄청난 암산 속도를 훈련하는 데 쓰임[2]
      1. https://en.wikipedia.org/wiki/Soroban
      2. https://www.youtube.com/watch?v=s6OmqXCsYt8
    • 계산자를 여러 개 갖고 있고 매일 씀
      특히 비율을 자주 조정하는 부엌에서는 가능한 최고의 도구임
      원하는 배율로 맞춰두면 필요한 어떤 비율이든 눈 깜짝할 사이에 읽을 수 있음
      솔직히 부엌의 표준 장비가 아닌 게 놀라움
    • Soroban. 일본식 주판임
      모든 숫자가 하나의 표현만 갖고, + - * /와 다른 계산도 가능함
      http://totton.idirect.com/
    • 펜/연필과 점종이를 씀. 완전히 다른 두뇌 공간이 열림
    • 원문 사진 속 남자가 들고 있는 1미터짜리 계산자는 어디서 구할 수 있을까?
  • 로그 변환을 적용하면 데이터가 종종 정규분포처럼 되는 이유가 흥미로움
    자연법칙은 대체로 곱셈 형태임. F=ma, PV=nRT 같은 식임
    독립·동일분포 확률변수들을 곱하면 중심극한정리 덕분에 로그정규분포 데이터가 됨. 로그 척도에서는 곱셈이 덧셈이고, 중심극한정리는 동일분포가 아닌 경우에도 어느 정도 견고하기 때문임
    데이터를 여러 영향 요인이 곱해진 결과로 보면, 그래서 로그정규분포가 나옴

    • 중심극한정리는 독립·동일분포 변수를 요구하지 않음
      독립이고 분산이 있으며, 약간 더 높은 차수에 대한 꽤 약한 조건만 있으면 됨
      그 외에는 변수들이 서로 상당히 달라도 됨
    • 두꺼운 마커로 로그-로그 척도에 그리면 모든 데이터는 선형임
  • 자주 써먹은 로그 관련 사실이 있음
    X가 0과 1 사이의 균등분포를 따르는 확률변수라면, –ln(X)/λ는 비율 λ지수분포를 가짐
    예를 들어 가중 무작위 표본을 뽑거나 시뮬레이션에서 이벤트 시간을 생성할 때 유용함

    • 이것의 일반화는 역변환 표본추출[0]이라고 부름
      임의의 확률변수 X의 누적분포함수 F에 대해 확률변수 Y = F(X)가 표준 균등분포[1]를 따른다는 사실을 이용함
      모든 누적분포함수는 단위구간에서 단조증가하므로 역함수가 가능함[2]
      그래서 앞 식의 양변에 역누적분포함수를 적용하면 F^-1(Y) = X가 되어 X처럼 분포함
      표준 균등분포에서 표본을 뽑은 뒤 역변환을 쓰는 방식은 임의 분포에서 난수를 생성하는 가장 흔한 방법임
      0. https://en.m.wikipedia.org/wiki/Inverse_transform_sampling
      1. https://en.m.wikipedia.org/wiki/Probability_integral_transfo...
      2. 모든 누적분포함수가 일대일은 아니므로 일반화된 역함수가 필요할 수 있음
    • 이걸 이해하려면 수학을 얼마나 공부해야 할까?
    • 누적분포함수나 확률밀도함수를 쓰지 않고 이해하는 방법도 있음
      X가 지수분포 변수이고 c가 상수일 때, 큰 값이라는 조건을 걸고 보면 X + cX와 같은 분포를 가짐
      다시 말해 두 변수의 꼬리분포가 같음. 이 성질은 지수분포에서 정확히 성립하고, 흔히 무기억성이라고 부름
      비슷하게 U[0, 1]의 균등분포이고 c가 상수라면, 작은 값이라는 조건을 걸었을 때 cUU와 같은 분포를 가짐
      cU가 0 근처에서 U처럼 분포한다면 -ln(c U)는 무한대 근처에서 -ln(U)처럼 분포함
      그런데 -ln(c U) = -ln(c) - ln(U)이므로, -ln(U)의 꼬리는 상수를 더해도 변하지 않음. 따라서 지수분포여야 함
  • 몇몇 프로젝트에서 LMAX Disruptor를 쓰기 시작했음
    Disruptor의 특이한 점 하나는 큐 크기가 항상 2의 거듭제곱이어야 한다는 것임
    어떤 크기든 최소한 충분한 공간이 확보되게 하고 싶었고, 수동으로 계산하기는 싫어서 이렇게 작성했음
    var actualSize = Double.valueOf(Math.pow(2, Math.ceil(Math.log(approxSize) / Math.log(2)))).intValue();
    한 줄치고는 좀 과하지만, 올바른 지수를 얻기 위해 기본적인 로그 규칙을 쓴 것뿐임
    고등학교 때 배운 내용인데, 일부 동료들은 전례 없는 신비한 수학을 쓰는 것처럼 봤음
    아마 로그를 빅오 표기법 밖에서는 안 쓰는 것 같음

    • 물론 그대로도 충분히 쓸 수 있지만, 나라면 이렇게 쓸 것 같음
      var actualSize = Integer.highestOneBit(approxSize - 1) << 1;
      단지 소박한 pow()log() 아래에 숨어 있는 공포를 피하고 싶어서임
      Integer.highestOneBit는 “가장 왼쪽 비트 분리”, “최상위 1” 같은 것으로도 불리며, 효율적으로 구현하려면 사실상 원시 연산이어야 함
      최하위 비트 쪽의 x&-x와는 다름
      실제 CPU 명령은 보통 Integer.numberOfLeadingZeros에 더 가깝지만, 거기서 비트 시프트만 하면 됨
    • 크기를 오른쪽으로 1비트씩 시프트하면서 값이 0이 될 때까지 횟수를 세면, 그 크기에 대한 2의 지수를 얻을 수 있음
  • 암산에 쓰려고 로그 몇 개를 외우는 것을 강력히 추천함
    예상치 못한 능력이 생겼음
    시작할 때 쓴 글은 여기 있음: https://entropicthoughts.com/learning-some-logarithms

    • 블로그가 좋음
      흥미롭게도 기억 감쇠 자체도 본질적으로 로그/지수적임
      간격 반복으로 로그를 배우는 건 꽤 메타적임
    • 그 글 이후 1년 동안 실제로 적용해보니 어떤 성찰이 있었는지 궁금함
      덧붙여, 그 블로그는 정말 좋아하는 블로그 중 하나임
  • 로그미분도 놀랄 만큼 근본적인 개념임
    (ln(f))' = f'/f
    함수론에서는 항상 쓰지만, 사람들이 이것이 로그와 관련 있다는 사실은 잘 알아차리지 못함
    로그미분이 예쁘게 나오는 함수들도 예상보다 훨씬 흥미로움
    자연에는 Gompertz 함수가 가득하고, 익숙해지고 나면 여기저기서 보임

  • 예전에는 머릿속으로 기본적인 로그 근사 계산을 할 수 있는 실용적 가치가 있었음
    계산기가 없던 시절에는 빠른 곱셈·나눗셈이나 거듭제곱을 이렇게 했음
    Feynman의 "Surely You're Joking"에는 Los Alamos 과학자들이 암산 로그 계산 속도 경쟁을 했다는 이야기가 있음

  • 로그의 아버지 John Napier, 즉 lnN은 거의 인간 계산기 작업장을 굴리며 20년쯤 로그표를 만들게 했음
    이는 천문항법에 매우 중요했음
    바다를 안전하게 건너는 방법을 개발한 사람에게 큰 상금이 걸려 있었고, 이것이 회중시계 발명으로도 이어졌음

    • lnn은 “natural”, 즉 “logarithm natural” 아닌가?
  • Huffman 압축으로 유명한 Huffman이 가르친 수업에서, 덧셈과 조회표로 곱셈하는 법을 배웠음
    시험에서는 계산기를 쓸 수 없었음
    하지만 가장 좋아하는 요령은 진법 변환임: https://www.khanacademy.org/math/algebra2/x2ec2f6f830c9fb89:...
    조금 연습하면 2의 거듭제곱, 10의 거듭제곱, e 사이의 근사 진법 변환을 머릿속으로 할 수 있음