veränderliche Anzahl geschachtelter for-Schleifen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Ekua
User
Beiträge: 10
Registriert: Freitag 26. Juni 2020, 09:53

Hallo,
ich suche eine Vorgehensweise für eine Regressionsaufgabe. Dafür schreibe ich einen Code, der alle Kombinationsmöglichkeiten ausprobiert. Die Endfunktion soll die Form
E = f(x) + T*g(x) + T^2*h(x)+... bis zum vorgegebenen maximalen Exponenten von T.
f(x), g(x) und h(x) sind dabei Summen der vorgegebenen Funktionsterme.
Zur Zusammensetzung der Endfunktion möchte ich nun geschachtelte for-Schleifen nutzen. Die Anzahl der for-Schleifen hängt jedoch von dem maximalen Exponenten von T ab, der zu Beginn jedes Programmdurchlaufs frei gewählt werden kann.
Wie baue ich das Programm am besten auf?

Als Beispiel hier der Code für exponent_T = 2. Was die Funktion names_to_functions macht ist hier erstmal egal.

Code: Alles auswählen

exponent_T = 2
functions = [(a*x), (b*x**2)]
combinatios = [(0,0),(0,1),(1,0),(1,1)]
all_functions = []

for possibility_f in combinations:
	for possibility_g in combinations:
		for possibility_h in combinations:
			f_names = names_to_functions(possibility_f)
			g_names = names_to_functions(possibility_g)
			h_names = names_to_functions(possibility_h)
			funcs = [f_names, g_names, h_names]
			all_functions.append(funcs)


nezzcarth
User
Beiträge: 1632
Registriert: Samstag 16. April 2011, 12:47

Ekua hat geschrieben: Freitag 4. Juni 2021, 12:50 Dafür schreibe ich einen Code, der alle Kombinationsmöglichkeiten ausprobiert.
Möglicherweise liegt hier schon das Problem. Ich denke, du musst dafür keinen Code schreiben, denn um Kombinationen durchzuprobieren, gibt es im Itertools-Modul aus der Standardbibliothek schon die passenden Werkzeuge. Hilfreich ist in dem Kontext auch manchmal die Syntax zum Entpacken von Argumenten, wenn nicht bereits bekannt (s. https://docs.python.org/3/tutorial/cont ... ment-lists)

Dein Code folgt außerdem nicht PEP 8 (4 Space Einrückungen pro Ebene, keine Großbuchstaben in Variablennamen, Konstanten nur in Großbuchstaben).
Antworten