Skip to content
This repository was archived by the owner on Sep 2, 2023. It is now read-only.

The220th/DM2020_ColloquiumBigNums

Repository files navigation

DM2020_ColloquiumBigNums

Коллоквиум по большим числам.

Программа предназначена для работы с большими числами, которые не "влазят" в регистры процессора. Написаны собственные классы для работы с большими числами.

Реализованы:

  • 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).

About

Коллоквиум по большим числам

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 7