|
![]() |
#1 |
Участник
|
Попробовал через System.Numerics.BigInteger
Если без преобразования результата к аксаптовскому типу str, то летает как и у Андре - не успеешь моргнуть. Для 10000 элементов. Но! Если выводить в инфолог, то надо присваивать переменной типа str. И вот тут-то для 10000 элементов Аксапта работает несколько минут. |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
![]() |
#2 |
Участник
|
Вот такой джоб.
Если закомметировать две этих строки, то отрабатывает моментально. Но если надо вывести в инфолог, то работает несколько минут для 10000 элементов. X++: s = t.ToString();
info(strFmt("%1: %2", i, s)); X++: static void Job121(Args _args) { int fibonacciSize = 10000; int i; System.Numerics.BigInteger x; System.Numerics.BigInteger y; System.Numerics.BigInteger t; str s; ; x = new System.Numerics.BigInteger(0); y = new System.Numerics.BigInteger(1); s = x.ToString(); info(strFmt("1: %1", s)); s = y.ToString(); info(strFmt("2: %1", s)); for (i = 3; i <= fibonacciSize; i++) { t = System.Numerics.BigInteger::Add(x, y); s = t.ToString(); info(strFmt("%1: %2", i, s)); x = y; y = t; } } |
|
![]() |
#3 |
Участник
|
|
|
![]() |
#4 |
Участник
|
Мой вывод такой. System.Numerics.BigInteger эффективно использовать для большого количества внутренних расчетов. Но присвоение этой переменной к аксаптовскому типу str очень медленное для больших чисел. Похоже, что оно медленне, чем мой код на X++, который запихивает большие числа в массив из 1000 чисел типа int64.
|
|
![]() |
#5 |
Участник
|
Цитата:
Сообщение от Ace of Database
![]() Мой вывод такой. System.Numerics.BigInteger эффективно использовать для большого количества внутренних расчетов. Но присвоение этой переменной к аксаптовскому типу str очень медленное для больших чисел. Похоже, что оно медленне, чем мой код на X++, который запихивает большие числа в массив из 1000 чисел типа int64.
мне кажется, что здесь плохо работает сборщик мусора. опять же, на 2012 стоит попробовать на клиенте и на сервере. со включенным CIL и с выключенным. |
|
![]() |
#6 |
Участник
|
Отредактировал Job120, Теперь он показывает порядковый номер числа Фибоначчи. И выводит ровно столько элементов ряда, сколько было заказано. Раньше выводил на 2 элемента больше - не считал первые два 0 и 1.
|
|
|
За это сообщение автора поблагодарили: mazzy (2), Raven Melancholic (5). |