인터넷에 공개된 “2020학년도 대학수학능력시험 문제 및 정답” PDF 문제를 풀어보자.
library(tidyverse)
library(pdftools)
library(magick)
exam_pdf <- image_read_pdf("data/math_2020_2_1.pdf", page = 28)
exam_pdf %>%
image_scale("700") %>%
image_draw()앞서 추출한 \(\LaTeX\) 수식표현을 Sympy 표현식으로 바꿔야한다. 이를 위해서 latex2sympy를 설치해서 사용하면 되지만, 파이썬 2로 작성되어 있어 파이썬3를 많이 사용해서 이를 확인할 필요가 있다.
$ pip install latex2sympy3==0.1.1파이썬 표현식으로 작성하고 나서 이를 Sympy 문법 값을 구하는 N()을 사용해서 해를 구한다.
from sympy import *
N(16 * 2**(- 3))2.00000000000000
latex2r 팩키지의 도움으로 \(\LaTeX\) 코드를 R 코드로 변환시킨다.
# devtools::install_github("tomicapretto/latex2r")
library(latex2r)
r_expr <- latex2r("16 \\times 2^{-3}")R에서 Sympy를 통해 문제를 풀 수 있는 팩키지가 caracas, rSympy가 있다. caracas를 사용해서 문제를 풀면 다음과 같다.
library(caracas)
caracas::eval_to_symbol(r_expr)[caracas]: 2.0
rSympy를 사용해서 문제를 풀면 다음과 같다. ^ → **으로 바꿔 파이썬 표현식에 맞춰 넣어주면 rSympy로 해를 구할 수 있다. rJavaTools오류로 R마크다운 컴파일 오류지만 인터랙티브 계산은 됨!!!
library(rSymPy)
sympy("16 * 2 ** (- 3)")몇가지 방식으로 손으로 풀 수 있다.
\(16 \times 2^{-3} = \frac{16}{2^3} = \frac{2^4}{2^3} = 2^{4-3} = 2\)
\(16 \times 2^{-3} = \frac{16}{2^3} = \frac{16}{8} = 2\)
SymPy Gamma vs Wolfram AlphaSymPy Gamma는 Wolfram Alpha의 오픈소스 버전으로 보면 된다.
데이터 과학자 이광춘 저작
kwangchun.lee.7@gmail.com