Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Задача для знатоков Python

Сергей Мелехов Ученик (90), на голосовании 2 месяца назад
В одномерном массиве, состоящем из n целых элементов, вычислить: 1) произведение элементов массива с четными номерами; 2) сумму элементов массива с нечетными номерами; 3) номер максимального элемента массива. Преобразовать массив таким образом, чтобы сначала располагались все положительные элементы, а потом - все отрицательные (элементы, равные 0, считать положительными). Преобразовать массив таким образом, чтобы сначала располагались все элементы, равные нулю, а потом — все остальные.
Голосование за лучший ответ
_Fire_of_Death_ Мыслитель (5366) 3 месяца назад
 def array_operations(arr): 
# 1. Произведение элементов массива с четными номерами
product_even_indices = 1
for i in range(0, len(arr), 2):
product_even_indices *= arr[i]

# 2. Сумма элементов массива с нечетными номерами
sum_odd_indices = 0
for i in range(1, len(arr), 2):
sum_odd_indices += arr[i]

# 3. Номер максимального элемента массива
max_element_index = arr.index(max(arr))

# Преобразовать массив таким образом, чтобы сначала располагались все положительные элементы, а потом - все отрицательные
positive_elements = [x for x in arr if x >= 0]
negative_elements = [x for x in arr if x < 0]
rearranged_array = positive_elements + negative_elements

# Преобразовать массив таким образом, чтобы сначала располагались все элементы, равные нулю, а потом — все остальные
zero_elements = [x for x in arr if x == 0]
non_zero_elements = [x for x in arr if x != 0]
zero_first_array = zero_elements + non_zero_elements

return {
"product_even_indices": product_even_indices,
"sum_odd_indices": sum_odd_indices,
"max_element_index": max_element_index,
"rearranged_array": rearranged_array,
"zero_first_array": zero_first_array
}

# Пример использования:
arr = [42, 65, 49, 68, 56, 47, 70, 42, 51, 35, 58, 63, 40, -70]
result = array_operations(arr)

print("Произведение элементов с четными номерами:", result["product_even_indices"])
print("Сумма элементов с нечетными номерами:", result["sum_odd_indices"])
print("Индекс максимального элемента:", result["max_element_index"])
print("Массив с положительными и отрицательными элементами:", result["rearranged_array"])
print("Массив с нулями в начале:", result["zero_first_array"])
Сергей МелеховУченик (90) 3 месяца назад
Это весь код? Результат на картинке верный? Прошу прощения, просто я в программировании последний раз был замечен в 2004 году. Попросил человек без связи помочь узнать решение.
_Fire_of_Death_Мыслитель (5366) 3 месяца назад
попробуй еще такой

 import numpy as np 

def product_of_even_index_elements(arr):
product = 1
for i in range(0, len(arr), 2):
product *= arr[i]
return product

def sum_of_odd_index_elements(arr):
total = 0
for i in range(1, len(arr), 2):
total += arr[i]
return total

def index_of_max_element(arr):
return np.argmax(arr)

def separate_positive_negative(arr):
pos = [x for x in arr if x >= 0]
neg = [x for x in arr if x < 0]
return pos + neg

def separate_zero_nonzero(arr):
zero = [x for x in arr if x == 0]
nonzero = [x for x in arr if x != 0]
return zero + nonzero

# Пример использования функций
arr = [1, -3, 5, -6, 0, 2, -4, 3]

_Fire_of_Death_Мыслитель (5366) 3 месяца назад
 product_even = product_of_even_index_elements(arr)  
sum_odd = sum_of_odd_index_elements(arr)
max_index = index_of_max_element(arr)
separated_pos_neg = separate_positive_negative(arr)
separated_zero_nonzero = separate_zero_nonzero(arr)

print(f"Произведение элементов с четными номерами: {product_even}")
print(f"Сумма элементов с нечетными номерами: {sum_odd}")
print(f"Индекс максимального элемента: {max_index}")
print(f"Массив после разделения на положительные и отрицательные: {separated_pos_neg}")
print(f"Массив после разделения на нули и остальные: {separated_zero_nonzero}")
Сергей Мелехов Ученик (90) _Fire_of_Death_, Не работает
_Fire_of_Death_Мыслитель (5366) 3 месяца назад
.
Сергей Мелехов Ученик (90) _Fire_of_Death_, не ставится библиотека эта, но спасибо! Судя по Вашим скринам - работает!
Похожие вопросы