Алгоритмический анализ - 1 2012-2013

МТ-103

1.1
Написать функцию, которая по заданным коэффициентам квадратного уравнения вычисляет количество корней этого уравнения.

1.2
Написать функцию, которая по заданным длинам сторон треугольника определяет его тип. (Не треугольник, остроугольный, прямоугольный или тупоугольный треугольник)

1.3
Написать функцию, которая по заданному отрезку лет (от a до b) подсчитывает количество високосных годов. Задачу решать БЕЗ рекурсии

2.1
Написать рекурсивную функцию, которая принимает натуральное число и возвращает количество цифр в нем, которые кратны 3. (Например, 645234 -> 2, 128722 -> 0)

2.2
Написать итеративную функцию, которая принимает натуральное число и возвращает количество цифр в нем, которые кратны 3. (Например, 645234 -> 2, 128722 -> 0)

2.3
Написать функцию, которая принимает натуральное число и проверяет является ли оно простым.

2.4
Написать функцию, которая принимает на вход два натуральных числа и возвращает их наибольший общий делитель.

2.5
Написать функцию, которая принимает натуральное число и возвращает его минимальный простой делитель.

2.6
Написать функцию, которая принимает натуральное число и проверяет является ли оно степенью 2, если да, то какой. (Например, 123 -> #f, 128 -> 7)

3.1
Написать функцию, которая принимает число и две позиции и возвращает новое число, которое начинается с первой позиции и заканчивается на второй. (Например, 98765432, 3, 6 -> 7654)

3.2
Написать функцию, которая принимает число и разворачивает в нем цифры в обратном порядке. (Например, 5432 -> 2345)

3.3
Написать функцию, которая принимает список и возвращает его длину.

3.4
Написать функцию, которая принимает список целых чисел и возвращает минимальное число из этого списка.

3.5
Написать функцию, которая принимает список чисел и натуральное число -- количество элементов, которые нужно удалить из начала списка и возвращает новый список. (Например, (list 5,4,3,2,1), 2 -> (list 3, 2, 1). Или (list 6,5,4,3), 5 -> (list))

3.6
Написать функцию, которая принимает список натуральных чисел и возвращает список только из тех элементов, которые являются простыми. (Например, (list 2, 4, 5, 7, 9, 13, 14, 21) -> (list 5, 7, 13))

4.1
Написать функцию, которая принимает список натуральных чисел и возвращает их среднее арифметическое.

4.2
Написать функцию, которая принимает список, состоящий из пар целых чисел, и возвращает второй элемент пары у той пары, первый элемент которой минимальный среди всех первых элементов. (Например, (list (cons -3 5) (cons -10 1) (cons 2 3)) -> 1)

4.3
Написать функцию flatten. (Например, (list 1 (list 5 (list 3 4) 2) 4) -> (list 1 5 3 4 2 4))

4.4
Написать функцию, которая принимает список списков, сотоящих из целых чисел, и возвращает тот подсписок, чья сумма больше.

4.5
Написать функцию, которая принимает список целых чисел и проверяет, что он отсортирован в порядке убывания. (Например, (list 5 2 -1 -5) -> #t, а (list 15 5 3 8 -3 -5) -> #f)

4.6
Написать функцию, которая принимает список натуральных чисел и возвращает его максимальный простой элемент, если таких элементов несколько, то возвращает пару из элемента и количества раз, сколько он встречается в списке. (Например, (list 4 5 6 1 13 17 24) -> 17, (list 23 15 4 44 23 55 23 0) -> (cons 23 3))

5.1
Написать функцию, которая принимает матрицу (список списков) и проверяет, что она является квадратной матрицей. (Например, '('(1 2 3) '(4 5 6) '(7 8 9)) -> #t, а '('(1 2 3) '(4 5 6 7)) -> #f)

5.2
Написать функцию, которая умножает матрицу на число.

5.3
Написать функцию, которая складывает две матрицы и возвращает #f, если матрицы сложить нельзя.

5.4
Написать функцию, которая перемножает две матрицы и возвращает #f, если матрицы перемножить нельзя.

5.5
Написать функцию, которая транспонирует матрицу.

5.6
Написать функцию, которая вычисляет определитель квадратной матрицы.

5.7
Написать функцию, которая находит обратную матрицу к заданной.

6.1
Написать функцию, которая принимает матрицу и её элемент (i j) и возвращает новую матрицу, в которой вычеркнуты строка i и столбец j.

6.2
Написать функцию, которая принимает квадратную матрицу и определяет, является ли она "магическим квадратом". (http://ru.wikipedia.org/wiki/Магический_квадрат)

6.3
Написать функцию, которая принимает число n и строит квадратную матрицу, заполненную числами от 1 до n^2 по спирали. (Например, при n = 3 это будет матрица '( '(1 2 3) '(8 9 4) '(7 6 5) ) )

7.1
Написать функцию, которая принимает список произвольной вложенности и возвращает количество списков, находящихся на уровне вложенности 3.

7.2
Написать функцию, которая принимает список натуральных чисел и возвращает список из таких же элементов, где одинаковые числа идут последовательно. (Например, '(2 4 1 2 1 1 3 2) -> '(2 2 2 4 1 1 1 3))

8.1
Многочлен 2*x^3+4*x^2-x+3 задается списком своих коэффициентов '(2 4 -1 3). Написать функцию, которая принимает два произвольных многочлена и возвращает их сумму.

8.2
Написать функцию, которая принимает два произвольных многочлена и перемножает их.

8.3
Написать функцию, которая принимает многочлен и вычисляет его первую производную.

МТ-104

МТ-101

МТ-102