Задачи (30.06.2018)

  • Протестировать методы сортировки (задания первого дня) на массивах большой размерности.
  • Реализовать алгоритм FindNthRoot, позволяющий вычислять корень n-ой степени ( n ∈ N ) из вещественного числа а методом Ньютона с заданной точностью. Разработать модульные тесты (NUnit и (или) MS Unit Test) для тестирования метода.
  • Реализовать метод FindNextBiggerNumber, который принимает положительное целое число и возвращает ближайшее наибольшее целое, состоящее из цифр исходного числа, и null (или -1), если такого числа не существует. Разработать модульные тесты (NUnit или MS Unit Test) для тестирования метода. Примерные тест-кейсы
    • [TestCase(12, ExpectedResult = 21)]
    • [TestCase(513, ExpectedResult = 531)]
    • [TestCase(2017, ExpectedResult = 2071)]
    • [TestCase(414, ExpectedResult = 441)]
    • [TestCase(144, ExpectedResult = 414)]
    • [TestCase(1234321, ExpectedResult = 1241233)]
    • [TestCase(1234126, ExpectedResult = 1234162)]
    • [TestCase(3456432, ExpectedResult = 3462345)]
    • [TestCase(10, ExpectedResult = -1)]
    • [TestCase(20, ExpectedResult = -1)] Добавить к методу FindNextBiggerNumber возможность вернуть время нахождения заданного числа, рассмотрев различные языковые возможности. Разработать модульные тесты (NUnit или MS Unit Test) для тестирования метода.
    • Решение
    • Тесты
  • выполнить сравнительный анализ скорости вычислений для реализаций алгоритмов с использованием строк и операции целочисленного деления для задачи #6 на массивах большой размерности с большим количеством элементов порядка int.MaxValue.
  • Разработать класс, позволяющий выполнять вычисления НОД по алгоритму Евклида для двух, трех и т.д. целых чисел (http://en.wikipedia.org/wiki/Euclidean_algorithm , https://habrahabr.ru/post/205106/, https://habrahabr.ru/post/205106/ ). Методы класса помимо вычисления НОД должны предоставлять дополнительную возможность определения значение времени, необходимое для выполнения расчета. Добавить к разработанному классу методы, реализующие алгоритм Стейна (бинарный алгоритм Евклида) для расчета НОД двух, трех и т.д. целых чисел (http://en.wikipedia.org/wiki/Binary_GCD_algorithm, https://habrahabr.ru/post/205106/ ), а также методы, предоставляющие дополнительную возможность определения значение времени, необходимое для выполнения расчета. Рассмотреть различные возможности реализации методов, возвращающих время вычисления НОД. Разработать модульные тесты.