Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.10.2022, 20:32   #1
Семен_13
 
Регистрация: 16.10.2022
Сообщений: 7
По умолчанию Программирование на python

Задание : Среди столбцов матрицы содержащих только те элементы которые по модулю не больше С(вводится с клавиатуры), найти столбец с минимальным произведением элементов. Вывести номера нулевых элементов


...
Помогите пожалуйста
Семен_13 вне форума Ответить с цитированием
Старый 16.10.2022, 21:43   #2
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

1 часть. Два вложенных цикла. Первый по столбцам, вложенный по строкам. Проходите по столбцам и во вложенном цикле вычисляете f и p. Флаг f указывает на наличие в столбце элементов по модулю больше C. А в переменной p находите произведение. По окончании вложенного цикла, если флаг f указывает на отсутствие вредных элементов, выводите значение p.

2 часть. Два вложенных цикла. Первый по столбцам, вложенный по строкам. Проходите по столбцам и во вложенном цикле проверяете элемент на равенство 0 и при равенстве выводите номер строки и столбца (счетчики вложенного и внешнего цикла).
macomics вне форума Ответить с цитированием
Старый 17.10.2022, 00:22   #3
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Немного поправлю и опишу подробнее своё видение:
Код:
1. Формируем матрицу с row строками и col - столбцами
2. Запрашиваем C и создаём переменные pmin и colmin - минимальное произведение элементов и номер столбца с минимальным произведением.
pmin = C**row  # произведение элементов столбца будет не больше
colmin = 0     # нулевой (первый по порядку) столбец, предположительно
fz = True      # Флаг присутствия нулевых элементов - пока нет
fC = False     # Флаг наличия столбцов с элементами не более C - пока отсутствуют
3. Цикл по столбцам
   4. Флаг на отсутствие элементов больших чем C:  fx = True
       p = 1 # для подсчёта произведения
   5. Цикл по строкам
        6. Если элемент равен 0 то вывод номера строки и столбца и fz = False # есть нулевой элемент
        7. Если элемент больше C, то fx = False
        8. p *= m[s][c]   # тут надо вставить переменные, отвечающие за номер строки и столбца
 
   9. Если fx - истина и p < pmin, то:
       pmin = p;
       colmin = c # c- номер колонки
       fC = True   # Есть столбец с элементами меньше C

10. Если fz - истина, печатаем сообщение об отсутствии нулевых элементов
11. Если fC истина, то печатаем номер столбца с минимальным произведением и, при необходимости,
    произведение, а иначе сообщаем об отсутствии таких столбцов.
PS: А вот если всё это надо не с вложенными списками, а с NumPy, то ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 17.10.2022, 10:26   #4
Семен_13
 
Регистрация: 16.10.2022
Сообщений: 7
По умолчанию

ViktorR, Помогите сделать, я не понимаю
Семен_13 вне форума Ответить с цитированием
Старый 17.10.2022, 11:16   #5
Valick
Форумчанин
 
Регистрация: 27.04.2022
Сообщений: 493
По умолчанию

Семен_13, если ты не понимаешь, то тебе это не нужно. Если по каким-то непонятным причинам всё таки тебе это нужно, то укажи цену за готовый код которую ты гготов заплатить.
Valick вне форума Ответить с цитированием
Старый 17.10.2022, 11:40   #6
Семен_13
 
Регистрация: 16.10.2022
Сообщений: 7
По умолчанию

я начал понимать, вот что получилось

Код:
a = []
stroka=int(input("Введите количество строк матрицы "))
stolbec=int(input("Введите количество элементов в строке "))


for i in range(stroka):
     print("\t\tВведите для строки:", i + 1)
     b=[]
     for j in range(stolbec):

         print("Введите для столбца:",j+1)
         b.append(int(input()))
     a.append(b)
for i in a:
    print(i)

#подсчет столбцов и умножение
column = len(a[0])
str_ing = len(a)
work = []
for i in range(column):
    rez=1
    for j in range(str_ing):
       rez *= a[j][i]
    work.append(rez)
#минимальный элемент матрицы
min_column = 0
for i in range (len(work)):
    if work [i] < work [min_column]:
        min_column = i
print("Cтолбец с минимальным количетсвом элементов:",min_column+1)
Семен_13 вне форума Ответить с цитированием
Старый 17.10.2022, 11:41   #7
Семен_13
 
Регистрация: 16.10.2022
Сообщений: 7
По умолчанию

я не пойму как сделать вот это
"Среди столбцов матрицы содержащих только те элементы которые по модулю не больше С(вводится с клавиатуры)"
Семен_13 вне форума Ответить с цитированием
Старый 17.10.2022, 17:59   #8
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Модуль это abs(). Не больше значит меньше или равны т.е. not (>) или <=. С вводится с клавиатуры точно также как и stroka или stolbec. Дальше в цикле сравнения abs(...) <= C
macomics вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Python - как установить Easy-Machine-Learning-Object-Detection при уже установленном Python 3.9 Krasi Общие вопросы по программированию, компьютерный форум 4 23.12.2021 15:49
Верно ли, что учить программирование лучше начинать с языка Python? Ян1327 Общие вопросы по программированию, компьютерный форум 20 11.09.2019 12:16
Программирование Python Белка и Стрелка Помощь студентам 1 29.05.2017 23:53
Python на другой язык программирование KingRing Фриланс 10 24.11.2016 12:09