Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: найти максимальное приблеженное n к числу m
 
 автор: admiral   (22.02.2012 в 04:17)   письмо автору
 
 

Задача.
есть числа - 0.003, 0.0056,0.0.0028, 0.0086

и есть постоянная m = 0.004

Нужно наиболее оптимальным способом найти максимально приблеженное число из представленных к числу m, в данном случае это число 0.003

  Ответить  
 
 автор: ЯСА   (22.02.2012 в 04:49)   письмо автору
 
   для: admiral   (22.02.2012 в 04:17)
 

<script>
var n = [0.003, 0.0056, 0, 0.0028, 0.0086], m = 0.004;
for (var j = 0, D, mD, R, lj = n.length; j < lj; j++)
   {D = Math.abs (n [j] - m); if (!self.mD || D < mD) {R = j; mD = D}}

alert (n [R]);
</script>

  Ответить  
 
 автор: admiral   (22.02.2012 в 05:00)   письмо автору
 
   для: ЯСА   (22.02.2012 в 04:49)
 

Благодарю!

  Ответить  
 
 автор: admiral   (22.02.2012 в 05:23)   письмо автору
 
   для: ЯСА   (22.02.2012 в 04:49)
 

<script>
var n = [0.0042,0.0013,0.0011,0.0094,0.0056,0.0044,0,0024], m = 0.004;
for (var j = 0, D, mD, R, lj = n.length; j < lj; j++)
{D = Math.abs (n [j] - m); if (!self.mD || D < mD) {R = j; mD = D}}

alert (n [R]);
</script>

Странно, но подсчет неверный исхдя из вашего примера

  Ответить  
 
 автор: ЯСА   (22.02.2012 в 06:55)   письмо автору
 
   для: admiral   (22.02.2012 в 05:23)
 

1. Запятые и точки не путайте.

2. Для удобства визуальной проверки записывайте исходные данные в столбик:
var n = [0.0042, //у меня именно этот результат. Что не так?
         0.0013,
         0.0011,
         0.0094,
         0.0056,
         0.0044,
         0,0024], //тут одно число или два?
     m = 0.004;

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования