Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 18, 2022 22:11:59

kveuxx
Зарегистрирован: 2022-04-18
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

не могу решить задачу в python

Матрицу размером 5х10 заполните случайными двоичными цифрами (0 и 1). Определите номер строки с наибольшим количеством нулей.

Офлайн

#2 Апрель 18, 2022 23:08:24

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1393
Репутация: +  124  -
Профиль   Отправить e-mail  

не могу решить задачу в python

 from random import randint
matrix = [[randint(0, 1) for _ in range(10)] for _ in range(5)]
rows_min = [1]
min_sum = sum(matrix[0])
for n, i in enumerate(matrix[1:], 2):
    s = sum(i)
    if s < min_sum:
        rows_min = [n]
        min_sum = s
    elif s == min_sum:
        rows_min.append(n)
for i in matrix:
    print(i)
if len(rows_min) == 1:
    print(f'строка с наибольшим количеством нулей: {rows_min[0]}')
else:
    print(f'строки с наибольшим количеством нулей: {",".join(map(str, rows_min))}')

Офлайн

#3 Апрель 19, 2022 03:18:37

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10003
Репутация: +  857  -
Профиль   Отправить e-mail  

не могу решить задачу в python

  
>>> import random
>>> import pprint
>>> 
>>> matrix = [[random.choice((0, 1)) for _ in range(10)] for _ in range(5)]
>>> pprint.pprint(matrix)
[[1, 0, 1, 1, 0, 1, 1, 1, 0, 0],
 [1, 0, 0, 1, 0, 0, 0, 1, 1, 1],
 [1, 0, 0, 0, 0, 1, 0, 0, 1, 1],
 [1, 0, 0, 1, 0, 0, 0, 0, 0, 0],
 [0, 1, 1, 1, 1, 1, 1, 1, 1, 1]]
>>> 
>>> out = max(enumerate(matrix, 1), key=lambda i: i[1].count(0))[0]
>>> out
4
>>>

Для нескольких строк если надо
  
>>> import random
>>> import pprint
>>> 
>>> matrix = [[random.choice((0, 1)) for _ in range(10)] for _ in range(5)]
>>> pprint.pprint(matrix)
[[1, 1, 1, 0, 0, 0, 1, 0, 0, 1],
 [1, 1, 0, 0, 0, 1, 1, 0, 0, 0],
 [0, 0, 0, 0, 0, 1, 0, 1, 0, 1],
 [0, 1, 1, 0, 0, 1, 0, 0, 1, 1],
 [1, 1, 0, 1, 1, 1, 1, 1, 0, 0]]
>>> 
>>> zeros = tuple(i.count(0) for i in matrix)
>>> 
>>> out = tuple(n for n, i in enumerate(zeros, 1) if i == max(zeros))
>>> out
(3,)
>>>
  
>>> import random
>>> import pprint
>>> 
>>> matrix = [[random.choice((0, 1)) for _ in range(10)] for _ in range(5)]
>>> pprint.pprint(matrix)
[[0, 0, 0, 0, 1, 0, 1, 0, 0, 1],
 [0, 1, 0, 1, 1, 1, 0, 0, 0, 1],
 [0, 1, 0, 1, 0, 1, 1, 0, 1, 1],
 [1, 0, 1, 0, 0, 0, 0, 1, 1, 1],
 [1, 1, 0, 0, 0, 1, 0, 0, 0, 0]]
>>> 
>>> zeros = tuple(i.count(0) for i in matrix)
>>> 
>>> out = tuple(n for n, i in enumerate(zeros, 1) if i == max(zeros))
>>> out
(1, 5)
>>>



Отредактировано py.user.next (Апрель 19, 2022 03:32:43)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version