Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Нашел прибыльную стратегию? Заведи торговый сигнал и заработай на этом!
roman epifanov
579
roman epifanov 2013.12.10 09:23 

функция int MathRand( ) не имеет никаких аргументов и выдает большие числа

а мне надо от 1 до 10

Владимирович
119
Владимирович 2013.12.10 09:30  
Тю... Она в каких приделах выдает? Разделите ее на соотвецтвующее число!!!
Владимирович
119
Владимирович 2013.12.10 09:33  
int MathRand()
The MathRand function returns a pseudorandom integer within the range of 0 to 32767. The MathSrand function must be used to seed the pseudorandom-number generator before calling MathRand.
Vitalie Postolache
11116
Vitalie Postolache 2013.12.10 09:38  

Было уже тыщу раз на форуме.

1. MathRand( )*10/32768 возвращает double 0..9,99(9)

2. MathRand( )%11 - возвращает целое в диапазоне 1..10

Sergey Gridnev
4768
Sergey Gridnev 2013.12.10 09:41  
evillive:


1. MathRand( )*10/32768 возвращает double 0..9,99(9)



MathRand( ) * 10.0 / 32768

Vitalie Postolache
11116
Vitalie Postolache 2013.12.10 09:43  
Contender:

evillive:

1. MathRand( )*10/32768 возвращает double 0..9,99(9)

MathRand( ) * 10.0 / 32768

и чо, ощутимая разница?
Sergey Gridnev
4768
Sergey Gridnev 2013.12.10 09:46  
evillive:
и чо, ощутимая разница?


В вашем варианте получалось целое число от 0 до 9, а не double от 0 до 9.99(9), как Вы написали.
roman epifanov
579
roman epifanov 2013.12.10 10:06  

MathRand( )%11 действительно возвращает целое, только в 30 процентах случаев выдает еденицу, а числа 5,4,3,2 вообще не выдает.

проверял почти 50 попыток

Vitalie Postolache
11116
Vitalie Postolache 2013.12.10 10:24  
openlive:

MathRand( )%11 действительно возвращает целое, только в 30 процентах случаев выдает еденицу, а числа 5,4,3,2 вообще не выдает.

проверял почти 50 попыток

50 попыток мало, народ сотни тысяч прогонов для проверки делает ;)
Перед MathRand( ) неплохо бы применять MathSRand(GetTickCount());
Vitalie Postolache
11116
Vitalie Postolache 2013.12.10 10:31  
Contender:

В вашем варианте получалось целое число от 0 до 9, а не double от 0 до 9.99(9), как Вы написали.
а, блин, верно.
Alexey Subbotin
4999
Alexey Subbotin 2013.12.10 12:36  
evillive:

Было уже тыщу раз на форуме.


2. MathRand( )%11 - возвращает целое в диапазоне 1..10


MathRand( )%11 -> это от 0 до 10,

MathRand()%10+1 -> от 1 до 10.

/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий