Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 30.10.2007, 20:12
doki вне форума Посмотреть профиль Отправить личное сообщение для doki Найти все сообщения от doki
  № 1  
Ответить с цитированием
doki

Регистрация: Oct 2007
Сообщений: 4
По умолчанию нахождение минимума

Как найти минимум среди >2 переменных? Math.min работает только для двух
А если у меня переменных 20 штук, мне придется Math.min 19 раз использовать?

Старый 30.10.2007, 20:18
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Код:
var arr = [4,7,8,9,2,4];
function min(arr) {
	var l = arr.length;
	var m = Number.POSITIVE_INFINITY;
	
	while (l--) {
		if (m > arr[l]) {
			m = arr[l];
		}
	}
	
	return m;
}
trace(min(arr));
Код:
var arr = [4,7,8,9,2,4];
function min(arr) {
	var a = arr.concat();
	a.sort(Array.NUMERIC);
	return a[0];
}
trace(min(arr));

Старый 30.10.2007, 20:27
doki вне форума Посмотреть профиль Отправить личное сообщение для doki Найти все сообщения от doki
  № 3  
Ответить с цитированием
doki

Регистрация: Oct 2007
Сообщений: 4
спасибо, вот эту штуку не знал sort(Array.NUMERIC)

Старый 30.10.2007, 22:42
iSextuS вне форума Посмотреть профиль Отправить личное сообщение для iSextuS Найти все сообщения от iSextuS
  № 4  
Ответить с цитированием
iSextuS

Регистрация: Oct 2007
Сообщений: 6
сортировка массива по величине - офигенное решение задачи)
мне даж в голову такое не приходило)

Старый 30.10.2007, 22:51
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 5  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Оно медленнее первого варианта.

Старый 31.10.2007, 09:32
terbooter вне форума Посмотреть профиль Отправить личное сообщение для terbooter Найти все сообщения от terbooter
  № 6  
Ответить с цитированием
terbooter

Регистрация: Oct 2006
Адрес: Novosibirsk-Kaliningrad
Сообщений: 1,278
Отправить сообщение для terbooter с помощью ICQ Отправить сообщение для terbooter с помощью Skype™
а как определить которое быстрее, а которое медленнее?
байт код?

Смотрю байт код с помощью ASV4 для обоих вариантов, у второго байт код больше,
это и значит что он медленнее?

Старый 31.10.2007, 10:14
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 7  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Нет, по байткоду скорость выполнения определить нельзя.
Скорость выполнения определяется прямо по времени выполнения, простым тестом на пару миллионов итераций. Операции копирования и сортировки медленнее простого обхода массива.

Старый 31.10.2007, 11:43
Жень Шень вне форума Посмотреть профиль Отправить личное сообщение для Жень Шень Найти все сообщения от Жень Шень
  № 8  
Ответить с цитированием
Жень Шень
 
Аватар для Жень Шень

блогер
Регистрация: Feb 2004
Адрес: Украина
Сообщений: 1,180
Записей в блоге: 3
Отправить сообщение для Жень Шень с помощью ICQ
Привет!
Не ставля под сомнения 2-й вариант от __etc, спрошу: "А почему нельзя его сократить до:"
Код:
var arr = [4, 7, 8, 9, 2, 4];
trace(arr.sort()[0]);

Старый 31.10.2007, 13:02
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 9  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Потому что ты изменяешь исходный массив.

Старый 31.10.2007, 19:30
Жень Шень вне форума Посмотреть профиль Отправить личное сообщение для Жень Шень Найти все сообщения от Жень Шень
  № 10  
Ответить с цитированием
Жень Шень
 
Аватар для Жень Шень

блогер
Регистрация: Feb 2004
Адрес: Украина
Сообщений: 1,180
Записей в блоге: 3
Отправить сообщение для Жень Шень с помощью ICQ
Цитата:
Сообщение от __etc
Потому что ты изменяешь исходный массив.
Логично!
Тогда так:
Код:
var arr = [4, 7, 8, 9, 2, 4];
function min(arr) {
	var a = arr.slice(0);
	return (a.sort()[0]);
}
trace(min(arr));


Последний раз редактировалось Жень Шень; 31.10.2007 в 19:51.
Создать новую тему Ответ Часовой пояс GMT +4, время: 19:03.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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