Генерацияслучайных чисел от 0 до 9

 

Доброго всем времени суток!

У меня вопрос к специалиста по математическим функциям. Мне необходимо сгенерить в советнике ряд случайных чисел, но каждое число должно быть в интервале от 0 до 9.

Есть функции MathRand и MathSrand, но как с их помощью получить случайное число в интервале от 0 до 9 я понять не могу.

Подскажите, пожалуйста, как это сделать.

С уважением, Андрей.


 

1. ввести простое условие "если полученное СЧ больше 9 - генерировать ещё раз".

 
Andrey916:

Доброго всем времени суток!

У меня вопрос к специалиста по математическим функциям. Мне необходимо сгенерить в советнике ряд случайных чисел, но каждое число должно быть в интервале от 0 до 9.

Есть функции MathRand и MathSrand, но как с их помощью получить случайное число в интервале от 0 до 9 я понять не могу.

Подскажите, пожалуйста, как это сделать.

С уважением, Андрей.


случайное число на диапазоне [0-9] = MathRand() % 10

то есть остаток от деления на 10.

этот остаток всегда будет в диапазоне от 0 до 9

 
другой вариант - СЧ*9/32768 (на случай если дробный результат нужен).
 

evillive:
другой вариант - СЧ*9/32768 (на случай если дробный результат нужен).

Спасибо.

Я тоже немного подумал.

Вот мой вариант решения:

MathSrand(0);
string Per1 = DoubleToStr(MathRand(),0);
string Per2 = StringSubstr(Per1, StringLen(Per1)-1, 0);
Comment(Per2);

Здесь Per2 - это последняя цифра от случайного числа в текстовом формате.

 
Andrey916:
Проверьте, что быстрее считает!
 

Andrey916:


Я тоже немного подумал.

Вот мой вариант решения:

MathSrand(0);
string Per1 = DoubleToStr(MathRand(),0);
string Per2 = StringSubstr(Per1, StringLen(Per1)-1, 0);
Comment(Per2);

Здесь Per2 - это последняя цифра от случайного числа в текстовом формате.


Зачем DoubleToStr если там всегда целое число на выходе генератора?

MathSrand(0) будет давать предсказуемые результаты, лучше MathSrand(GetTickCount()).
 

Andrey916:

Я тоже немного подумал.

Вот мой вариант решения:

MathSrand(0);
string Per1 = DoubleToStr(MathRand(),0);
string Per2 = StringSubstr(Per1, StringLen(Per1)-1, 0);
Comment(Per2);

интересно,

это по вашему не одно и то же = MathRand() % 10

?

Причина обращения: