Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Получение рандомного числа + -

Страниц (1): [1]
 

1. konctantin777 - 17 Сентября, 2020 - 03:17:02 - перейти к сообщению
Здравствуйте. В диалоге в поле edit вводиться число от которого надо получить рандомное число в указанных %. Т.е. функция получает число 100, а должна выдать рандом от 80 до 120 (при разбросе 20%) Что то не работает... Посмотрите ?

CODE:
n=(Рандом_число(formatsn(text_edit0[5]), 50))*1000;
textout(50, sx, sy, "П. п. забр. "+n, 1);
text_static0[1]="П. п. забр. "+n; sleep(20);
pause(n);

//получить рандом число

function Рандом_число(int chislo, int razbros)
{

//chislo
//razbros

int n1; int n2; int rand_itog=0;
n1=chislo-razbros%;
n2=chislo+razbros%;

rand_itog=rand(n1, n2);
return rand_itog;

}
2. Zireael - 17 Сентября, 2020 - 03:22:45 - перейти к сообщению
CODE:
messagebox(Рандом_число(100, 10)); // число +-10%

function Рандом_число(int chislo, int razbros)
{
return rand(chislo - chislo * razbros / 100, chislo + chislo * razbros / 100);
}
3. ivantu - 17 Сентября, 2020 - 03:33:37 - перейти к сообщению
Пока печатал, опередили ))
4. konctantin777 - 17 Сентября, 2020 - 03:47:32 - перейти к сообщению
Спасибо ! Всё гениальное просто )
5. konctantin777 - 13 Февраля, 2021 - 10:09:55 - перейти к сообщению
 Zireael пишет:
messagebox(Рандом_число(100, 10)); // число +-10%

function Рандом_число(int chislo, int razbros)
{
return rand(chislo - chislo * razbros / 100, chislo + chislo * razbros / 100);
}


А как сделать, что с 1 не вылетал ?
CODE:
messagebox(Рандом_число(1, 10)); // число +-10%

function Рандом_число(int chislo, int razbros)
{
return rand(chislo - chislo * razbros / 100, chislo + chislo * razbros / 100);
}
6. Zireael - 13 Февраля, 2021 - 10:14:04 - перейти к сообщению
CODE:
messagebox(Рандом_число(1, 10)); // число +-10%

function Рандом_число(int chislo, int razbros)
{
int x1 = chislo - chislo * razbros / 100;
int x2 = chislo + chislo * razbros / 100;
return rand(x1, x2);
}
7. Kibor - 13 Февраля, 2021 - 10:18:21 - перейти к сообщению
 konctantin777 пишет:
А как сделать, что с 1 не вылетал ?

rand принимает только целые числа. Привести к int
CODE:



int a=chislo - chislo * razbros / 100;
int b=chislo + chislo * razbros / 100;
return rand(a, b);


8. konctantin777 - 13 Февраля, 2021 - 11:23:16 - перейти к сообщению
Спасибо !

Powered by ExBB FM 1.0 Final