练习测试 · Python 和本地 AI

一个会跟着你走的测试,覆盖大纲的每一课

本页测试各课教的内容:“Python 和本地 AI”课程大纲里的每一课,以及 Start Python 带你去的每一课。每一课是一个主题。本页每次问 15 道题。它为每个主题记一个分数,找出你最薄弱的三个主题,就问这三个。每答完一题,它会说明原因,并给你一个链接,通向这道题所出自的那部分课程。

先学完一课,再来测这一课。在测试下方,你可以选出大纲里已经学完的单元,测试只在这些单元里出题。

你只需要这一个页面。你的分数只保存在这个浏览器里,不会发送到任何地方。

正在加载题目……

测试是怎样选题的

测试里没有任何 AI。它只是对你给出的答案做算术,全部过程都写在本页上。

自适应学习循环是怎样运作的

每一轮就是这个循环转一圈。测试从你最薄弱的几课里选题,记下你的答案,调整你每一课的分数,下一次再选更难或更容易的题。

  1. 给各课排序。每一课是一个主题,你所选单元里的每个主题都有一个优先级。最薄弱的排在最前面。
  2. 组成一轮。你最薄弱的三课各出五道题。对每一课,测试选出最接近你水平的题。
  3. 作答并学习。你回答每一道题,然后看到原因,以及通向那部分课程的链接。
  4. 调整 θ。Elo 公式会调整你这一课的分数:答对就上升,答错就下降。
  5. 显示结果。这一轮的得分、每一课的进度条、你的掌握度,以及下一轮要问的课。
  6. 下一轮。新的优先级回到第 1 步。薄弱的课会一直出题,直到你掌握它。

背后的数学

测试用 Elo 等级分来跟踪你对每一课掌握得怎样,并用这个分数来选择你下一轮的题目。

掌握度曲线(S 形曲线)

0% 50% 100% 弱 中等 强 θ = 0

从左到右是分数 θ,从 −3 到 +3。从下到上是掌握度的百分比。每一课都有自己的 θ。它从 0 开始,也就是 50%,你的答案会让它上升或下降。

一次 Elo 更新的三个步骤

  1. 你答错了一题。θ 下降。对一道和你水平相当的题,在这一课的前十次作答里大约下降 0.3,之后大约下降 0.15。下降不会超过 0.6。
  2. θ 下降,掌握度就下降,优先级就上升。薄弱程度要取平方,所以薄弱的课上升得很快。
  3. 更高的优先级会把这一课放进你的下一轮。你多练它,直到掌握度回升。

公式

Elo 更新: 新 θ = 旧 θ + K × (right - expected) right 是 1 或 0 预期: expected = 1 / (1 + e^(-(θ - difficulty))) 掌握度: mastery = 1 / (1 + e^(-θ)) 优先级: (1 - mastery)² × untouched × 1 / (1 + 0.1 × attempts)

在一课的前十次作答里 K 是 0.6,之后是 0.3,所以分数一开始变化很快,然后稳定下来。对一门从没被问过的课,untouched 是 1.3,否则是 1。attempts 是你在这一课上作答的次数。每道题都有一个难度 difficulty,从 −1(容易)到 1(难)。

这和国际象棋的 Elo 等级分是一个道理。你的对手不是另一个人,而是每道题的难度。答对一道难题,比答对一道容易的题得到更多的 θ。

自适应练习是怎样运作的

每次你按下开始,测试就为你组成一轮 15 道题。这些题不是随机抽的。测试找出你最薄弱的三课,每课出五道题,让你练在最需要的地方。

你的档案

测试为每一课记一个分数 θ。每个 θ 都从 0 开始,也就是 50% 的掌握度。按上面的 Elo 公式,答对让它上升,答错让它下降。你的档案保存在这个浏览器里,所以下次打开本页时它还在。结果页面上的从零开始会把它清除。

组成一轮

测试给你所选单元里的各课排序,取优先级最高的三课,每课选五道题:难度最接近你这一课 θ 的那些题。你见过的题在接下来的三轮里不会再出,除非这一课已经没有别的题了。

题目的种类

大多数题给你四个答案来选,每次四个答案的顺序都不一样。少数题要你输入一个单词,比如一个命令的名字。每道题都属于一课,并有一个难度,所以这一课的分数能跟着你走。

题库

正在加载……

题目的来源