Промежуток той же длины, но начинающийся с нуля, будет выглядеть так; [0;b-а]. Случайное значение на этом промежутке в команде random будет выглядеть так; random(b-a+l). Отсюда следует, чтобы найти случайное значение на промежутке [а;b], необходимо к полученной команде random прибавить а. Получим random(b-a+l)+а
Т.к. функция random генерирует случайное вещественное число в полуинтервале 10;1), а длина этого полуинтервала 1, то если мы умножим эту функцию на число (b-а), мы получим, что функция будет теперь генерировать числа на полуинтервале [0;b-а). Получим (b-а)* random. Следственно, чтобы сдвинуть этот интервал от 0, необходимо прибавить к полученной функции а, чтобы функция генерировала числа на полуинтервале [а;b). Получим выражение (b-a)*random+a
Т.к. функция random генерирует случайное вещественное число в полуинтервале 10;1), а длина этого полуинтервала 1, то если мы умножим эту функцию на число (b-а), мы получим, что функция будет теперь генерировать числа на полуинтервале [0;b-а). Получим (b-а)* random. Следственно, чтобы сдвинуть этот интервал от 0, необходимо прибавить к полученной функции а, чтобы функция генерировала числа на полуинтервале [а;b). Получим выражение (b-a)*random+a