калькулятор для работы с большими целыми числами

valyala

Новичок
калькулятор для работы с большими целыми числами

Потестируйте, пожалйста, мой калькулятор для работы с большими целыми числами.
Вот его "фичи" и возможности:
- длина чисел не ограничена. Вернее, ограничена объемом памяти и временем, которого вам не жалко :)
- числа можно вводить в следующих форматах: двоичном, восьмеричном, десятичном и шестнадцатеричном
- вывод чисел может быть по любому основанию от 2 до 36 включительно
- каждая операция имеет свой приоритет. Например, 1+2*3 вычислится в 7 = (2*3) + 1, а не в 9 = (1+2) * 3
- поддерживается модулярная арифметика с произвольным модулем
- поддерживаются следующие операции над числами: сложение, вычитание, умножение, деление, остаток от деления, возведение в степень, факториал, арифметический свиг влево и вправо на произвольное количество бит, побитовые операции И, ИЛИ, XOR.
- такде поддерживаются следующие функции:
is_prime(n) - проверка числа на простоту
next_prime(n) - возвращает следующее за n псевдопростое число
invmod(n, modulus) - возвращает число n^(-1) (mod modulus)
gcd(n1, n2) - наибольший общий делитель n1 и n2
jacobi(a, p) - символ Якоби (a|p)
hamming_dist(n1, n2) - расстояние Хэмминга
sqrt(n) - целая часть от квадратного корня
sqrt_rem(n) - остаток от квадратного корня: sqrt_rem(n) = n - sqr(sqrt(n))
sqr(n) - квадрат
rand(rand_bits) - псевдослучайное число длиной rand_bits бит
abs(n) - модуль
set_bit(n, bit_pos), clr_bit(n, bit_pos), inv_bit(n, bit_pos), test_bit(n, bit_pos) - установка, сброс, изменение и проверка бита в позиции bit_pos числа n. Нумерация бит начинается с нуля
subint(n, bit_start, bit_len [, is_invert]) - возвращает число, состоящее из bit_len бит числа n, начиная с позиции bit_start. Если is_invert != 0, то инвертирует вырезанные биты.

На данный момент все это добро "весит" 41кб.
Свежую версию калькулятора всегда можно скачать по адресу http://disnay.com
 

Demiurg

Guest
и зачем все это ?

-~{}~ 25.01.05 01:22:

и заодно объясни, что это за exe ? и причем тут php ?
 

valyala

Новичок
Demiurg, спасибо за исправленную ссылку. Может, объяснишь, зачем ты ее исправил?

и зачем все это ?
Риторический вопрос?

и заодно объясни, что это за exe ? и причем тут php ?
Экзешник - это и есть калькулятор. А php тут пока ни при чем. Почитай подпись под offtopic'ом: здесь пишется про все, что не связано с PHP...
 

valyala

Новичок
выложи исходники тогда потестируем невопрос
Проблема в том, что:
1) не все умеют пользоваться компилятором
2) не все знают Си, чтобы копаться в исходниках
3) не у всех есть компиляторы

Но, если они кому-нибудь нужны, качайте: http://valyala.narod.ru/calc/big_int_lib.rar
Для тех, кто не умеет / не может / или кому влом компилить исходники, могут скачать готовую программу:
http://valyala.narod.ru/calc/calc.rar - под винду
http://valyala.narod.ru/calc/calc_unix.rar - под юникс

Кстати, мне удалось еще больше ужать экзешник - теперь он весит всего 35кб.

Надеюсь, Demiurg на этот раз не будет исправлять ссылки.
 
Сверху