Naik off
aNNiMON, потестил. Могу сказать что длительность очень зависит от величины параметров. Вот результаты:

http://dbwap.ru/2959472

http://dbwap.ru/951415.png

Вот программа: http://dbwap.ru/3359360

Вот исходник: http://pastebin.com/gCDg98aC
aNNiMON off
let live
А если всё-таки надо с большими числами работать, то лучше этим воспользоваться:
  1. public static double hypot(double a, double b) {
  2.     double r;
  3.     if (Math.abs(a) > Math.abs(b)) {
  4.         r = b/a;
  5.         r = Math.abs(a)*Math.sqrt(1+r*r);
  6.     } else if (b != 0) {
  7.         r = a/b;
  8.         r = Math.abs(b)*Math.sqrt(1+r*r);
  9.     } else r = 0.0;
  10.     return r;
  11. }
aNNiMON off
let live
Naik, чем Android хуже/лучше? Уверен, то же самое будет.
Да и круг задач, где расстояние будет вычисляться с переполнением, не так уж велик.
Naik off
aNNiMON, не факт что на андроиде медленней, и в hypot можно использовать бОльшие числа без переполнения.
aNNiMON off
let live
Тест:
---With Hypot---
N Points = 1000
RunTime=1125 (millsec)
---With Sqrt---
N Points = 1000
RunTime=15 (millsec)
---With Hypot---
N Points = 10000
RunTime=164141 (millsec)
---With Sqrt---
N Points = 10000
RunTime=797

Как видно из результатов hypot() по времени отстаёт от sqrt() более чем в 200 раз.
Всего: 15
<< 1 2

Реклама

Мы в соцсетях

tw tg yt gt