Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Random (http://www.flasher.ru/forum/showthread.php?t=138536)

TurboDizel 09.04.2010 23:18

Random
 
Привет. Как сделать что бы переменная выбирала произвольное число от 1 до 2? То есть 1 или 2. Если можно, пожалуйста ответьте =)
Вот если вопрос не понятно задал, то вот просто примерно написал смысл того что должно выйти
Код AS1/AS2:

var randomvar=random(1 до 2);

Заранее благодарю

Добавлено через 3 минуты
В очередной раз не дождавшись ответа уже разобрался сам=)
Код AS1/AS2:

var randomvar=random(2);

Все равно спасибо)

AzagThoth 09.04.2010 23:24

Код AS1/AS2:

var randomvar:Number=Math.floor(Math.random()*2)+1;

Так.

TurboDizel 09.04.2010 23:27

Цитата:

Сообщение от AzagThoth (Сообщение 899375)
Код AS1/AS2:

var randomvar:Number=Math.floor(Math.random()*2)+1;

Так.

Хм. А у меня и таким способом как я показал работает. Чем различаются данные два кода?

in4core 09.04.2010 23:37

в данном случае ничем

AzagThoth 09.04.2010 23:59

Код AS1/AS2:

random
Доступность
Flash Player 4. Функция устарела во Flash 5 с появлением Math.random().
 
Синтаксис
random(value)
 
Параметры
value Число .
 
Возвращает
Число.
 
Описание
Функция; возвращает случайное число от 0 и до числа, на единицу меньше, чем указано в параметре value, включительно.
 
Пример
При следующем использовании random() может возвратить значения 0, 1, 2, 3 или 4:

То есть всё равно по Вашей задаче случайное число 1 или 2 Ваш код:
Код AS1/AS2:

var randomvar=random(2)

не подходит.
Тогда уже:
Код AS1/AS2:

var randomvar=random(2)+1

Разница в том, что Ваш способ более быстродейственный, а мой более медленный.
Убедиться можно так:
Код AS1/AS2:

t=getTimer();
for(i=0; i<200000; i++){
randomvar=Math.floor(Math.random()*2)+1;
}
trace(getTimer()-t);
t=getTimer();
for(i=0; i<200000; i++){
randomvar=random(2)+1;
}
trace(getTimer()-t);

В оутпуте:
1647
649

Как видите разница почти в три раза. Ваш код лучше.
Цитата:

Сообщение от in4core
в данном случае ничем

Как видите, Вы не правы.

in4core 10.04.2010 01:02

Скорость тут не причем. разговор был про результат

AzagThoth 10.04.2010 04:11

Цитата:

Сообщение от in4core
Скорость тут не причем. разговор был про результат

Разговор был про разницу :)
Цитата:

Сообщение от TurboDizel
Чем различаются данные два кода?

различаются скоростью.
А вообще на этот вопрос лучше пускай ТурбоДизель ответит, чтобы мы тут не гадали с Вами.


Часовой пояс GMT +4, время: 23:03.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.