Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.59/64: Рейтинг темы: голосов - 64, средняя оценка - 4.59
0 / 0 / 0
Регистрация: 26.11.2015
Сообщений: 20
1

Сгенерировать квадратную матрицу

14.01.2018, 17:38. Показов 12993. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Сгенерировать квадратную матрицу 100х100 со случайными значениями в пределах [-100;100]. Посчитать сумму квадратов неотрицательных элементов главной диагонали. Вычесть из неё сумму квадратов отрицательных элементов побочной диагонали. Никогда прежде не работал в питоне. Тут понадобилось
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.01.2018, 17:38
Ответы с готовыми решениями:

Сгенерировать матрицу python
Здравствуйте, помогите написать генератор для двух матриц 1 0 1 0 1 0 0 1 0 1 0 1 1 0 1 0 1 0...

Сформировать квадратную матрицу
Сформировать квадратную матрицу порядка n по заданному образцу:

Сформировать квадратную матрицу
Сформировать квадратную матрицу порядка n и по заданному образцу.

Сформировать квадратную матрицу
Сформировать квадратную матрицу

9
Эксперт по компьютерным сетям
5898 / 3355 / 1035
Регистрация: 03.11.2009
Сообщений: 10,003
14.01.2018, 18:36 2
Цитата Сообщение от varis008 Посмотреть сообщение
Никогда прежде не работал в питоне. Тут понадобилось
Ну так а что Вы-то уже сделали, чтобы разобраться?
1
1291 / 908 / 479
Регистрация: 05.12.2013
Сообщений: 3,073
14.01.2018, 18:44 3
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from random import randint
 
lst = ([[randint(-100,100) for j in range(100)] for i in range(100)])
 
def diagonal(l,c=0):
    s = 0
    i = 0
    n = len(l)
    while i < n:
        if c == 1:
            if l[i][i] > 0:
                s += l[i][i]  ** 2
        else:
            if l[i][n-i-1] < 0:
                s += l[i][n-i-1] ** 2
        i += 1
    return s
 
sum_gl_diag = diagonal(lst, 1)
sum_pob_diag = diagonal(lst)
print("{} - {} = {}".format(sum_gl_diag, sum_pob_diag, sum_gl_diag - sum_pob_diag))
1
4937 / 3290 / 1140
Регистрация: 21.03.2016
Сообщений: 8,071
14.01.2018, 18:57 4
ну хотя бы матрицу создать можете?

Добавлено через 3 минуты
ТабуретY, а зачем круглые скобки?
Python
1
lst = ([[randint(-100,100) for j in range(100)] for i in range(100)])
1
1291 / 908 / 479
Регистрация: 05.12.2013
Сообщений: 3,073
14.01.2018, 19:07 5
Не знаю, видимо, рука дрогнула
0
Эксперт по компьютерным сетям
5898 / 3355 / 1035
Регистрация: 03.11.2009
Сообщений: 10,003
14.01.2018, 19:27 6
Python
1
2
3
4
5
6
from random import randint
n = 100
lst = [[randint(-100, 100) for _ in range(n)] for _ in range(n)]
ss1 = sum(lst[x][x]**2 for x in range(n) if lst[x][x] >= 0)
ss2 = sum(lst[n-1-x][x]**2 for x in range(n) if lst[n-1-x][x] < 0)
print(ss1 - ss2)
Добавлено через 19 минут
за один проход

Python
1
2
3
4
5
from random import randint
n = 100
lst = [[randint(-100, 100) for _ in range(n)] for _ in range(n)]
ss3 = sum((lst[x][x]**2 if lst[x][x] >= 0 else 0) - (lst[n-1-x][x]**2 if lst[n-1-x][x] < 0 else 0) for x in range(n))
print(ss3)
1
4937 / 3290 / 1140
Регистрация: 21.03.2016
Сообщений: 8,071
14.01.2018, 19:29 7
я далек от професионализма Jabbson, но суну свой вариант
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from random import randint
 
def totals(x, flag):
    sum_square = 0
    for row,column in zip(*x):
        elem = matrix[row][column]
        if int(elem > 0) == flag :
            sum_square += elem ** 2
    return sum_square
 
size = 100
matrix = [[randint(-100,100) for _ in range(size)] for _ in range(size)]
sum_main = totals((range(size),range(size)) ,flag = 1)
sum_secondary = totals((range(size),range(size)[::-1]) ,flag = 0)
print(sum_main - sum_secondary)
1
636 / 476 / 179
Регистрация: 28.05.2012
Сообщений: 1,414
15.01.2018, 10:55 8
numpy
0
110 / 36 / 5
Регистрация: 27.12.2012
Сообщений: 130
16.01.2018, 01:47 9
C numpy:

Python
1
2
3
4
5
6
import numpy as np
 
matrix_100_100 = np.random.uniform(low=-100, high=101, size=(100,100))
m_diag = matrix_100_100.diagonal()
opp_diag = np.diag(np.fliplr(matrix_100_100))
print(sum(i**2 for i in m_diag if i > 0) - sum(i**2 for i in opp_diag if i < 0))
Или так:
Python
1
2
3
4
import numpy as np
 
matrix_100_100 = np.random.uniform(low=-100, high=101, size=(100,100))
print(sum(i**2 for i in matrix_100_100.diagonal() if i > 0) - sum(i**2 for i in np.diag(np.fliplr(matrix_100_100)) if i < 0))
1
0 / 0 / 0
Регистрация: 26.11.2015
Сообщений: 20
16.01.2018, 08:55  [ТС] 10
Матрицу создать могу. Проблема была с синтаксисом. Как заполнить ее случайными числами. В интернете примеров нигде не нашел. Решил задать вопрос здесь. Всем огромное спасибо за ответы.
0
16.01.2018, 08:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.01.2018, 08:55
Помогаю со студенческими работами здесь

Транспонировать квадратную матрицу
Напишите программу, транспонирующую квадратную матрицу размером 4 на 4, то есть меняет местами её...

Заполнить квадратную матрицу
На языке питон заполнить массив Главную диагональ - единицы, выше и ниже диагонали двойки, далее...

Транспонировать квадратную матрицу
Транспонировать квадратную матрицу Дан двумерный массив размером n×n. Транспонируйте его и...

Заполнить квадратную матрицу
(На питоне 3) Заполнить квадратную матрицу n*n (вводим с клавиатуры) следующим образом:

Транспонировать квадратную матрицу
Дан двумерный массив размером n×n. Транспонируйте его и результат запишите в этот же массив....

Как сгенерировать матрицу в одну строку
Изучил генераторы списков, знаю так же как генерировать матрицы. Но вот как сгенерировать матрицу в...

Получить действительную квадратную матрицу
Из одномерного массива i=1,64 получить действительную к вадратную матрицу 8*8, элементами которой...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru