Formel ohne Schleife

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
Theresa
User
Beiträge: 1
Registriert: Sonntag 7. Juni 2020, 16:48

Hallo liebe Mitglieder!

Ich habe mir meine Python Skills zum größten Teil selber beigebracht, weil ich in meinem Statistik-Studium leider zu wenig damit zu tun habe.
Dieses Semester mache ich aber einen Einführungskurs in Python, allerdings ist dieser wegen der Uni-Schließungen sehr schlecht gestaltet und es gibt keine Möglichkeiten, Fragen zu stellen. Jetzt stehe ich seit mehreren Tagen vor einer für mich unlösbaren Aufgabe:

Ich soll die Formel 4^a * (8b+7) für a und b jeweils von 0 bis 9 programmieren.
Mit Schleife konnte ich das leicht lösen, aber im zweiten Teil sollte ich die Formel OHNE Schleife programmieren und das schaffe ich einfach nicht...

Könntet ihr mir bei der Lösung helfen?

LG Theresa
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Hat der Dozent sich da etwas weiter zu ausgelassen wie das umgesetzt werden soll? Ich kann mir eine rekursive Lösung vorstellen, auch wenn das etwas knödelig ist. Oder eine verschachtelte List-Comprehension, das ist aber eigentlich auch nur eine Schleife unter der Haube.
Benutzeravatar
__blackjack__
User
Beiträge: 14047
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Oder vielleicht ist auch Numpy beteiligt. Unterm Strich: Wir brauchen mehr Informationen zu den Randbedingungen um sinnvoll helfen zu können.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
nezzcarth
User
Beiträge: 1762
Registriert: Samstag 16. April 2011, 12:47

Mit R kann man das zu Beispiel so lösen:

Code: Alles auswählen

> f <- function(x) x**2
> sapply(1:9, f)
[1]  1  4  9 16 25 36 49 64 81
Ich kann mir gerade auch wegen des Statistik-Kontexts gut vorstellen, dass etwas in der Richtung das Vorbild ist und dager 'map' verwendet werden soll; das kommt einem direkten Python-Gegenstück von 'sapply' wohl am nächsten. Allerdings werden die schon vorgeschlagenen List Comprehensions oft als pythonischer angesehen.
Benutzeravatar
snafu
User
Beiträge: 6866
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Ich hätte jetzt auch spontan an map() gedacht. Also eine Funktion basteln, die a und b als Argumente nimmt und das Ergebnis der Formel liefert. Diese Funktion dann mit map() auf einem entsprechenden range()-Aufruf anwenden. Noch mehr verrate ich aber nicht...
Antworten