 # Does any one know how to ready this Math random and what are they trying to accomplish?

var rand = Math.floor(Math.random() * (index - 1)) + 1;
this code but I still do want to learn
how all the code’s bellow work… .

``````function populateRoundAnswers(gameQuestionIndexes, correctAnswerIndex, correctAnswerTargetLocation) {
// Get the answers for a given question, and place the correct answer at the spot marked by the
// correctAnswerTargetLocation variable. Note that you can have as many answers as you want but
// only ANSWER_COUNT will be selected.
temp, i;

throw "Not enough answers for question.";
}

// Shuffle the answers, excluding the first element.
for (var j = 1; j < answersCopy.length; j++){
var rand = Math.floor(Math.random() * (index - 1)) + 1;
index -= 1;
****************//also the code here
}

// Swap the correct answer into the target location
for (i = 0; i < ANSWER_COUNT; i++) {
}
}

``````

Also much love and Be Blessed !!

~K.C Diez

Break it down into pieces.

``````var rand = Math.floor(Math.random() * (index - 1)) + 1;
``````

is the same as

``````var rand = Math.random(); // a random number between 0 and 1 -- say 0.75
rand = rand * (index - 1); // multiply the random number by one less than the index -- say index is 3 and rand is now 1.5
rand = Math.floor(rand); // round down to a whole number -- this would be 1 in our example
rand = rand + 1; // add 1 -- in our example rand is now 2
``````
1 Like

random is so inconvenient in javascript… thankfully they don’t demand us to seed it manually

also you can use your browser’s js console (ctrl + shift + i) to run the snippet and its parts (assuming you define the variables or substitute them for actual numbers) to see the immediate result

1 Like

Ariell LOVE your photo Icon, also thank you so much for the time and attention on my post and god that’s a really good advice why not break down the problem(ofcourse not all problem’s are going to be break down, any way thank you for the support and love.)

Be blessed.

~KC. Diez

P.S also in the code I know you suppose to read for loop like this .

var j = 1; then j < answerCopy.length;
then var rand = etc…
so my question is should I read the j++ first or the indext -=1? also do the loop will keep doing the var random = math.floor(math.ran … etc? w8 should I repeat all the codes inside the for loop?

`````` for (var j = 0; j < GAME_LENGTH; j++){
var rand = Math.floor(Math.random() * index);
index -= 1;

var temp = indexList[index];
indexList[index] = indexList[rand];
indexList[rand] = temp;
gameQuestions.push(indexList[index]);
}

return gameQuestions;
}
``````

the GAME_LENGTH by the way is = to 5 and the var index = question.length which has 31 question,