是否可以使用 exams2pdf 并获得与 exams2nops 生成的完全相同版本的解决方案?

Is it possible to use use exams2pdf and to obtain the solution of the exact same version generated with exams2nops?

使用函数 exams2nops 生成考试时,我们会为每个生成的考试随机生成数据(假设有 5 个不同的版本)。我们想使用每个考试的完全相同的版本来生成解决方案版本(使用 exams2pdf)。使用 exams2nops 生成考试时是否可以即时创建解决方案版本?我的意思是完全相同的版本,相同的多项选择答案顺序和相同的错误值(使用奇妙的 num_to_schoice 函数)。我们保存每个练习中使用的 .rds 对象,允许我们在生成解决方案时获取导入它们,但是,错误的选项和顺序是不同的,因为它是随机的。我们还应该在 .rds 对象中保存特定的种子吗?在每个练习中,我们有几个随机生成的值。

当您在调用 exams2pdf()exams2nops() 之前设置相同的随机种子时,您应该得到相同的随机版本的练习。

插图:n = 2 版本的 exm 有 3 个练习。

library("exams")
exm <- c("capitals.Rmd", "deriv2.Rmd", "tstat2.Rmd")
set.seed(1)
exm1 <- exams2pdf(exm, n = 2)
set.seed(1)
exm2 <- exams2nops(exm, n = 2)

比较第二个随机版本考试中所有三个练习的问题列表:

all.equal(exm1[[2]][[1]]$questionlist, exm2[[2]][[1]]$questionlist)
## [1] TRUE
all.equal(exm1[[2]][[2]]$questionlist, exm2[[2]][[2]]$questionlist)
## [1] TRUE
all.equal(exm1[[2]][[3]]$questionlist, exm2[[2]][[3]]$questionlist)
## [1] TRUE

两者都必须单独调用,但目前没有选项可以同时生成两者。