{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