Seite 1 von 1

Brauche bitte dringend Hilfe

Verfasst: Freitag 23. Dezember 2022, 17:38
von Mary
Aufgabe 1:
Basierend auf xy_array (hier: eine zuvor erstellte Definition)
finden Sie alle x-Werte deren zugehörige y-Werte >= 3 sind.

Aufgabe 2:
Es ist eine Liste gegeben: neue_liste=[0,1,2,3] und man soll mit Hilfe einer While-Schleife oder einer For-Schleife die Liste erweitern, sodass der nächste Eintrag jeweils die Summe aus dem letzten Eintrag (letzte Element der Liste) und dem vorvorletzten Eintrag darstellt.
Die Liste soll dann beendet werden, wenn der folgende Eintrag größer als 1000 ist. Als Tipp ist gegeben, dass der letzte Eintrag 872 sein sollte.

Re: Brauche bitte dringend Hilfe

Verfasst: Freitag 23. Dezember 2022, 20:25
von snafu
Und deine konkrete Frage lautet...?

Re: Brauche bitte dringend Hilfe

Verfasst: Samstag 24. Dezember 2022, 12:14
von __blackjack__
Ad Aufgabe 1: Für eine zuvor erstellte Definition von `xy_array`:

Code: Alles auswählen

result = xy_array["x"][xy_array["y"] >= 3]
Ad Aufgabe 2: Mal als Ansatz in CBM BASIC V2 auf einem VIC-20:

Code: Alles auswählen

10 DIM N(20)
20 FOR I=0 TO 3:N(I)=I:NEXT
30 N=N(I-1)+N(I-3)
40 IF N>1000 THEN 60
50 N(I)=N:I=I+1:GOTO 30
60 REM PRINT I
70 FOR J=0 TO I-1:PRINT N(J),:NEXT
Testlauf:

Code: Alles auswählen

RUN
 0          1
 2          3
 4          6
 9          13
 19         28
 41         60
 88         129
 189        277
 406        595
 872
READY.

Re: Brauche bitte dringend Hilfe

Verfasst: Samstag 24. Dezember 2022, 12:49
von Mary
Großartig, vielen Dank und schöne Weihnachtstage 🎄

Re: Brauche bitte dringend Hilfe

Verfasst: Samstag 24. Dezember 2022, 13:48
von snafu
Wenn eh schon Komplettlösungen gepostet werden:

Code: Alles auswählen

items = [0,1,2,3]
while (next_item := items[-1] + items[-3]) <= 1000:
    items.append(next_item)
print(items)

Re: Brauche bitte dringend Hilfe

Verfasst: Sonntag 25. Dezember 2022, 04:23
von DeaD_EyE
Das ist nicht unbedingt besser, aber anders.

Code: Alles auswählen

from collections import deque
from operator import itemgetter


def kein_name(items):
    getter = itemgetter(-1, -3)
    window = deque(items)

    yield from window

    while (total := sum(getter(window))) <= 1000:
        window.append(total)
        window.popleft()
        yield total

Sachen zum Nachschlagen:
- https://docs.python.org/3/library/opera ... itemgetter
- https://docs.python.org/3/library/colle ... ions.deque
- https://docs.python.org/3/howto/functio ... generators

Frohe Weihnachten