![]() |
как вытащить случайное значение массива
здравствуйте
например есть массив строк,ну пусть три,четыре значения 1 элемент а 2 б 3 в 4 г теперь как можно сделать чтоб из этих элементов массива вытащить случайный есть Код AS3:
и еще, если не затруднит покажите пример, допустим хочу что бы рандом был из 8 чисел как это выглядит,т.е в диапазоне от 1 и до 8 трейсом выкидывало не нужно очень усложненных махинаций, небольшой понятный пример |
|
Код AS3:
|
zackscript, не round а floor
|
или вообще
Код AS3:
|
всем спасибо за ответы,но по ним есть вопросы
1) в чем различие между Код AS3:
Код AS3:
Код AS3:
Код AS3:
3)если есть число 8, как из него вытащить рандом? т.е обязательно указывать диапазон или все таки можно просто указать цифру и из него генератор выберет какое то число |
Цитата:
1.25 => 1; 1.79 => 2; floor - всегда округляет до наименьшего значение числа, например: 1.25 => 1; 1.79 => 1; Цитата:
trace(int(1.23620078060775995)) => 1; |
zackscript, твой ответ неточен и неполон.
Исправление: Math.round(1.25) будет равен не 1, а 2. Дополнение: Не помешает и пример с отрицательным значением. Так int(-1.234) будет равен -1. Это чтобы не казалось, что int() в самом общем случае дает тот же результат, что и Math.floor(). |
Цитата:
|
Кто-то не выпил свой утренний кофе или забыл школьную математику )
Цитата:
В итоге этот кто-то я ))) там же не 1.5 )) пошел пить кофе! |
понятно объяснили, а насчет числа что скажете?
рандом из 8 например, нужно писать диапазон от 1 до 8,или можно указать просто 8 и генератор сам выбирает |
delphic, вы вообще не поняли то, как работает предложенное выше?
Math.random() возвращает случайное число от 0 до 1(например, 0.7584125, или 0.941255124, или 0.30000) Это значит, что, (если у вас присутствует школьное образование) если умножить это число на любое другое число - рандом будет от 0 до этого числа. Например: Код AS3:
В данном случае, если округлять, вместо отбрасывания целой части: Код AS3:
Так как никогда не выпадает единица, никогда не выпадет ровно число, на которое вы умножаете Math.random, оно будет всегда чуточку меньше. Поэтому, мы можем просто отбросить дробную часть с помощью int(). Код AS3:
Цитата:
нам нужно, чтобы рандом был между минимальным и максимальным, а значит мы вычитаем из максимального минимальное, и получаем число, на которое нам нужно умножать Math.random(). Затем думаем, как нам получить рандомное число между минимальным и максимальным. Вуаля! Код AS3:
|
я лишь спрашивал - рандом из 8 например, нужно писать диапазон от 1 до 8,или можно указать просто 8 и генератор сам выбирает.
при чем тут школа можно было написать Код AS3:
я не понимал как именно генерируется,я думал что Math.random берет число и из него как то вычисляет,оказывается проще,всем спасибо |
Math.random() использует текущее время в миллисекундах в качестве Seed для псевдорандомного генератора. Он берёт это число, и из него вычисляет, но вам это знать не обязательно.
Всё, что вам нужно знать - это то, что Math.random() возвращает вещественное число [0; 1). Остальное легко написать вручную, зная элементарную школьную математику. |
Цитата:
С округлением все просто floor - дословно "пол", то есть в меньшую ceil - (от англ. ceiling) дословно "потолок", то есть в сторону большего round - округление по законам математики |
Цитата:
|
Цитата:
|
Цитата:
Код AS3:
Код AS3:
|
Цитата:
|
| Часовой пояс GMT +4, время: 11:18. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.