Практические занятия
Практика 3
Оценка сложности рекурсивных алгоритмов
1. Проверить с помощью цикла while, является ли заданное число целой степенью двух.
2. Есть ли среди двузначных чисел такие, которые делятся на сумму их цифр?
Если да, то найдите все такие числа и подсчитайте их количество.
3. Написать программу вычисления k-го члена последовательности, заданной рекуррентно
(числа Фибоначчи): х1 =1, х2 = 1, хn+2 = хn+1 + хn.
4. Генерировать случайные числа до того момента, когда их сумма станет больше заданного числа.
Выводить каждое новое число, текущее значение суммы, порядковый номер.
Вычислить среднее арифметическое, среднее гометрическое и среднее гармоническое полученной
числовой последовательности.
5. Сгенерировать 20 целых случайных чисел из отрезка [a, b]. Вывести эти числа в колонку.
Если число больше заданного x, то перед выводом превратить его в отрицательное.
6. С помощью генератора псевдослучайных чисел (ГПЧ) и цикла for вывести 20 чисел из заданного
отрезка [A, B]. Решить задачу сначала для целых, а затем для вещественных чисел.
Вывести сначала все числа в колнку, а затем в строку, используя форматирование методом
интерполяции, т.е. f-строки.
7. Задано количество колонок COLS и строк ROWS, сгенерировать COLS*ROWS вещественных чисел разной
разрядности. Вывести числа в заданное количество колонок и строк с заданной точностью.
8. Сгенерировать 100 случайных чисел из заданного отрезка [a, b].
Определить для заданного числа частоту (в долях от общего
количества чисел), с которой оно встречается в полученной последовательности.
Вывести все числа, отмечая заданное квадратными скобками и его порядковый номер -
в последовательности в круглых скобках, его номер в последовательности одинаковых
с ним чисел - в угловых скобках, например [22](54)<3>.
9. Без использования массивов найдите в случайной последовательности минимальное и максимальное
значения, а также их номер по счету. Подберите границы и длину последовательности такими,
чтобы минимизировать вероятность получения значений равными границам.
10. Выводить случайные числа из отрезка [A, B] до тех пор, пока не будет получено заданное число.
11. Вывести в колонку заданное количество строк случайно сгенерированных перестановок символов a, b, c, d.
12. Вывести случайную последовательность 0 и 1 заданной длины. Рассматривая эту последовательность
как двоичное число, вычислить его шестнадцатеричное и десятичное представление.
Используя стандарт IEEE 754, раскодируйте двоичное число как вещественное.
13. Построить таблицу значений функций из модуля math с применением форматирования
для достижения нужной точности отображения чисел.
14. Сгенерировать 10 случайных дат в формате дд.мм.гггг из заданного диапазона времени,
например с 18 марта 2021 года по 7 июня 2025 года.
15. Построить математическую модель движения броуновской частицы.
Домашнее задание
Факториал числа.
Алгоритм Евклида.
Быстрое возведение в степень.
Числа Фибоначчи.
Подготовка тестового набора данных.
Запись алгоритмов псевдоалгоритмическом языке и на языке программирования.
Количество элементарных операций в алгоритме.
Временная и асимптотическая сложности алгоритмов.
Сравнение алгоритмов по сложности.
-
Перейти Стандартный документ «Описание программы»