NumPy: вычисления и устройство массивов

View и copy: предсказание влияния изменений среза на исходный массив

Содержание курса

View vs copy: предсказание и проверка мутации через shares_memory

Что уже дано

Проверяющая система запускает вашу программу и подаёт данные через stdin. Никаких заранее созданных переменных нет — вы читаете всё сами.

Что нужно сделать

Напишите программу, которая демонстрирует разницу между view и copy на одном массиве:

  1. Читает из stdin одну строку с целыми числами через пробел. Создаёт одномерный массив original через np.array(..., dtype=int).
  2. Читает вторую строку с двумя целыми числами start и stop — границы среза.
  3. Читает третью строку с двумя целыми числами idx и val — позиция и новое значение для мутации.
  4. Получает view v = original[start:stop] и копию c = original[start:stop].copy().
  5. Выводит строку shares_view=<bool> — результат np.shares_memory(original, v).
  6. Выводит строку shares_copy=<bool> — результат np.shares_memory(original, c).
  7. Выполняет v[idx] = val. Выводит строку original_after_view=<значения через пробел> — текущие значения original.
  8. Выполняет c[idx] = val. Выводит строку original_after_copy=<значения через пробел> — текущие значения original.

Ввод и вывод

Программа читает stdin и пишет в stdout.

Формат ввода

<n целых чисел через пробел> # элементы original
<start> <stop> # границы среза
<idx> <val> # позиция и значение для мутации

Гарантируется: 0 <= start < stop <= len(original), 0 <= idx < stop - start.

Формат вывода

shares_view=<True|False>
shares_copy=<True|False>
original_after_view=<значения через пробел>
original_after_copy=<значения через пробел>
О данных в ответах

Используйте учебные данные. Не вставляйте пароли, токены, ключи доступа, паспортные и банковские данные, а также персональные данные других людей. Политика обработки данных.

Проверяется тестами (1)
  • Тест 1
    Ввод
    10 20 30 40 50 60
    1 4
    0 99
    
    Ожидаемый вывод
    shares_view=True
    shares_copy=False
    original_after_view=10 99 30 40 50 60
    original_after_copy=10 99 30 40 50 60
    
Решение
Как проверяется решение

Сравнение вывода: Правила исходной проверяющей системы. Интерактивный запуск не влияет на оценку. Лимит сессии — 5 минут, процессорного времени — 10 секунд.

Отправьте решение, чтобы увидеть результаты тестов.