Ich programmiere in Python speziell mit Sympy und bin auf ein Problem gestoßen, das ich alleine nicht lösen kann. Ich kann einen Wert basierend auf Parametern, die ich stückweise festgelegt habe, erfolgreich auf 1 ändern, aber ich kann diesen Wert nicht finden, da es zu viele Indizes gibt.
Ich möchte alle Indizes auf 1 setzen, wenn einer davon stückweise den Wert 1 erhält.
Mein Code lautet:
Code: Select all
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))
Wie Sie in meinem Code sehen können, wenn k kleiner als 5 ist und der Modulus mit 3 1 ist, wird er zu 1. Wenn es dort einen Wert gibt, der 1 entspricht, möchte ich, dass alle Indizes in meiner Summierung 1 sind. Wenn nicht, dann möchte ich, dass alle Indizes 0 sind. Ich brauche es bitte so, ich kann sp.Eq() nicht verwenden, um den Index zu finden, auf dem 1 steht, weil ich ihn in meinem Code brauche so für meinen Kunden.
Kann mir jemand zeigen, was zu tun ist?