|
|
|||||
Регистрация: Dec 2010
Сообщений: 22
|
Работа с массивом. Рандомное число
Всем привет.Нужна Ваша помощь
к примеру у меня есть массив в output я хочу получить одно рандомное число из моего массива , всё никак не додумаю как это сделать, делал так : конечно, это абсолютно не првавильно,к сожалению не знаю правильной формулы( жду вашей помощи Господа |
|
|||||
__________________
http://www.chessmax.ru |
|
|||||
Регистрация: Oct 2011
Адрес: Питер
Сообщений: 58
|
Цитата:
Последний раз редактировалось smithy; 24.10.2011 в 17:08. |
|
|||||
Регистрация: Dec 2010
Сообщений: 22
|
Цитата:
* (massiv1.length-1) на сколько я знаю свойство length подсчитывает количество элементов в массиве не пойму к чему здесь -1 задаю такие вопросы, так как в русле неделю, вот хочу с массивами конкретно разобраться Добавлено через 6 минут var massiv:Array= [1,2,3,4,5]; var random:int= massiv[int(Math.random()*massiv.length)]; trace(random); Спасибо,Ваша запись понятна и работает |
|
|||||
[+4 06.05.14]
|
Цитата:
__________________
Марк Tween |
|
|||||
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
на самом деле это не обязательно, достаточно такой записи
Цитата:
|
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
В силу работы округления до ближайшего.
И действительно реже: function test():void { var total:int = 5; var matches:int = 0; var i:int = 0; var c:int = 10000; var test:int; for (i = 0;i < c;i++) { test = int(total * Math.random()); if (!test || test == total) matches++; } trace(matches); // 1993 matches = 0; for (i = 0;i < c;i++) { test = Math.round((total - 1) * Math.random()); if (!test || test == total) matches++; } trace(matches); // 1255 } test(); |
|
|||||
Цитата:
__________________
http://www.chessmax.ru |
|
|||||
Даже интересно стало.
public function Test():void { var total:int = 5; var matches:int = 0; var i:int = 0; var c:int = 10000; var test:int; var arr:Array = [0,0,0,0,0]; for (i = 0;i < c;i++) { test = int(total * Math.random()); arr[test]++ } trace("int", arr); arr = [0,0,0,0,0]; for (i = 0;i < c;i++) { test = Math.round((total - 1) * Math.random()); arr[test]++ } trace("round", arr); } round 1197,2534,2518,2530,1221 int 2009,1973,2025,2020,1973 round 1204,2534,2478,2511,1273 int 2063,1915,1983,1976,2063 round 1215,2495,2445,2565,1280
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку. Последний раз редактировалось GBee; 24.10.2011 в 17:52. |
Часовой пояс GMT +4, время: 18:15. |
|
« Предыдущая тема | Следующая тема » |
Теги |
actionscript3.0 , Adobe Flash , flash , math , рандомное число |
|
|