Python >

Разработка программных модулей

2024-2025 учебный год

Практические занятия

Практика 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. Построить математическую модель движения броуновской частицы.
Домашнее задание
Факториал числа. 
Алгоритм Евклида. 
Быстрое возведение в степень. 
Числа Фибоначчи. 
Подготовка тестового набора данных. 
Запись алгоритмов псевдоалгоритмическом языке и на языке программирования. 
Количество элементарных операций в алгоритме.
Временная и асимптотическая сложности алгоритмов. 
Сравнение алгоритмов по сложности.