An addition that might make the subquestion relevance a bit easier.
Use a question of type "multiple short text" with three subquestions to store the values
and this script
Code:
<script type="text/javascript" charset="utf-8">
function shuffle(array) {
var currentIndex = array.length, temporaryValue, randomIndex;
// While there remain elements to shuffle...
while (0 !== currentIndex) {
// Pick a remaining element...
randomIndex = Math.floor(Math.random() * currentIndex);
currentIndex -= 1;
// And swap it with the current element.
temporaryValue = array[currentIndex];
array[currentIndex] = array[randomIndex];
array[randomIndex] = temporaryValue;
}
return array;
}
$(document).on('ready pjax:scriptcomplete',function(){
var thisQuestion = $('#question{QID}');
// Fill the array
var arr =["01","02","03","04","05","06","07","08","09",10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25,26,27,28,29,30, 31,32,33,34,35,36,37,38,39,40,41,42,43,44,45, 46,47,48,49,50];
arr = shuffle(arr);
//Store the first 17 values into the first subquestion
anumbers = '#,' + arr.slice(0,17).join(',')+ ',';
$('input[type=text]:eq(0)', thisQuestion).val(anumbers).trigger('keyup');
//Store the second 17 values into the second subquestion
anumbers = '#,' + arr.slice(17,34).join(',')+ ',';
$('input[type=text]:eq(1)', thisQuestion).val(anumbers).trigger('keyup');
//Store the last 16 values into the third subquestion
anumbers = '#,' + arr.slice(34,50).join(',')+ ',';
$('input[type=text]:eq(2)', thisQuestion).val(anumbers).trigger('keyup');
// $('#question{QID}').hide();
});
</script>
Then the subquestion relevance for your three questions is
1st.:
strpos(Q1_SQ001,',01,')>0
strpos(Q1_SQ001,',02,')>0
...
strpos(Q1_SQ001,',50,')>0
2nd.:
strpos(Q1_SQ002,',01,')>0
strpos(Q1_SQ002,',02,')>0
...
strpos(Q1_SQ002,',50,')>0
3rd.:
strpos(Q1_SQ003,',01,')>0
strpos(Q1_SQ003,',02,')>0
...
strpos(Q1_SQ003,',50,')>0
This way you do not need to count. and the subquestion relevance is easier
Joffm