![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| Ghirik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 919 Регистрация: 26.3.2007 Репутация: 13 Всего: 20 |
Есть набор числовых значений, известно, что от самого большого значения нужно получить десять процентов, а от остальных, пропорциональное значению количество процентов.
Пытался описать математически правильно, но где там...
Т.е. я здесь получаю правильный результат. Но мне кажется такой способ вычисления тяжеловат. Эта штука должна выполняться в цикле несколько десятков раз. Потому хотелось бы облегчить вычисление, как говорится, упростить выражение. По слову пропорция, я не смог найти ни чего связанного с JavaScript, наверное таких методов не существует... Есть у кого предложения? -------------------- Отдадим всё клиенту, пускай его машина мучается... |
|||
|
||||
| Grig |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 809 Регистрация: 29.4.2005 Где: Иркутск Репутация: 2 Всего: 16 |
Всё об одном.
Можно, конечно, написать процедуру или прототип массива, но содержать они будут тот же функционал. -------------------- |
|||
|
||||
| IDVsbruck |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 778 Регистрация: 12.11.2006 Репутация: 8 Всего: 22 |
Разве что чуть-чуть подправить количество вычислений: не каждый раз в цикле вычислять 10%, а вычислить его до цикла.
Надо не забывать, что javascript - это интерпретируемый язык программирования и поэтому чем длиннее и сложнее строка, тем больше уйдет времени на парсинг и, соответственно, вычисление строки. Еще "моментик": зачем вычислять длину массива, а затем декрементировать счетчик, если можно сраз поставить цикл "for (var i in p) {}"? |
|||
|
||||
| Ghirik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 919 Регистрация: 26.3.2007 Репутация: 13 Всего: 20 |
Точно, получилось вынести половину.
А по поводу for-in - это медленная штуковина. -------------------- Отдадим всё клиенту, пускай его машина мучается... |
|||
|
||||
| Ghirik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 919 Регистрация: 26.3.2007 Репутация: 13 Всего: 20 |
НИФИГА!
Заработать то заработало, а значения после округления получаются другие... Ладно, оставлю, как есть. -------------------- Отдадим всё клиенту, пускай его машина мучается... |
|||
|
||||
| SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 49 Всего: 401 |
Где ж пропорциональность, если на пропорциональную величину [I]делят? Очевидно же, что для пропорциональности нужно все величины умножать на общий коэф-т... -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
| Ghirik |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 919 Регистрация: 26.3.2007 Репутация: 13 Всего: 20 |
Ага... Математик я ещё тот... Вчера пришел к выводу, что MS Excel полиномы не так считает Вообще, не получается что либо вынести из цикла, потому, как p[i] всегда разное(в том числе, бывает равно max), и присутствие proc нужно прямо в цикле. Но заменить умножением можно, оно всё же легче.
Т.е., записи вида proc/(max/p[i]) и p[i]/max*proc идентичны. -------------------- Отдадим всё клиенту, пускай его машина мучается... |
||||
|
|||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |