Что вернет эту функцию?(Math.random ()) - PullRequest
0 голосов
/ 03 октября 2011

Какой диапазон номеров? Серьезно, у меня разболелась голова, пытаясь понять это -_-

public function gerRandom(i:uint):uint {
        return Math.round(Math.random()*i);
}

Целые числа от 0 до i включая? Мне это нужно. Этакий нубский вопрос, но неважно: D

Ответы [ 3 ]

11 голосов
/ 03 октября 2011

Math.random () создаст число от 0 до 1 (не включая 1). Таким образом, ваш код будет создавать значение между 0 и i, с меньшим шансом получить 0 и i по сравнению с другими значениями в диапазоне (он будет округляться только до 0 на 0,5 или менее, и до 'i' на «я» - 0,5 или более).

Лучше использовать

public function getRandom(from:uint, to:uint):uint {
  return Math.floor(Math.random()*(to-from+1))+from;
}

(IIRC).

5 голосов
/ 03 октября 2011

Возвращает целое число от 0 до i, оба включительно, но не с равной вероятностью.Вы получите 0, если Math.random()*i - интервал [0, 0.5), но вы получите 1, если он находится в [0.5, 1.5].

. Вместо этого используйте Math.floor(Math.random() * (i + 1)).

2 голосов
/ 03 октября 2011

Целое число от 0 до i (оба включены):)

  • Math.random() возвращает значение от 0 до 1
  • Math.random*i возвращает число от 0 до i
  • Math.round(Math.random()*i) возвращает целое число от 0 до i.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...