Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 19, 2012 10:55:43

Bolula
Зарегистрирован: 2012-04-19
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Задачи по матрице

Выполнить обработку элементов прямоугольной матрицы A, имеющей N строк и M столбцов. Определить, сколько нулевых элементов содержится в верхних L строках матрицы

Я че-то намутила О__о помогите, пожалуйста

matrix = [[1,2,-3,4,-5],[2,3,4,5,-6],[3,-4,0,-6,-7]]
 
i=0
j=0
ks = 0
end = len(matrix)
while(j!=end):
    
    if(i==end):
        j=j+1
        i=0
    
    if(j==end):
        break
    
    if(matrix[i][j]==0):
        i=0
        j=j+1
        ks=ks+1
        continue
    i=i+1
print ('Количество столбцов, содержащих число 0 =',ks)

Отредактировано Bolula (Апрель 19, 2012 10:56:51)

Офлайн

#2 Апрель 19, 2012 15:05:01

prius
Зарегистрирован: 2012-04-19
Сообщения: 2
Репутация: +  0  -
Профиль  

Задачи по матрице

Что-то странное ты намутила Советую забыть о счетчиках переменных, это не C
И ещё, почитай PEP8
Вот рабочий, и, в некотором смысле, более правильный вариант:

matrix = [[0,2,0,0,-5],[2,3,0,5,-6],[3,-4,0,-6,-7]]
L = 2    #Number of matrix rows to process
count = 0
for row_number, row in enumerate(matrix):
    if row_number >= L:
        break
    print row_number
    for element in row:
        if element == 0:
            count += 1
print("Number of '0' elements in first "+str(L)+" rows: "+str(count))

Отредактировано prius (Апрель 19, 2012 15:06:20)

Офлайн

#3 Апрель 19, 2012 15:26:42

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Задачи по матрице

Bolula
Выполнить обработку элементов прямоугольной матрицы A, имеющей N строк и M столбцов. Определить, сколько нулевых элементов содержится в верхних L строках матрицы

Я че-то намутила О__о помогите, пожалуйста =)

matrix = [[1,2,-3,4,-5],[2,3,4,5,-6],[3,-4,0,-6,-7]]
 
i=0
j=0
ks = 0
end = len(matrix)
while(j!=end):
    
    if(i==end):
        j=j+1
        i=0
    
    if(j==end):
        break
    
    if(matrix[i][j]==0):
        i=0
        j=j+1
        ks=ks+1
        continue
    i=i+1
print ('Количество столбцов, содержащих число 0 =',ks)

Может так?
matrix = [[1, 2,-3 ,4, -5],
                [2, 3, 4, 0, -6],
                [3,-4, 0,-6, -7],
                [3, 0, 0,-6, -7]
                 ]
L=3
temp=[]
for row in matrix[:L]:
   [temp.append(x) for x in row]
print temp.count(0)



Офлайн

#4 Апрель 19, 2012 15:34:17

Chern
От: Киев
Зарегистрирован: 2010-09-15
Сообщения: 71
Репутация: +  3  -
Профиль   Отправить e-mail  

Задачи по матрице

на минимализм потянуло, простите

matrix = [[0, 2, 0, 0, -5], [2, 3, 0, 5, -6], [3, -4, 0, -6, -7]]
L = 2
print reduce(lambda x, y: x + y.count(0), matrix[:L], 0)



Офлайн

#5 Апрель 19, 2012 15:47:15

Isem
От:
Зарегистрирован: 2010-08-27
Сообщения: 447
Репутация: +  7  -
Профиль   Отправить e-mail  

Задачи по матрице

Тоже тянет.

matrix = [[0, 2, 0, 0, -5], [2, 3, 0, 5, -6], [3, -4, 0, -6, -7]]
L = 2
print( sum(matrix[:L],[]).count(0) ) 



Отредактировано Isem (Апрель 19, 2012 16:10:09)

Офлайн

#6 Апрель 19, 2012 16:42:18

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Задачи по матрице

import re
matrix = [[0, 2, 0, 0, -5], [2, 3, 0, 5, -6], [3, -4, 0, -6, -7]]
L = 2
print  len(re.findall(r"0", str(matrix[:L])))
Правда только от 0 до 9 работает :D



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version