Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • 0
Sign in to follow this  
ka3ant1p

математика рандома

функция random выбирает рандомно число от 0 до того что я укажу. Как можно делать рандом не от 0 ?
функция max или min тут не подходит т.к.:

при выборе скажем от 50 до 100 у каждого числа фактически 2% шанс выпадения
если делать (random 100) max 50; то получится что шанс что в результате получим 50 будет 50%, т.к. любое число которое рандом выбросит < 50 автоматически станет 50.

пробовал делать так еще:

((random 100) + 50) min 100;  в таком варианте имеем 50% шанс что в результате получим 100

Вот интересно как сделать рандом  от 50 до 100?

Share this post


Link to post
Share on other sites

4 answers to this question

Recommended Posts

  • 0

функция random выбирает рандомно число от 0 до того что я укажу. Как можно делать рандом не от 0 ?

функция max или min тут не подходит т.к.:

 

при выборе скажем от 50 до 100 у каждого числа фактически 2% шанс выпадения

если делать (random 100) max 50; то получится что шанс что в результате получим 50 будет 50%, т.к. любое число которое рандом выбросит < 50 автоматически станет 50.

 

пробовал делать так еще:

 

((random 100) + 50) min 100;  в таком варианте имеем 50% шанс что в результате получим 100

 

Вот интересно как сделать рандом  от 50 до 100?

от 50 до 100, и без нуля.

_random = round(random 49) + 51;

Share this post


Link to post
Share on other sites



  • 0

как оказалось все просто =) Только наверное на ооборот  _random = round(random 51) +49; а то в твоем варианте получается от 52 результат будет

Share this post


Link to post
Share on other sites
  • 0

как оказалось все просто =) Только наверное на ооборот  _random = round(random 51) +49; а то в твоем варианте получается от 52 результат будет

В моем варианте, изначально выбирается рандом от 0 до 49(ты же хотел с 1 до 50 - без нуля).

Потом чтобы сбалансировать 0 к 1, надо прибавить 1(т.е. по сути чтобы не выбрало, к этому - надо плюсануть единицу).

Получаем 1-50. И т.к. тебе надо от 50 до 100, то еще +50. Итог: +51.

 

Именно в твоем варианте, от 50 до 100.

Достаточно просто -

_random = round(random 50) + 50;

 

Без нуля от 1 до 50

_random = round(random 49) + 1;

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.