С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/71: Рейтинг темы: голосов - 71, средняя оценка - 4.52
0 / 0 / 0
Регистрация: 15.12.2009
Сообщений: 4

Дана целочисленная прямоугольная матрица. Определить количество столбцов, не содержащих ни одного нулевого элемента

16.12.2009, 16:21. Показов 14307. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста


Дана целочисленная прямоугольная матрица. Определить количество столбцов, не содержащих ни одного нулевого элемента.

заранее спасибо
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.12.2009, 16:21
Ответы с готовыми решениями:

Дана целочисленная прямоугольная матрица. Определить количество столбцов, не содержащих ни одного нулевого элемента.
Дана целочисленная прямоугольная матрица. Определить количество столбцов, не содержащих ни одного нулевого элемента. Характеристикой...

Дана целочисленная прямоугольная матрица. Определить количество столбцов, не содержащих ни одного нулевого элемента
Дана целочисленная прямоугольная матрица. Определить количество столбцов, не содержащих ни одного нулевого элемента.

Дана целочисленная прямоугольная матрица. Определить: 1) количество столбцов, не содержащих ни одного нулевого элемента;
Дана целочисленная прямоугольная матрица. Определить: 1) количество столбцов, не содержащих ни одного нулевого элемента; ...

12
10 / 10 / 5
Регистрация: 11.11.2009
Сообщений: 18
17.12.2009, 01:25
Лучший ответ Сообщение было отмечено ildwine как решение

Решение

вот этот код вроде работает как нужно
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# -*- coding: utf-8 -*-
 
##матрица
matrix = [[1,7,1,0,6,4],
          [4,5,1,5,6,4],
          [1,1,1,1,1,1],
          [1,7,6,6,1,4],
          [1,7,6,5,6,4],
          [1,7,6,5,6,4]]
 
i=0
j=0
kolvo_stolbzovravnih0 = 0
## конец массива
end = len(matrix)
## перебираем весь массив
while(j!=end):
    ## есди пересмотрели весь столбец, начинаем новый
    if(i==end):
        j=j+1
        i=0
    ## если просмотрели всю матрицу то выходим из цикла
    if(j==end):
        break
    ## нашли 0 увеличиваем кол-во найденых столбцов с нулем, на 1
    if(matrix[i][j]==0):
        i=0
        j=j+1
        kolvo_stolbzovravnih0=kolvo_stolbzovravnih0+1
        continue
    i=i+1
## выводим ответ
print u'Количество столбцов которые не содержат 0 =',len(matrix)-kolvo_stolbzovravnih0
спать уже хочется, так что за качество кода не отвечаю, ночь уже как бэ.
p.s. я python еще не очень хорошо знаю, так что не судите строго. тут 100% как то можно сделать по питоновски изящно в ~10 строк.
1
0 / 0 / 0
Регистрация: 15.12.2009
Сообщений: 4
17.12.2009, 15:49  [ТС]
а как будет,если матрица не дана, а создать в ходе программы, вводя размерность матрицы, а значения случайны
0
10 / 10 / 5
Регистрация: 11.11.2009
Сообщений: 18
17.12.2009, 17:46
Лучший ответ Сообщение было отмечено ildwine как решение

Решение

Полагаю, что вот так:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# -*- coding: utf-8 -*-
 
n = raw_input("Input size: ")
 
 
x,y = 0,0
## вспомогательная и главная матрица
tmpm = []
matrix = []
 
while x < int(n):
    y=0
    while y < int(n):
        ## подсказка для ввода
        info_to_app = str(x)+","+str(y)
        ## добавляем в вспомогательную матрицу, введенное с клавиатуры число
        tmpm.append(int(raw_input(info_to_app)))
        y=y+1
    ## добавляем в главную матрицу вспомогательную матрицу и очищаем вспомогательную матрицу
    matrix.append(tmpm)
    tmpm=[]
    x = x+1
 
 
##отображаем полученную матрицу
for i in  matrix:
    print i
 
##матрица
##matrix = [[1,3,1,4,0,7],
##          [4,5,1,5,6,4],
##          [1,3,1,0,1,3],
##          [1,7,6,4,1,4],
##          [1,7,6,5,6,4],
##          [1,7,6,4,6,4]]
 
kolvo_stolbzovravnih0 = 0
## хранение номеров столбцов где есть ноль
tmp=[]
 
i=0
 
