Я пишу код на Python, используя Sympy, и столкнулся с проблемой, которую не могу решить самостоятельно. Я могу успешно изменить значение на 1 на основе параметров, которые я установил в своем кусочном файле, но не могу найти это значение, поскольку индексов слишком много. Я хочу сделать все индексы равными 1, если кусочная операция присвоит одному из них значение 1.
Мой код:
Код: Выделить всё
import sympy as sp
k = sp.symbols('k', integer=True)
# Piecewise definition
f = sp.Piecewise(
(1, sp.And(k < 5, sp.Eq(k % 3, 1))),
(0, True)
)
d = sp.Piecewise(
(1, sp.Eq(f, 1)), #this is an example of how it makes it 1 on all indexes
(0, True)
)
# Summation
S = sp.summation(f, (k, 0, 999999))
print(S)
print(sp.simplify(S))
Как вы можете видеть в моем коде, когда k меньше 5, а модуль с 3 равен 1, он становится 1. Если там есть значение, равное 1, я хочу, чтобы все индексы в моем суммировании были 1, если нет, то я хочу, чтобы все они были 0. Мне это нужно, пожалуйста, я не могу использовать sp.Eq(), чтобы найти индекс, который включен, потому что в моем коде он мне нужен вот так для моего клиента.
Может кто-нибудь показать мне, что делать?
Подробнее здесь:
https://stackoverflow.com/questions/798 ... s-1-how-do