Новости:

Форум на данный момент в стадии обновления. Если у Вас возникли проблемы со входом в свою учетную запись - просьба писать на email: info@excel-vba.ru

Главное меню

Функция, возвращающая три значения

Автор Whitecolor, 06.12.2016, 18:15:39

« назад - далее »

Whitecolor

Всем привет. Может кто-нибудь помочь с написанием функции возвращающей случайным образом с равной вероятностью три
значения – 0, 1 или 2.

kuklp

Кросс:
http://www.programmersforum.ru/showthread.php?t=300868
http://forum.msexcel.ru/index.php/topic,11569.msg57464.html#msg57464
http://www.excelworld.ru/forum/10-31445-1
http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=1&TID=85365&TITLE_SEO=85365-funktsiya-vozvrashchayushchaya-tri-znacheniya
kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728

Дмитрий Щербаков(The_Prist)

Если речь про VBA, то так можно:
    Dim lRundNum As Long, lMinNum As Long, lMaxNum As Long
    lMinNum = 0: lMaxNum = 2
    Randomize
    lRundNum = Int(lMinNum + (Rnd() * lMaxNum))
    MsgBox lRundNum
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

Whitecolor

А у Вас возвращается 2? У меня почему-то только 0 или 1.

A-Michael

Так 2 никогда не будет, т.к RND никогда не даёт 1, лучше, по моему:
lMaxNum = 3и тогда:
lRundNum = Int(Rnd() * lMaxNum)
Я - не волшебник, я ещё только учусь...

RAN

Лучше правильно
Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
А что ты умеешь?
Учиться...

A-Michael

То есть, если перевести в числа, получится:
Int((2-0+1) * Rnd + 0)
И тогда:
Int((3) * Rnd)
По сути моя формула и получается, просто Вы, уважаемый RAN дали формулу в общем виде для любых значений границ.
Я - не волшебник, я ещё только учусь...

Яндекс.Метрика Рейтинг@Mail.ru