Wenn ein Wert in mindestens einem der Indizes meiner Sympy-Summierung gleich 1 ist, wie kann ich dann dafür sorgen, dassPython

Python-Programme
Anonymous
 Wenn ein Wert in mindestens einem der Indizes meiner Sympy-Summierung gleich 1 ist, wie kann ich dann dafür sorgen, dass

Post by Anonymous »

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?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post