Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 26, 2022 14:08:23

Mur.mouse
Зарегистрирован: 2022-02-26
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Задача со случайными матрицами

Уважаемые форумчане!
Только начинаю осваивать python, решаю задачи по линал. Буду крайне признательна за помощь!
Само задание: найдите вероятность того, что определитель 10000 случайно выбранных матриц (2x2, где компоненты от 0 до 9) - равен нулю.
Написала вариант кода, но он не работает(( такое чувство, что проверяется одна матрица, а не 10000

 for i in range(10000):
    # пытаюсь проверить 10000 случайных матриц 2Х2
    zero = [] # сюда записываю результаты проверки определителей
    i =  np.random.randint(0,10,[2,2])
    if int(np.linalg.det(i)) == 0: # сравниваю определитель одной случайной матрицы с 0
        zero.append(1) # если определитель случайной матрицы равен 0, то в переменную zero добавляю 1
    else:
        zero.append(0) # если определитель случайной матрицы отличен от 0, то в переменную zero добавляю 0
# пытаюсь оценить вероятность появления линейно-зависимых матриц среди 10000 случайных
p = sum(zero)/10000

Заранее благодарю!

Отредактировано Mur.mouse (Фев. 26, 2022 14:09:02)

Офлайн

#2 Фев. 26, 2022 15:13:16

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Задача со случайными матрицами

Тут надо не случайные матрицы создавать а перебрать все возможные матрицы и посчитать какая доля из них имеет нулевой детерминант



Офлайн

#3 Фев. 26, 2022 15:24:46

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

Задача со случайными матрицами

Не стал превращать всё это в одну строчку, чтобы сохранить читаемость для новичка.

  
>>> import numpy as np
>>> 
>>> zero = []
>>> for _ in range(10000):
...     det = np.random.randint(0, 10, [2, 2])
...     if int(round(np.linalg.det(det))) == 0:
...         zero.append(1)
... 
>>> p = sum(zero) / 10000
>>> print(p)
0.0557
>>>



Отредактировано py.user.next (Фев. 26, 2022 15:26:25)

Офлайн

#4 Фев. 26, 2022 20:18:03

Mur.mouse
Зарегистрирован: 2022-02-26
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Задача со случайными матрицами

doza_and
Тут надо не случайные матрицы создавать а перебрать все возможные матрицы и посчитать какая доля из них имеет нулевой детерминант
py.user.next
Не стал превращать всё это в одну строчку, чтобы сохранить читаемость для новичка.
Благодарю вас за быстрые ответы, вы мне очень помогли!

P.S. подскажите, пожалуйста, в чем суть подстрочного символа _ после for?

Офлайн

#5 Фев. 26, 2022 23:12:01

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

Задача со случайными матрицами

Mur.mouse
в чем суть подстрочного символа _ после for?
Во многих языках программирования такая идиома используется в тех случаях, когда в каком-то месте обязательно должна стоять переменная какая-то, но в данный момент она не нужна. Поэтому вместо имени ставят подчёркивание.



Офлайн

#6 Фев. 26, 2022 23:15:09

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

Задача со случайными матрицами

Mur.mouse
в чем суть подстрочного символа _ после for?
если итерируемое значение в цикле не используется указывают “_”

Офлайн

#7 Фев. 27, 2022 11:25:43

Mur.mouse
Зарегистрирован: 2022-02-26
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Задача со случайными матрицами

py.user.next
xam1816
Спасибо вам за то, что делитесь знаниями, вы очень добры!
Я могу в этой теме задавать вопросы, если они ещё возникнут по задачам? Чтобы не создавать новые темы..

Офлайн

#8 Фев. 27, 2022 12:38:28

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

Задача со случайными матрицами

Mur.mouse
Я могу в этой теме задавать вопросы, если они ещё возникнут по задачам?
Перейди в Центр помощи и там для каждой отдельной задачи создавай отдельную тему.



Отредактировано py.user.next (Фев. 27, 2022 12:38:43)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version