```{r data generation, echo = FALSE, results = "hide"} sc <- NULL while(is.null(sc)) { p <- c(sample(1:3, 1), sample(1:5, 1)) q <- c(sample(4:5, 1), sample((1:5)[-p[2]], 1)) sol <- sqrt(sum((p - q)^2)) err <- c(sqrt(sum((p + q)^2)), sqrt(sum(abs(p - q)))) err <- err[abs(err - sol) > 0.1] if(length(err) > 1) err <- sample(err, 1) sc <- num_to_schoice(sol, wrong = err, range = c(0.1, 10), delta = 0.3, digits = 3) } ``` Question ======== What is the distance between the two points $p = (`r p[1]`, `r p[2]`)$ and $q = (`r q[1]`, `r q[2]`)$ in a Cartesian coordinate system? ```{r questionlist, echo = FALSE, results = "asis"} answerlist(sc$questions, markup = "markdown") ``` Solution ======== The distance $d$ of $p$ and $q$ is given by $d^2 = (p_1 - q_1)^2 + (p_2 - q_2)^2$ (Pythagorean formula). Hence $d = \sqrt{(p_1 - q_1)^2 + (p_2 - q_2)^2} = \sqrt{(`r p[1]` - `r q[1]`)^2 + (`r p[2]` - `r q[2]`)^2} = `r round(sol, digits = 3)`$. \ ```{r distplot, echo = FALSE, results = "hide", fig.path = "", fig.cap = ""} par(mar = c(4, 4, 1, 1)) plot(0, type = "n", xlim = c(0, 6), ylim = c(0, 6), xlab = "x", ylab = "y") grid(col = "slategray") points(rbind(p, q), pch = 19) text(rbind(p, q), c("p", "q"), pos = c(2, 4)) lines(rbind(p, q)) lines(c(p[1], p[1], q[1]), c(p[2], q[2], q[2]), lty = 2) ``` ```{r solutionlist, echo = FALSE, results = "asis"} answerlist(ifelse(sc$solutions, "True", "False"), markup = "markdown") ``` Meta-information ================ extype: schoice exsolution: `r mchoice2string(sc$solutions)` exname: Euclidean distance