while i < len(matrix):
    j=0
    while j < len(matrix[i]):
        if(matrix[i][j]==0):
            ## если такого номера столбца нет, то добавляем его
            if(tmp.count(matrix[i].index(matrix[i][j]))==0):
                ## добавляем номер столбца с 0
                tmp.append(matrix[i].index(matrix[i][j]))
            ## убирается 0, что бы не мешал с этом же ряду
            matrix[i][j] = -1
        j=j+1
    i=i+1
 
 
 
print "-"*10
print len(matrix) - len(tmp)
1
99 / 86 / 20
Регистрация: 10.09.2019
Сообщений: 708
23.07.2021, 10:11
Python
1
2
3
4
5
6
7
8
9
import numpy as np
random_matrix=np.matrix(np.random.randint(100, size=(int(input('rows=')), int(input('cols=')))))
i=0
n=0
for _ in range(random_matrix.shape[1]-1):
    i +=1
    if np.count_nonzero(random_matrix[:, i])<random_matrix.shape[0]:
        n += 1
print(random_matrix.shape[1]-n)
0
5515 / 2868 / 571
Регистрация: 07.11.2019
Сообщений: 4,757
23.07.2021, 10:42
Буду краток:
Python
1
print(sum(all(i) for i in zip(*matrix)))
0
99 / 86 / 20
Регистрация: 10.09.2019
Сообщений: 708
23.07.2021, 10:54
u235, ValueError с моими исходными данными.
0
Эксперт Python
8840 / 4492 / 1864
Регистрация: 27.03.2020
Сообщений: 7,312
23.07.2021, 11:00
AlexMarkov,

Не по теме:

12 лет )))


Python
1
print(np.nonzero(np.prod(random_matrix, axis = 0))[0].shape[0])
0
99 / 86 / 20
Регистрация: 10.09.2019
Сообщений: 708
23.07.2021, 11:28

Не по теме:

Gdez, светлое будущее обещали к нулевым..Вот я и иду в обратном направлении..



Добавлено через 14 минут

Не по теме:

Gdez, мне интересен ваш ход мыслей, о чем первым вы подумали когда решали эту задачу о результате умножения на ноль или о методе numpy.prod()?

0
5515 / 2868 / 571
Регистрация: 07.11.2019
Сообщений: 4,757
23.07.2021, 11:29
AlexMarkov, у вас, наверное np.array..
У меня так работает:
Code
1
2
3
4
5
6
7
8
9
In [92]: matrix = [[1,7,1,0,6,4],
    ...:           [4,5,1,5,6,4],
    ...:           [1,1,1,1,1,1],
    ...:           [1,7,6,6,1,4],
    ...:           [1,7,6,5,6,4],
    ...:           [1,7,-6,5,6,4]]
 
In [93]: print(sum(all(i) for i in zip(*matrix)))
5
1
Эксперт Python
8840 / 4492 / 1864
Регистрация: 27.03.2020
Сообщений: 7,312
23.07.2021, 11:29
AlexMarkov, умножение на ноль
1
99 / 86 / 20
Регистрация: 10.09.2019
Сообщений: 708
23.07.2021, 11:30
u235, да вы правы, просто ТС говорил о случайных значениях матрицы.
0
5515 / 2868 / 571
Регистрация: 07.11.2019
Сообщений: 4,757
23.07.2021, 11:32
Для numpy можно так:
Python
1
np.sum(np.all(m, axis=0))
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.07.2021, 11:32
Помогаю со студенческими работами здесь

Дана целочисленная прямоугольная матрица.а) количество столбцов, не содержащих ни одного нулевого элемента; б) характер
Разработать программу обработки двумерных массивов. Разработать пользовательские функции для инициализации массива, вывода его...

Дана целочисленная прямоугольная матрица. Определить количество столбцов, не содержащих ни одного нулевого
Дана целочисленная прямоугольная матрица. Определить количество столбцов, не содержащих ни одного нулевого элемента. Добавлено через 3...

Дана целочисленная прямоугольная матрица. Определить количество столбцов, не содержащих ни одного нулевого
Дана целочисленная прямоугольная матрица. Определить количество столбцов, не содержащих ни одного нулевого элемента.Характеристикой строки...

Дана целочисленная прямоугольная матрица. Определить количество строк, не содержащих ни одного нулевого элемента
Доброго времени суток. Не могу решить данное задание. Проблемы непосредственно в подсчете строк. Пробовал множество вариантов, свелся...

Дана целочисленная прямоугольная матрица. Вывести ее на экран и определить количество строк, не содержащих ни одного нулевого элемента.
Дана целочисленная прямоугольная матрица. Вывести ее на экран и определить количество строк, не содержащих ни одного нулевого элемента.Язык...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru