Каков стандарт (или лучше всего поддерживаемый) большое количество (произвольная точность) библиотека для Lua?

NullPointerException s - исключения, возникающие при попытке использовать ссылку, которая указывает на отсутствие местоположения в памяти (null), как если бы она ссылалась на объект. Вызов метода по нулевой ссылке или попытка получить доступ к полю нулевой ссылки вызовет функцию NullPointerException. Они наиболее распространены, но другие способы перечислены на странице NullPointerException javadoc.

Вероятно, самый быстрый пример кода, который я мог бы придумать для иллюстрации NullPointerException, be:

public class Example {

    public static void main(String[] args) {
        Object obj = null;
        obj.hashCode();
    }

}

В первой строке внутри main я явно устанавливаю ссылку Object obj равной null. Это означает, что у меня есть ссылка, но она не указывает на какой-либо объект. После этого я пытаюсь обработать ссылку так, как если бы она указывала на объект, вызывая метод на нем. Это приводит к NullPointerException, потому что нет кода для выполнения в местоположении, на которое указывает ссылка.

(Это техничность, но я думаю, что она упоминает: ссылка, которая указывает на null, равна 't то же, что и указатель C, указывающий на недопустимую ячейку памяти. Нулевой указатель буквально не указывает на в любом месте , который отличается от указаний на местоположение, которое оказывается недопустимым.)

20
задан greatwolf 21 December 2014 в 10:02
поделиться

5 ответов

lmapm библиотека Luiz Figueiredo, одним из авторов языка Lua.

6
ответ дан 30 November 2019 в 00:14
поделиться

Я не могу действительно ответить, но я добавлю LGMP, привязка GMP. Не используемый.

Не мое поле экспертных знаний, но я ожидал бы, что библиотека арифметики многократно увеличенной точности GNU будет вполне стандартом здесь, нет?

5
ответ дан 30 November 2019 в 00:14
поделиться

Хотя не произвольный точность, Lua decNumber, обертка Lua 5.1 для IBM decNumber, реализует предложенный Общий стандарт Десятичной системы счисления IEEE 754r. Это имеет арифметические операторы Lua 5.1 и больше, полный контроль над округлением режимов и рабочей точности до 69 десятичных цифр.

3
ответ дан 30 November 2019 в 00:14
поделиться

Я использовал предложение Norman Ramsey для решения Euler проблемы Проекта #16. Я не думаю, что это - спойлер, чтобы сказать, что затруднение проблемы вычисляет 303 целых числа цифры точно.

Вот шаги, я должен был установить и пользоваться библиотекой:

  1. Lua должен быть создан с динамической включенной загрузкой. Я использую Cygwin, но я изменился PLAT в src/Makefile, чтобы быть linux. Значение по умолчанию, none, не включает динамическую загрузку.

  2. MAMP должен быть создан и установлен где-нибудь, что Ваш компилятор C может найти его. Я поместил libmapm.a в /usr/local/lib/. Затем m_apm.h и m_apm_lc.h перешел в /usr/local/include/.

  3. make-файл для [1 118] lmamp должен быть изменен к корректному местоположению библиотек Lua и MAMP. Для меня, который означает не комментировать второе объявление LUA, LUAINC, LUALIB, и LUABIN и редактировать объявление [1 113].

  4. Наконец, mapm.so потребности, которые будут помещены куда-нибудь, что Lua найдет его. Я поместил его в [1 115].

Спасибо всем за предложения!

6
ответ дан 30 November 2019 в 00:14
поделиться

Используя вместо этого lbc lmapm было бы проще, потому что lbc самодостаточен.

require"bc"
s=bc.pow(2,1000):tostring()
z=0
for i=1,#s do
        z=z+s:byte(i)-("0"):byte(1)
end
print(z)
15
ответ дан 30 November 2019 в 00:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: