Коллоквиум по большим числам.
Программа предназначена для работы с большими числами, которые не "влазят" в регистры процессора. Написаны собственные классы для работы с большими числами.
Реализованы:
-
BigN - Натуральные числа + {0}. Пример: 25345863428795684392658324658963485632485634263427...
-
BigZ - Целые числа. Пример: -15298563298598275923479857326 или 789634295843875698398543...
-
BigQ - Рациональные числа. Пример: 2521/-2632, (-2521/2632), -2521/-1, -126587265...
-
BigPolinom - Полиномы (многочлены). Пример: (35255)x^6 + 1524634x^4 + (732/-2612)x^5 + (2623/36324)x^3 + (-52163/2521)x^7 + (-51268235)x^2 + 132152x^1 + (-1513262/-15612)
Везде, где необходимо сохранять ответ куда-нибудь в примерах пишется "to". Например: a subtract b to c, если выполнить без сохранения, то поведение программы не предсказуемо.
- "input as" ("in as") - ввод числа. Можно ввести BigN, BigZ, BigQ и BigPolinom. При вводе BigQ дробь сокращается автоматически. Пример: ввод рационального числа "a":
a input as BigQ
- "output" ("out" или "print") - вывод числа. Пример: вывод введенного ранее числа "a":
a output
-
"list" ("ls") - просмотр списка введенных и сформированных чисел
-
"rm" ("remove", "del" или "delete") - удаление переменной. Пример:
a rm
- "add" ("+") - сумма 2х чисел. Пример: сложить числа a и b, результат поместить в с:
a add b to c
Анологично работают для любого вида чисел:
- "subtract" ("-") - вычитание
- "multiply" ("*") - умножение
- "divide" ("/") - деление
- "mod" ("%") - деление по модулю
- "gcd" - НОД
Анологично работают только для натуральных чисел:
- "lcm" - НОК
Примеры:
a mod b to c или a gcd c to e
- "pow" ("^") - возведение в степень. Число, в степень которого возводится, должно быть натуральным. Пример:
a ^ b to c # (Здесь "a" может быть BigN, BigZ, BigQ или BigPolinom,
# а b должно быть BigN)
- "modPow" - возведение в степень по модулю. Числа, в степень которого возводится и модуль, должны быть натуральными. Пример:
a modPow b p to c # (Здесь a может быть BigN, BigZ, BigQ или BigPolinom,
# а b и p должны быть BigN).
# Данный пример эквивалентен (a ^ b) mod p
- "factorial" ("fack" или "!") - факториал натурального числа + {0}. Пример:
a factorial to c
- "compareTo"("cmp" или "compare") - сравнение 2х чисел. Примеры:
a compareTo b
c compare d
- "isZero" - проверка, является ли число нулем. Пример:
a isZero
- "checkPositive"("isPositive") - проверка на положительность. Пример:
b checkPositive
- "multiplyBy10x" - умножение натурального числа на 10^x. Пример: умножение a на 10^15278923, сохранение результата в "c":
a multiplyBy10x 15278923 to c
- "subtructByK" - вычитание из натурального числа другого, умноженного на натуральное число. Пример: вычисление a - (b*c), сохранение результата в "d":
a subtructByK b c to d
- "toBigN", "toBigZ", "toBigQ", "toBigPolinom" - перевод числа в "другой вид", если это возможно. Примеры:
a toBigZ to a
b toBigPolinom to Number1
- "getDegree" - вычисление максимальной степени полинома. Пример:
a getDegree
- "getCoefAtHighestDegree" - вычисление старшего коэффициента у полинома. Пример:
a getCoefAtHighestDegree to c
- "derivative" - вычисление производной полинома. Пример:
a derivative to c
- "gcdAndLcm" - вынесение из многочлена НОК знаменателей коэффициентов и НОД числителей. Пример:
a gcdAndLcm
- "rootsToSimple" - метод перевода кратных корней в простые. Пример:
a rootsToSimple to c
- "divideByOtherTen" - вычисление первой цифры деления большего натурального на меньшее, домноженное на 10^k. Пример:
a divideByOtherTen b 100 to c # (первая цифра деления a на b*10^100)
-
"cls" ("clear") - очистить консоль
-
"help"("?") - справка
-
"exit"("quit" или "q") - выход из программы
Авторы знают, что не "polinom", а "polynomial".
Чтобы запустить текущую версию, то напишите, находясь в этой дирректории: $ java Test
Чтобы запустить последний относительно стабильный релиз, то, находясь в директории Release, запустите Start.bat (Линуксоиды и так знают как запустить)
Если у вас не запускается, то скорее всего у вас старая версия java или вовсе не установлена. Также убедитесь, что вы в нужной директории (и нет русских букв в пути). Если у вас драконский язык (кракозябры) вместо текста, то нажмите в левом верхнем углу в консоли -> свойства -> шрифт -> и попробуйте выбрать шрифт Consolas или какой-нибудь другой (попробуйте ещё прописать команду chcp 1251).