AXForum  
Вернуться   AXForum > Прочие обсуждения > Курилка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.02.2017, 23:59   #1  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Цитата:
Как и предвидел Маззи, вычисление первых 10 тысяч элементов ряда фибоначчи должно занимать в Аксапте меньше одной минуты. У меня получился результат 18 секунд без вывода в окно инфолога, и 57 секунд - с выводом результата в инфолог (еще секунд 15 сам инфолог перерисовывается - я это в расчет не беру).
Я понимаю, что c Ax сравнивать не очень честно, но:

X++:
> let fibonacci = Seq.unfold (fun (x, y) -> Some(x, (y, x + y))) (0I,1I);;
val fibonacci : seq<System.Numerics.BigInteger>

> #time;;
--> Timing now on

> fibonacci |> Seq.take 10000 |> Seq.iteri (printf "%3i - %A");;

// тут я не стал копировать набор чисел
Real: 00:00:03.454, CPU: 00:00:02.265, GC gen0: 27, gen1: 27, gen2: 0
За это сообщение автора поблагодарили: mazzy (2), Ace of Database (5).
Старый 12.02.2017, 00:22   #2  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
877 / 649 (23) +++++++
Регистрация: 14.10.2004
Андре, а эта функция вычисляет без переполнения? Там вроде задан тип BigInteger. А это же не больше 100 элементов Фибоначчи?
За это сообщение автора поблагодарили: mazzy (10).
Старый 12.02.2017, 00:24   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Андре Посмотреть сообщение
Я понимаю, что c Ax сравнивать не очень честно, но
не, не в Аксапте дело.
ты сейчас используешь bigint. именно не более 100.
а Ace of Database выводит до 10000 чисел.

Андре, ты сравни с алгоритмом на 10тыс чисел

обновлено:
там и так 10000 чисел.
> fibonacci |> Seq.take 10000

bigint в F# - это синоним для .net библиотеки длинных чисел System.Numeric.Biginteger.
прикольно. спасибо за новое знание.

Последний раз редактировалось mazzy; 12.02.2017 в 02:02.
 

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 10:39.