1

Given a vector as an answer, I'd like to generate misleading answers for a multiple choice question.

The first idea is to add random perturbation. However, the right answer will tend to be close to the average of all answers. Can I do something better?

The second idea is to generate a random vector and scale it to the size of the answer. However, depending on the question, random vectors could easily be dismissed due to implausibility.

I guess the issue is less to do with random generation and more to do with selecting the range.


I have another idea. I can pick a random order for the answer, a number in 1-4. Then, the misleaders will be a perturbation step up or down from that. The step doesn't even have to be random. For example, I randomly picked 2 and the answer is x, then I generate x+e, x-e, x-2e.


If it's a 3D normalized vector (direction), then it's better to rotate it around a random perpendicular axis.


Another suggestion (following Pondy's tet suggestion): put the vectors on a circle (equidistant) with radius epsilon. Can be done component-wise.

  • 1
    Frame challenge: figure out what is the most likely step(s) that test-takers will make a mistake on, then include the answer that would result from the mistakes in that step(s). – Greg Martin Jun 27 '22 at 16:14
  • I second @GregMartin 's comment. The only benefit in a MCQ that no one will actually get in the course of doing their own calculation is to hope to penalize those students that guess. – Ian Jun 27 '22 at 16:16
  • Thanks for the suggestion, but I was looking for an automated approach. – Zohar Levi Jun 27 '22 at 22:47
  • You can automate that anyway; build a generic problem with variable numbers, cook up the choices symbolically, and then you can insert numbers in with software. – Ian Jun 28 '22 at 01:37

0 Answers0