ЗАДАЧИ ДЛЯ ПЕРВОГО СЕМЕСТРА Все задания разбиты на два типа - задачи и упражнения. Уп- ражнения помечены буквой "У". Тема 1. Программирование !! В задачах 01-14 требуется за один проход (просмотр файла) !! вычислить ту или иную характеристику последовательности чи- !! сел, находящейся в файле "tmp.dat". У01. Сумма и произведение элементов. алг сумпро (рез вещ s,p) ? арг \ последовательность чисел в файле "tmp.dat" ? рез s,p \ равны сумме и произведению элементов нач У02. Номер первого и последнего максимального элемента. У03. Число минимальных элементов. У04. Число элементов, больших предыдущего. 05. Среднее квадратичное уклонение от среднего арифметическо- го: D = ( (x1-M)**2 + ... + (xn-M)**2 )/n (n - число эле- ментов, М - среднее арифметическое) У06. Есть ли в последовательности число х ? У07. Номер первого и последнего элемента, равного числу х (если таких нет, считать номер равным нулю). У08. Все ли элементы последовательности равны между собой ? У09. Является ли последовательность возрастающей, неубывающей ? У10. Вычислить число различных элементов неубывающей последова- тельности. 11. Сколько раз в последовательности встречается фрагмент 1, 2, 3, 4, 5 ? 12. Сколько раз в последовательности встречается фрагмент 1, 2, 1, 3? 13. Коэффициенты многочлена сведены в последовательность в по- рядке возрастания степеней. Найти значение многочлена и его производной в точке х. 14. Коэффициенты многочлена сведены в последовательность в по- рядке убывания степеней. Найти значение многочлена и его производной в точке х. 15. Нарисуйте на растре отрезок, заданный координатами концов. 16. Дано целое число. Получить число, десятичная запись кото- рого содержит цифры исходного числа в обратном порядке. 17. Вычислить представление числа 1/n в виде десятичной дроби (указать ее начало и период). 18. Возвести число A в степень N, используя не более 2*log(N) умножений !! В задачах 19-26 требуется составить программу, аргументами !! которой являются длина N линейной таблицы А и сама таблица !! А[1:N]. Использовать дополнительные таблицы нельзя. У19. Симметрична ли таблица? алг симметрия (арг цел N,вещтаб А[1:N], рез лит ответ) ? дано: | N,А ? надо: | рез = "да", если А симметрична нач У20. Записать элементы таблицы в обратном порядке: первый эле- мент должен оказаться на последнем месте, второй - на предпоследнем и т.д. У21. Циклически сдвинуть элементы таблицы вправо: первый эле- мент должен оказаться на втором месте, второй - на третьем и т.д. Последний элемент должен оказаться на первом месте. 22. Циклически сдвинуть элементы таблицы из N элементов на k мест влево за время O(N). 23. Каждый элемент таблицы с индексом от 2 до N-1 заменить на полусумму соседей. 24. Известно, что элементы таблицы не убывают. Проведя не бо- лее 1+log(N) сравнений числа х с элементами таблицы, выяс- нить, встречается ли х среди элементов таблицы. У25. Дано,что первые k-1 элементов таблицы не убывают. Переста- вить первые k элементов так, чтобы они не убывали. 26. Переставить элементы таблицы так, чтобы они не убывали. 27. Даны k отрезков на прямой. Вычислить, образуют ли они покрытие отрезка [0,1] 28. Даны k отрезков на прямой. Найти максимальное n, для которого существует точка, принадлежащая одновременно n отрезкам. !! В задачах 29-30 известно, что первые N элементов таблицы А !! возрастают и первые M элементов таблицы В возрастают. 29. Найти число К и построить таблицу С, в которой первые K элементов возрастают, причем число х встречается среди первых K элементов С если и только если оно встречается либо в А либо в В. 30. Найти число К и построить таблицу С, в которой первые K элементов возрастают, причем число х встречается среди первых K элементов С если и только если оно встречается и в А и в В (пересечение). !! Элемент называется локальным максимумом, если у него нет со- !! седа, большего, чем он сам. Например, в последовательности !! из одного элемента - один локальный максимум. В последова- !! тельности 3, 3, 1, 0, 2, -1 три локальных максимума: первый, !! второй и предпоследний элементы. 31. Вычислить число локальных максимумов последовательности 32. Вычислить число локальных максимумов матрицы !! Число n называется периодом последовательности, если любые !! два элемента последовательности начиная с некоторого, номера !! которых отличаются на n совпадают. 33. Отображение целочисленного отрезка [1,N] в себя задано в виде y=f(x). Найти минимальный период последовательности 1, f(1), f(f(1)), ... 34. Вывести в файл "tmp.res" список а) всех подмножеств б) всех K-элементных подмножеств множества чисел (1,2,...,n) !! Стандартным прямоугольником на плоскости называется множес- !! тво точек ( x1,x2 : a1<=x1<=b1, a2<=x2<=b2 ). Стандартный !! прямоугольник может вырождаться в вертикальный или горизон- !! тальный отрезок, в точку или в пустое множество. 35. Нарисовать стандартный прямоугольник и заштриховать его под углом 45 градусов. 36. Найти периметр и площадь а) пересечения б) об"единения двух стандартных прямоугольников на плоскости. 37. Нарисовать границу об"единения двух стандартных прямо- угольников а) пользуясь "рисованием инверсией" б) не ис- пользуя этот режим. !! k-мерным яшиком называется множество ( x1, ..., xk : !! a1<=x1<=b1, ..., ak<=xk<=bk ). 38. Найти плошадь поверхности и об"ем пересечения и об"едине- ния двух k-мерных яшиков ( k>=1 ). Тема 2. Анализ и вычислительная математика !! Машинной точностью вычислительной системы называется на- !! ибольшее вещественное число MACHEPS (машинное эпсилон) среди !! вещественных чисел х, представимых в этой вычислительной !! системе и удовлетворяющих в ней соотношению 1+x=1 У01. Написать программу, определяющую MACHEPS. 02. Придумайте последовательность из 1000 чисел, по модулю не превосходящих 1, при суммировании которой в прямом и об- ратном порядке результаты будут отличаться не менее, чем на 0.00001. 03. Написать программу, которая для любого вещественного числа х>0 находит его порядок и 24 значащих цифры мантиссы в двоичной системе счисления. Сравните с помощью этой прог- раммы мантиссы чисел х и 2*х-х для нескольких значений х. 04. Пусть f(x) - кубический многочлен, например х**3+3*х-1. Вычислить производную f'(x) функции f(x) приближенно по формулам (f(x+h)-f(x-h))/(2*h) и (f(x+h)-f(x))/h при раз- личных x и h. Какая формула точнее при фиксированном h? При каком h получаются лучшие приближения к точному значе- нию производной? 05. Об"ясните результат работы программы "сумма". Указание: Попробуйте константы 1.000976 и 1000.976. алг сумма(арг вещ а,S, рез err) ? дано | S=1.001,1001 ? надо нач цел k, ВЕЩ Т ? Т:=0 ? для k от 1 до 1000 ? нц ? ? Т:=Т+а ? кц ? еrr:=S-Т кон У06. Вычислить максимальное значение кубического многочлена на заданном отрезке. !! При решении задач 07-11 нужно использовать функцию f, !! оформляя ее отдельной программой: алг вещ f(вещ х) У07. Нарисовать график функции f(x) 08. Вычислить корень уравнения f(x)=0 на отрезке методом деле- ния пополам. 09. Вычислить корень уравнения f(x)=0 на отрезке методом хорд. 10. Вычислить корень уравнения f(x)=0 на отрезке методом Ньютона, считая, что производная df(x) задана программой. У11. Вычислить интеграл функции на отрезке методом трапеций. 12. Вычислить корень n-ой степени методом итераций 13. Функции х(t) и y(t), где 0=<t=<1, задают кривую на плос- кости. Найти длину этой кривой, используя a) линейную ин- терполяцию б) квадратичную интерполяцию. 14. Нарисовать кривую из предыдущей задачи 15. Вычислить sin(х) для -1000<х<1000 с точностью 0.001, ис- пользуя формулы приведения и разложение sin(х) в ряд по степеням х. 16. Вычислить сумму ряда с k-ым членом вида 1/(k*(k+x)) для x=0,0.1,...,1 с 4 верными знаками. 17. Нарисовать ломаные, заданные рекуррентными соотношениями и об"яснить результаты ( h-маленькое число ) а) x[n+1]=x[n]+h*y[n],y[n+1]=y[n]-h*x[n] б) x[n+1]=x[n]+h*y[n],y[n+1]=y[n]-h*x[n+1] !! В задачах 18-19 Функция на отрезке задана таблицей Т[1:n] !! значений в равноотстоящих точках отрезка [А,В]. 18. Используя а) квадратичную, б) линейную интерполяцию, вы- числить значение функции у и ее производной dу в заданной точке х 19. Используя квадратичную интерполяцию, вычислить при каком значении аргумента функция достигает максимального значе- ния на отрезке. 20. Нарисовать линии уровня функции z=f(x,y) 21. Написать программу, которая по n значениям аргумента x[1:n] и n заданным значениям y[1:n] многочлена степени n-1 находит значение этого многочлена в точке x. 22. В качестве данных для предыдущей задачи взять 5, 10, 20 равноотстоящих точек функции y=1/(1+25*x**2) на отрезке [-1,1]; нарисовать графики функции и многочлена. 23. В точках А и В заданы значения функции и ее производной. Вычислить приближенные значения функции и производной в заданной точке отрезка [A,B]. 24. Линейные таблицы I[1:n], U[1:n] содержат результаты n из- мерений тока и напряжения на неизвестном сопротивлении R. Найти приближенное значение R методом наименьших квадра- тов. Нарисовать точки и аппроксимирующую прямую. 25. Построить а) линейную б) параболическую аппроксимацию ре- зультатов n измерений значений функции по методу наимень- ших квадратов. Нарисовать точки и аппроксимацию. 26. Тело падает с высоты h , испытывая сопротивление, пропор- циональное квадрату скорости, т.е. ускорение тела опреде- ляется формулой а = 9.8 - k*v**2 Найти время падения и скорость удара о землю для h=1000 м, k=0.004 1/м 27. В квадратном биллиарде [0,1]x[0,1] оказался шар с коорди- натами (X0,Y0) и скоростью (VX,VY). Нарисовать его траек- торию. Тема 3. Алгебра 01. В файл "tmp.res" записать биномиальные коэффициенты 02. Вычислить четность произвольной перестановки чисел 1, 2, ..., n за время O(n) У03. Вычислить обратную перестановку !! В задачах 04-08 требуется представлять комплексные числа па- !! рами действительных чисел вида вещтаб с1[1:2], с2[1:2] и !! т.д. Первый элемент пары - вещественная, а второй - мнимая !! часть комплексного числа. У04. Написать программы сложения, вычитания, умножения, деления двух комплексных чисел. У05. Написать программы умножения комплексного числа на дей- ствительное, сравнения двух комплексных чисел. У06. Написать программы вычисления модуля, аргумента, корня квадратного числа. Проверить на ЭВМ правило сложения аргу- ментов при умножении комплексных чисел. 07. Найти комплексные корни квадратного уравнения с комплек- сными коэффициентами У08. В файл "tmp.res" записать все комплексные корни уравнения Z**N = C, где C - произвольное комплексное число. 09. Найти наибольший общий делитель (необязательно положитель- ных) целых чисел, не равных одновременно нулю. 10. Для натуральных чисел М и N найти целые числа х,у,НОД, удовлетворяющие условиям х*М+у*N=НОД, х=<N, у=<М, НОД=НОД(М,N) 11. Для натуральных чисел М и N найти НОД=НОД(М,N) и обратимую в кольце всех целочисленных квадратных матриц второго по- рядка матрицу ?х у? ?х у? ?M? ?НОД? ? ? , для которой ? ? * ? ? = ? ? ?z t? ?z t? ?N? ? 0 ? !! Элементы кольца Z/nZ будем представлять целыми числами от 0 !! до n-1. При таком представлении кольца вычетов встроенная !! функция Е-практикума mod(х,n), сопоставляющая каждому целому !! положительному числу х его остаток от деления на n, задает !! естественную проекцию Z --> Z/nZ. 12. Написать программу поиска обратного элемента в кольце Z/nZ. У13. Найти все делители нуля кольца Z/nZ (n=<1000), записать ответ в файл "tmp.res". У14. Для любого n=0,1,2,... найти в поле Z/pZ количество раз- личных решений уравнения x**N=1 . 15. Определить ранг матрицы с коэффициентами из поля Z/pZ. 16. Определить ранг целочисленной матрицы. 17. Написать программу приведения вещественной матрицы к сту- пенчатому виду методом Гаусса с выбором максимального по модулю элемента в столбце. 18. Написать программу умножения многочленов P и Q 19. Написать программу вычисления коэффициентов P(Q(x)) 20. Написать программу, которая записывает в файл "tmp.res" первые 50 простых чисел. 21. Написать программу, которая записывет в файл "tmp.res" разложение на простые множители натурального числа n=<1000. !! Частным и остатком от деления многочлена P на многочлен Q !! называются такие многочлены R,S, что P=Q*S+R, deg(R)<deg(Q) 22. Написать программу Деления с ОСТатком двух многочленов, заданных своими коэффициентами У23. Записать все порождающие элементы мультипликативной группы поля Z/pZ (p < 128) в файл "tmp.res". 24. Определить, есть ли у заданного многочлена с целыми коэф- фициентами кратные корни. Дополнительные задачи 01. Записать в файл все способы расстановки скобок в неассоци- ативном произведении n сомножителей. 02. Вычислить число возможных разбиений множества 1..N на K частей (число Стирлинга). 03. Записать в файл все возможные разбиения множества 1..N на K частей. 04. Вычислить число возможных разбиений числа N на слагаемые. 05. Записать в файл все возможные разбиения числа N на сумму слагаемых. 06. Записать в файл все последовательности цифр 0,1,2 длины n, в которые ни одна группа цифр не входит два раза подряд 07. Записать в файл "tmp.res" все перестановки чисел от 1 до n а) в лексикографическом порядке б) так, чтобы каждая пара соседних перестановок отличалась одной транспозицией. 08. Корабли на поле для морского боя заданы матрицей nxn из нулей и единиц. Определить число кораблей 09. Отношение на множестве из N элементов задано матрицей NxN из нулей и единиц. Получить транзитивное замыкание этого отношения. 10. Матрица NxN содержит длины ребер графа с N вершинами (и +бесконечность в случае отсутствия ребра). Найти длины кратчайших путей между вершинами графа. 11. Переставить элементы таблицы из N элементов так, чтобы они не убывали, сделав О(N*log(N)) сравнений. 12. Даны n точек на плоскости. Построить их выпуклую оболочку (список точек в порядке обхода) за время O(n*log(n)). 13. Найти а) об"единение б) пересечение трех упорядоченных числовых последовательностей. 14. В очень большой прямоугольной сетке из одинаковых сопро- тивлений к концам одного из них присоединили батарейку с напряжением 1В. Найти распределение напряжений в ок- рестности этого сопротивления. 15. Нарисовать кривую Пеано. 16. Нарисовать вид поверхности z=f(x,y) из точки (x0,y0,z0) с "удалением невидимых линий". 17. Вычислить интеграл x**n*exp(x-1) на отрезке 0..1 при n=1..15. 18. Алгоритмы p(x) и q(x) вычисляют значения двух многочленов в точке x. Составить алгоритм, который выдавал бы коэффи- циенты частного p/q, когда p делится на q без остатка, и ответ "не делится" в ином случае. 19. Найти число неприводимых многочленов степени M над Z/pZ. 20. Найти все неприводимые многочлены степени M над Z/pZ. 21. Считая, что значения одного и того же многочлена вычисля- ются много раз, уменьшите количество необходимых для этого умножений по сравнению с методом Горнера (умножение на многих ЭВМ выполняется сравнительно медленно). 22. (Китайская теорема об остатках). Дано k взаимно простых чисел m[i]. Найти число, меньшее произведения m[i], если известны остатки от деления его на все m[i]. Решение пере- бором не принимается! 23. Найти число неизоморфных полугрупп из 2,3 и 4 элементов. 24. Теорема Ван дер Вардена утверждает, что при любой раскрас- ке целочисленной оси координат в два цвета существуют од- ноцветные арифметические прогрессии любой длины. Для не- больших K найти наименьшее N такое, что при любой раскрас- ке отрезка длины N сушествует одноцветная арифметическая прогрессия длины K. !! Число m называется кармайкловым, если оно не простое, и для !! всех b, взаимно простых с m, выполняется mod(b**(m-1)-1,m)=0 !! (т.е. число ведет себя как простое в малой теореме Ферма). 25. Найти все кармайкловы числа в диапазоне 1..32767. - Конец материала -