Вопрос

Я тут поиграл с некоторыми Проект Эйлера проблем, и, естественно, я сталкиваюсь со многими, которые требуют обработки большего, чем long long введите числа.Я привержен использованию Cocoa и Objective-C (мне нужно оставаться начеку для работы), но не могу найти элегантный способ (читать:библиотека) для обработки этих действительно больших чисел.

Я бы с удовольствием использовал GMP, но, похоже, использовать его с Xcode - сплошная обида.

Кто-нибудь знает о каких-либо других вариантах?

Это было полезно?

Решение

На вашем месте я бы скомпилировал gmp вне XCode и использовал бы только gmp.h и libgmp.a (или libgmp.dylib) в моем проекте XCode.

Другие советы

Попробуйте сохранить цифры в виде массивов.

Хотя вам придется написать несколько новых функций для всех ваших арифметических задач, но именно так нам сказали делать в колледже.

Кроме того, скорость вычислений была значительно улучшена, так как большие числа, в конце концов, не были действительно большими и вообще не были числами

посмотрим, поможет ли это

с уважением

vBigNum в vecLib реализует 1024-битные целые числа (со знаком или без знака). Это достаточно большой?

Если вы хотите использовать matlab (или что-то похожее), вы можете посмотреть на мою реализацию большой целочисленной формы (vpi) на файлообменнике.

Это довольно просто. Храните каждую цифру отдельно. Сложение и вычитание просты, просто реализовать операцию переноса. Умножения лучше всего делать с использованием свертки, а затем переноса. Реализуйте операторы split и mod, затем операцию powermod, полезную для многих проблем PE. Степени просты - просто повторное возведение в квадрат и умножение, основанное на двоичном представлении показателя.

Это позволит вам решить многие проблемы с PE.

Мне тоже пришла в голову блестящая идея попробовать некоторые проблемы проекта Эйлера с Cocoa / Objective-C, и они меня расстроили. Ранее я использовал Java и, возможно, немного PHP. Я разместил мою точную проблему в этой теме.

Я всегда думал об использовании чит-библиотеки для этого проекта. Просто напишите класс с вещами, которые вам нужны. И не бойтесь использовать malloc, uint64_t и так далее. NSNumber не - хорошая идея во многих случаях.

С другой стороны, существует много проблем, где очевидное решение потребовало бы огромных или огромных количеств, и хитрость заключается в том, чтобы найти способ решить проблему без использования этих огромных чисел. (Например, какова сумма последней тысячи цифр факториала 1 000 000)?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top