У меня есть набор вопросов для викторины в базе данных sql (javascript и sqlite на самом деле). Все вопросы имеют уровень сложности от 1 до 5, 5 из них сложнее. Вот упрощенная визуализация данных ...Как сделать контролируемый заказ «тасования»?
+---------+--------------+ | id | difficulty | +---------+--------------+ | 1 | 1 | | 2 | 5 | | 3 | 2 | | 4 | 3 | | 5 | 2 | | 6 | 2 | | 7 | 4 | | 8 | 1 | | 9 | 5 | | 10 | 3 | +---------+--------------+
Теперь я могу тасовать этот штраф в SQL или коде, так что они находятся в случайном порядке без каких-либо повторов, но я также хочу, чтобы иметь контроль над тем, как трудностями поле упорядочено.
Так, например, я мог бы перемешиваются набор вопроса, где порядок уровня сложности выглядит следующим образом ...
1,1,5,2,3,3,2,2,2,4
У этого есть несколько «комков» трудности, это не то, что я хочу. Пользователь, играющий в игру, получит несколько групп подобных вопросов. Порядок, как это было бы лучше ...
1,2,3,2,5,4,1,2,3,2
Я хочу, чтобы гарантировать, что вопросы перемешиваются, но без труда комков. Равномерное распространение трудности, когда их мало, если есть какие-либо «комки». Любая помощь по MySQL/javascript (или PHP) будет отличной.
Я не уверен, что вы подразумеваете под «clumps». Вы имеете в виду, что вам нужны случайные вопросы без последовательных повторных трудностей? Может ли он начинаться с любого значения сложности или он всегда должен начинаться с 1? –
Это может начаться с каких-либо затруднений, и да, я имею в виду, не имея непрерывных трудностей. Сгустки будут непрерывными. – jfountain
Я думаю, что слово, которое вы ищете, «работает», а не «clumps». Является ли размер ввода фиксированным? Например. вам нужно взять N вопросов и переупорядочить их, чтобы не было прогонов? Или вы хотите извлечь N вопросов из набора M, где N
nicolaskruchten