Generate random perturbation without revealing the source

55 Views Asked by At

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.