Ниже решение задачи на Python с подробным объяснением шагов. Это подходит для 9 класса информатики и помогает понять, как реализовать каждый пункт задания.
Что делает программа
- считывает n с клавиатуры;
- генерирует список из n целых чисел в диапазоне [0, 40] случайным образом;
- печатает получившийся список;
- вычисляет и печатает среднее арифметическое элементов списка;
- подсчитывает сколько элементов больше 10 и печатает этот счёт;
- проверяет, есть ли в списке две соседние элементы с одинаковыми значениями и печатает True или False.
Пояснения по шагам
- Ввод n
- Считываем число n. Если введено не число, выводим сообщение об ошибке и завершаем.
- Если n <= 0, специальный случай: выводим пустой список и нулевые/логические значения для остальных пунктов.
- Генерация списка
- Создаём список из n элементов: каждый элемент — случайное целое число от 0 до 40 включительно. Это достигается с помощью random.randint(0, 40).
- Печатаем получившийся список.
- Вычисление среднего арифметического
- Среднее арифметическое вычисляется как сумма элементов делённая на их количество: sum(nums) / n.
- Так как мы уже проверяем, что n > 0, деление безопасно.
- Подсчёт элементов больше 10
- Применяем генератор: суммируем 1 за каждый элемент, который больше 10.
- Поиск соседних равных
- Проверяем пары соседних элементов: nums[i] == nums[i+1] для i от 0 до n-2.
- Если хотя бы одна пара совпадает, возвращаем True, иначе False.
- Вывод результатов
- Каждый результат печатаем отдельно, как требует задача.
Пример кода (Python 3)
import random
def main(): # 1) Ввод n n_input = input("Введите n: ") try: n = int(n_input) except ValueError: print("Некорректное значение n.") return
# 2) Обработка случая n <= 0
if n <= 0:
print([])
print(0.0)
print(0)
print(False)
return
# 3) Генерация списка из n элементов в диапазоне [0, 40]
nums = [random.randint(0, 40) for _ in range(n)]
print(nums)
# 4) Среднее арифметическое
average = sum(nums) / n
print(average)
# 5) Количество элементов > 10
count_gt_10 = sum(1 for x in nums if x > 10)
print(count_gt_10)
# 6) Наличие соседних равных элементов
has_adj_equal = any(nums[i] == nums[i+1] for i in range(n - 1)) if n >= 2 else False
print(has_adj_equal)
if name == "main": main()
Замечания по сложности
- Время выполнения: O(n), где n — размер списка. Все шаги проходят линейно по списку.
- Память: O(n) на хранение списка.
Советы по использованию
- Для воспроизводимости можно задать фиксированное значение seed, например: random.seed(0).
- Можно убрать текстовые подсказки в input и печати, если задача требует строгости вывода именно чисел в отдельных строках без лишних сообщений.