import numpy as np
# Генерация случайных точек с целочисленными координатами
np.random.seed(0) # для повторяемости результата
points = np.random.randint(-10, 11, size=(10, 3)) # 10 точек с 3 координатами
# 1. Найти точку, наиболее удалённую от начала координат
distances = np.linalg.norm(points, axis=1) # вычисляем расстояния от начала координат
most_distant_point = points[np.argmax(distances)] # находим точку с максимальным расстоянием
# 2. Отсортировать точки в порядке убывания расстояний от начала координат
sorted_points = points[np.argsort(-distances)] # сортировка точек по убыванию расстояний
# 3. Создать массив противоположно направленных радиус-векторов
opposite_vectors = -points # просто меняем знак всех координат
# 4. Профильтровать массив, оставив только векторы с положительными координатами
filtered_vectors = opposite_vectors[(opposite_vectors > 0).all(axis=1)] # выбираем только векторы с положительными координатами
# Вывод результатов
print("Исходные точки:\n", points)
print("\nТочка, наиболее удалённая от начала координат:", most_distant_point)
print("\nТочки, отсортированные по убыванию расстояний:\n", sorted_points)
print("\nПротивоположные радиус-векторы:\n", opposite_vectors)
print("\nОтфильтрованные векторы с положительными координатами:\n", filtered_vectors)
aW1wb3J0IG51bXB5IGFzIG5wCgojINCT0LXQvdC10YDQsNGG0LjRjyDRgdC70YPRh9Cw0LnQvdGL0YUg0YLQvtGH0LXQuiDRgSDRhtC10LvQvtGH0LjRgdC70LXQvdC90YvQvNC4INC60L7QvtGA0LTQuNC90LDRgtCw0LzQuApucC5yYW5kb20uc2VlZCgwKSAgIyDQtNC70Y8g0L/QvtCy0YLQvtGA0Y/QtdC80L7RgdGC0Lgg0YDQtdC30YPQu9GM0YLQsNGC0LAKcG9pbnRzID0gbnAucmFuZG9tLnJhbmRpbnQoLTEwLCAxMSwgc2l6ZT0oMTAsIDMpKSAgIyAxMCDRgtC+0YfQtdC6INGBIDMg0LrQvtC+0YDQtNC40L3QsNGC0LDQvNC4CgojIDEuINCd0LDQudGC0Lgg0YLQvtGH0LrRgywg0L3QsNC40LHQvtC70LXQtSDRg9C00LDQu9GR0L3QvdGD0Y4g0L7RgiDQvdCw0YfQsNC70LAg0LrQvtC+0YDQtNC40L3QsNGCCmRpc3RhbmNlcyA9IG5wLmxpbmFsZy5ub3JtKHBvaW50cywgYXhpcz0xKSAgIyDQstGL0YfQuNGB0LvRj9C10Lwg0YDQsNGB0YHRgtC+0Y/QvdC40Y8g0L7RgiDQvdCw0YfQsNC70LAg0LrQvtC+0YDQtNC40L3QsNGCCm1vc3RfZGlzdGFudF9wb2ludCA9IHBvaW50c1tucC5hcmdtYXgoZGlzdGFuY2VzKV0gICMg0L3QsNGF0L7QtNC40Lwg0YLQvtGH0LrRgyDRgSDQvNCw0LrRgdC40LzQsNC70YzQvdGL0Lwg0YDQsNGB0YHRgtC+0Y/QvdC40LXQvAoKIyAyLiDQntGC0YHQvtGA0YLQuNGA0L7QstCw0YLRjCDRgtC+0YfQutC4INCyINC/0L7RgNGP0LTQutC1INGD0LHRi9Cy0LDQvdC40Y8g0YDQsNGB0YHRgtC+0Y/QvdC40Lkg0L7RgiDQvdCw0YfQsNC70LAg0LrQvtC+0YDQtNC40L3QsNGCCnNvcnRlZF9wb2ludHMgPSBwb2ludHNbbnAuYXJnc29ydCgtZGlzdGFuY2VzKV0gICMg0YHQvtGA0YLQuNGA0L7QstC60LAg0YLQvtGH0LXQuiDQv9C+INGD0LHRi9Cy0LDQvdC40Y4g0YDQsNGB0YHRgtC+0Y/QvdC40LkKCiMgMy4g0KHQvtC30LTQsNGC0Ywg0LzQsNGB0YHQuNCyINC/0YDQvtGC0LjQstC+0L/QvtC70L7QttC90L4g0L3QsNC/0YDQsNCy0LvQtdC90L3Ri9GFINGA0LDQtNC40YPRgS3QstC10LrRgtC+0YDQvtCyCm9wcG9zaXRlX3ZlY3RvcnMgPSAtcG9pbnRzICAjINC/0YDQvtGB0YLQviDQvNC10L3Rj9C10Lwg0LfQvdCw0Log0LLRgdC10YUg0LrQvtC+0YDQtNC40L3QsNGCCgojIDQuINCf0YDQvtGE0LjQu9GM0YLRgNC+0LLQsNGC0Ywg0LzQsNGB0YHQuNCyLCDQvtGB0YLQsNCy0LjQsiDRgtC+0LvRjNC60L4g0LLQtdC60YLQvtGA0Ysg0YEg0L/QvtC70L7QttC40YLQtdC70YzQvdGL0LzQuCDQutC+0L7RgNC00LjQvdCw0YLQsNC80LgKZmlsdGVyZWRfdmVjdG9ycyA9IG9wcG9zaXRlX3ZlY3RvcnNbKG9wcG9zaXRlX3ZlY3RvcnMgPiAwKS5hbGwoYXhpcz0xKV0gICMg0LLRi9Cx0LjRgNCw0LXQvCDRgtC+0LvRjNC60L4g0LLQtdC60YLQvtGA0Ysg0YEg0L/QvtC70L7QttC40YLQtdC70YzQvdGL0LzQuCDQutC+0L7RgNC00LjQvdCw0YLQsNC80LgKCiMg0JLRi9Cy0L7QtCDRgNC10LfRg9C70YzRgtCw0YLQvtCyCnByaW50KCLQmNGB0YXQvtC00L3Ri9C1INGC0L7Rh9C60Lg6XG4iLCBwb2ludHMpCnByaW50KCJcbtCi0L7Rh9C60LAsINC90LDQuNCx0L7Qu9C10LUg0YPQtNCw0LvRkdC90L3QsNGPINC+0YIg0L3QsNGH0LDQu9CwINC60L7QvtGA0LTQuNC90LDRgjoiLCBtb3N0X2Rpc3RhbnRfcG9pbnQpCnByaW50KCJcbtCi0L7Rh9C60LgsINC+0YLRgdC+0YDRgtC40YDQvtCy0LDQvdC90YvQtSDQv9C+INGD0LHRi9Cy0LDQvdC40Y4g0YDQsNGB0YHRgtC+0Y/QvdC40Lk6XG4iLCBzb3J0ZWRfcG9pbnRzKQpwcmludCgiXG7Qn9GA0L7RgtC40LLQvtC/0L7Qu9C+0LbQvdGL0LUg0YDQsNC00LjRg9GBLdCy0LXQutGC0L7RgNGLOlxuIiwgb3Bwb3NpdGVfdmVjdG9ycykKcHJpbnQoIlxu0J7RgtGE0LjQu9GM0YLRgNC+0LLQsNC90L3Ri9C1INCy0LXQutGC0L7RgNGLINGBINC/0L7Qu9C+0LbQuNGC0LXQu9GM0L3Ri9C80Lgg0LrQvtC+0YDQtNC40L3QsNGC0LDQvNC4OlxuIiwgZmlsdGVyZWRfdmVjdG9ycykKCgo=