2015-06-23 2 views
1

Мне нужно работать с огромными числами в swift (для реализации алгоритма RSA), поэтому я ищу эквивалент класса BigInteger Java. В другой теме я нашел это: https://github.com/kirsteins/BigInteger Итак, я пытаюсь добавить это в свой проект, выполнив следующие шаги: - Я загружаю и добавляю BigInteger.xcodeproj в свой проект В «Фазах сборки»: - Добавить "BigInteger" в "Target зависимости" - Добавить "BigInteger.framework от цели 'BigInteger' в проекте 'BigInteger'" на "Link Binary с библиотеками" - Добавить "BigInteger.framework" в "Copy Files"Swift: добавить структуру BigInteger

Когда я строю проект, он «Build failed», но я не могу понять, почему возникает проблема. Я нашел видео на youtube https://www.youtube.com/watch?v=NBmfGdbOrMs, описывая шаги, и я выполняю именно эти шаги, но проблема все еще здесь ...

У вас эта же проблема? Вы находите решение?

ответ

0

Я написал большое целое и большое двойное выполнение для быстрого, что не требует дополнительной библиотеки. Просто скопируйте его в свой проект. Он поддерживает целые числа (BInt) и фракции (BDouble) с большинством общих математических операторов, таких как сложение, вычитание, умножение, возведение в степень, модуль и разделение. Также реализованы некоторые оптимизированные математические функции, такие как факториал или gcd.

Вот некоторые примеры кода:

// Create a new number: 
let num = BInt(232) 
print(num) // prints "232" 

// You can also use Strings to create a number: 
let veryBig = BInt("-827846184963421874362418746238453267452971345218746328715380000000000") 

// Every standard math operator works well, even with normal Integers 
// Visit the github page for more informations 
let v0 = (BInt(5) + BInt(4)) - BInt(3) 
let v1 = veryBig * 1000 
let v2 = vergBig^num 
let v3 = (veryBig^50000)/(BInt(2)^900) + 1 
let v4 = gcd(abs(veryBig), num) 

// BDouble is very similar, you can find a detailed description on Github 
let fraction = BDouble("27", over: "31") 
print(fraction) // prints "27/31" 

Вы можете использовать его свободно, не давая мне кредит, и, пожалуйста, внести свой вклад, если вы хотите.

Вы можете найти его здесь: https://github.com/mkrd/Swift-Big-Integer

Смежные вопросы