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-blank 为 true 时适用。必须是 ""(空字符串)或遵循与预期用户输入相同的格式。 |
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**2、2**n、n * log(n)),其中
语法与 pl-symbolic-input 相同。最多支持 7 个变量。
当省略 variables 属性时,该元素从自由符号中推断变量
correct-answer(例如,correct-answer="n**2" 推断为 n)。
多元限制¶
评估 Big-O 语句并提供反馈的后端使用 Sympy 将学生的答案与正确答案进行比较。 Sympy 仅支持单变量限制,因此最好的近似是评估每个嵌套顺序中的所有单向限制。 这会导致使用多个变量时应考虑的一些限制/行为:
- Sympy 将
x*y和y*x视为不同的表达式,因此学生不会被告知他们的表达式是否未简化(例如n^(1+1))。 - 具有混合低阶项的表达式在采用相同增长率时计算为常数时,将给出学生已包含“低阶项”而不是数学上可能的“附加常数因子”的反馈(例如,
x^2+2xy+y^2超过x^2+y^2)。 - 某些表达式(通常具有嵌套指数和阶乘)将具有 Sympy 无法解决的限制,并且无法给出正确的部分反馈。如果您需要此类表达式,建议使用
pl-symbolic-input代替,这只会检查是否相等。 - 具有许多变量的 Big-O 表达式会变慢,并且如果存在 7 变量 Big-O 输入的多个实例,问题可能会超时。
示例实现¶
- [元素/bigO输入]