跳转至

pl-big-o-input元件

填写允许渐近数学输入的空白​​字段(即大 O、大 Theta 等)。 在渐近输入不正确的情况下给出自动反馈。

question.html
<pl-big-o-input answers-name="ans" variables="n" correct-answer="n**2" size="10"></pl-big-o-input>

定制

属性 类型 默认 描述
allow-blank 布尔 是否允许输入框为空。默认情况下,空输入框不会被评分(格式无效)。
answers-name 字符串 用于存储数据的变量名称。请注意,该属性在问题中必须是唯一的,即该属性的值不应在问题中重复。
aria-label 字符串 输入的可访问标签。
blank-value 字符串 1 (one) 如果元素留空,则用作答案的值。仅当 allow-blanktrue 时适用。必须是 ""(空字符串)或遵循与预期用户输入相同的格式。
correct-answer 字符串 正确答案可用于评分。空白正确答案(correct-answer="")仅在allow-blank="true"blank-value=""时有效。
display "block""inline" "inline" 如何显示输入字段。
initial-value 字符串 第一次渲染时预填充输入框的初始值。
placeholder 字符串 "asymptotic expression" 输入框中显示的提示描述了预期的输入类型。
show-help-text 布尔 真实 在显示所需输入参数的输入末尾显示问号。
show-score 布尔 真实 是否在此元素旁边显示分数徽章和反馈。
size 整数 35 35输入框的大小。
type "big-o""theta""omega""little-o""little-omega" "big-o" 所需的渐近答案类型。
variables 字符串 可在符号表达式中使用的以逗号分隔的符号列表。最多支持 7 个变量。如果省略,则从 correct-answer 推断变量。
weight 整数 1 计算元素的加权平均分数时使用的权重。

从已弃用的属性迁移

为了向后兼容,仍支持以下已弃用的属性:

旧语法 新语法
variable="<value>" variables="<value>"

variable属性不能与variables属性同时使用。

细节

正确答案必须指定为具有 Python 语法的字符串(例如 n**22**nn * log(n)),其中 语法与 pl-symbolic-input 相同。最多支持 7 个变量。

当省略 variables 属性时,该元素从自由符号中推断变量 correct-answer(例如,correct-answer="n**2" 推断为 n)。

多元限制

评估 Big-O 语句并提供反馈的后端使用 Sympy 将学生的答案与正确答案进行比较。 Sympy 仅支持单变量限制,因此最好的近似是评估每个嵌套顺序中的所有单向限制。 这会导致使用多个变量时应考虑的一些限制/行为:

  • Sympy 将 x*yy*x 视为不同的表达式,因此学生不会被告知他们的表达式是否未简化(例如 n^(1+1))。
  • 具有混合低阶项的表达式在采用相同增长率时计算为常数时,将给出学生已包含“低阶项”而不是数学上可能的“附加常数因子”的反馈(例如,x^2+2xy+y^2 超过 x^2+y^2)。
  • 某些表达式(通常具有嵌套指数和阶乘)将具有 Sympy 无法解决的限制,并且无法给出正确的部分反馈。如果您需要此类表达式,建议使用 pl-symbolic-input 代替,这只会检查是否相等。
  • 具有许多变量的 Big-O 表达式会变慢,并且如果存在 7 变量 Big-O 输入的多个实例,问题可能会超时。

示例实现

  • [元素/bigO输入]

参见