Seite 8 von 16 ErsteErste ... 456789101112 ... LetzteLetzte
Ergebnis 106 bis 120 von 228

Thema: [Human Resource Machine] Hallo Welt

  1. #106
    Neuer Angestellter Avatar von Torin
    Registriert seit
    31.01.17
    Beiträge
    2.381

    22 - Fibonacci-Besucher (7/6)

    Eigentlich wollte ich die Größenoptimierung erreichen, aber stattdessen kam eine bessere Laufzeitoptimierung heraus. Es ist unnötig X in Zeile 17 auszugeben, wenn ich den Wert in Zeile 20 wieder brauche. Also lösche ich Zeile 16 und stelle die OUTBOX nach hinten.

    Bild

    Bild

    Bild

    134 Schritte! Immer noch zwei Befehle zu viel. Mir ist aber keine Möglichkeit aufgefallen, wie ich das vorhandene Programm weiter kürzen kann.
    Angehängte Grafiken Angehängte Grafiken
    Geändert von Torin (17. März 2017 um 20:53 Uhr)

  2. #107
    Registrierter Benutzer Avatar von AmrodAegnor
    Registriert seit
    22.10.12
    Beiträge
    9.045
    Zu deiner Lösung:

    Achtung Spoiler:
    Ich versteh Schritt 2 nicht. Wieso kopierst du die Zahl aus der Inbox auf den Boden? Die ist doch vollkommen irrelevant?

    Oder muss man die Zahl erst ablegen, bevor man eine Neue aufnehmen kann?

    Für weitere Tipps bin ich gerade zu müde, bei Schritt 14 steigt mein Hirn gerade aus.


    Zitat Zitat von Torin Beitrag anzeigen
    Es reicht immer noch nicht. In beiden Kategorien fehlt uns nur eine Einheit!
    Haja, die Tücken des Programmierens.

    Beim Multiplikationsworkshop ist das ein typischer Anfängerfehler.

    Aber gerade deswegen macht es ja so viel Spass und es ist extrem befriedigend, wenn man erstmal draufkommt.

    Hint:

    Achtung Spoiler:
    Ich verstehe nicht so recht, wieso du das Produkt erstmal noch auf den Boden kopierst, anstatt es gleich auszugeben. Sieht zwar schön aus, ist aber sinnfrei.


    Fibonacci. Da hatte ich mal keinen PC bereit und hab das mit Zettel und Bleistift ausgetüftelt.

    Zitat Zitat von Torin Beitrag anzeigen
    Ich fange an Beschriftungen und Kommentare in den Programmen zu mögen. ^-^
    Kommentare erscheinen zuerst unnötig, aber sobald es komplexer wird oder man ein Programm länger nicht bearbeitet, ist es gut, wenigstens ein paar Hinweise zu haben. Ging mir zumindest so.

  3. #108
    Neuer Angestellter Avatar von Torin
    Registriert seit
    31.01.17
    Beiträge
    2.381
    Zitat Zitat von AmrodAegnor Beitrag anzeigen
    Zu deiner Lösung:

    Ich versteh Schritt 2 nicht. Wieso kopierst du die Zahl aus der Inbox auf den Boden? Die ist doch vollkommen irrelevant?
    Von welchem Level sprichst du? Der Sinn aller Level ist es doch die Werte aus der Inbox zu verarbeiten, wie kann diese dann irrelevant sein?

    Zitat Zitat von AmrodAegnor Beitrag anzeigen
    Ich verstehe nicht so recht, wieso du das Produkt erstmal noch auf den Boden kopierst, anstatt es gleich auszugeben. Sieht zwar schön aus, ist aber sinnfrei.
    Bild

    Wenn du dich auf Zeile 14 beziehst: Hier wird nicht auf die Kachel, sondern von der Kachel kopiert. Ansonsten würde der Angestellte eine Null ausgeben.

  4. #109
    Registrierter Benutzer Avatar von AmrodAegnor
    Registriert seit
    22.10.12
    Beiträge
    9.045
    Zitat Zitat von Torin Beitrag anzeigen
    Von welchem Level sprichst du? Der Sinn aller Level ist es doch die Werte aus der Inbox zu verarbeiten, wie kann diese dann irrelevant sein?

    Wenn du dich auf Zeile 14 beziehst: Hier wird nicht auf die Kachel, sondern von der Kachel kopiert. Ansonsten würde der Angestellte eine Null ausgeben.
    Zitat Zitat von Torin Beitrag anzeigen
    Bild
    Schritt 2, copyto Y. Die 20 ist ja völlig unerheblich für die Zahlen der Fibonacci-Reihe.

    Beim anderen Beispiel hab ich mich in der Zeile verschaut, passt schon.

  5. #110
    Neuer Angestellter Avatar von Torin
    Registriert seit
    31.01.17
    Beiträge
    2.381
    Die Zahl aus der Inbox muss gespeichert werden, sonst kann man später nicht anhand dieser feststellen bis zu welcher Zahl die Fibonacci-Reihe erstellt werden muss. Vielleicht meinst du man könnte das Programm im Vorraus auf die Werte in der Inbox anpassen, da diese ja sichtbar sind. Doch solch eine Lösung wird nicht akzeptiert, es würden dann sofort neue Werte in der Inbox erscheinen, die das Programm nicht richtig verarbeiten kann.

  6. #111
    Registrierter Benutzer Avatar von AmrodAegnor
    Registriert seit
    22.10.12
    Beiträge
    9.045


    Ja, an die letzte Zahl hatte ich nicht gedacht.

  7. #112
    Neuer Angestellter Avatar von Torin
    Registriert seit
    31.01.17
    Beiträge
    2.381

    23 - Die kleinste Zahl (1/2)

    Bild

    Bild

    Bild

    Bild

    Bild

    Bild

    Bild

    Bild

    Bild

    Bild

    Bild
    Angehängte Grafiken Angehängte Grafiken

  8. #113
    Neuer Angestellter Avatar von Torin
    Registriert seit
    31.01.17
    Beiträge
    2.381

    23 - Die kleinste Zahl (2/2)

    Bild

    Wichtig ist der Hinweis, dass es keine leeren Ketten geben wird. Also können wir getrost die erste Inbox aufnehmen und zwischenspeichern. Ab der zweiten Inbox muss dann überprüft werden, ob nun die abschließende Null aufgenommen wurde. Ist dies der Fall, wird der zwischengespeicherte Wert als kleinste Zahl in die Outbox gegeben.

    Bild

    Nun überprüfen wir per Subtraktion, ob die neue Zahl aus der Inbox kleiner ist als die bereits gespeicherte. Zuerst realisiere ich das darüber, dass der Kleinste-Zahl-Kandidat ebenfalls auf den Boden gespeichert wird.

    Bild

    Bild

    Bild

    Nachdem das Programm erfolgreich durchläuft und nur einen Befehl von der Größenoptimierung entfernt ist, fällt mir auf, das der Kandidat gar nicht zwischengespeichert werden muss, sondern nach der Subtraktion wieder per Addition hergestellt werden kann. Das spart ein Befehl und neun Schritte, Optimierung abgeschlossen.

    Bild

    Bild
    Angehängte Grafiken Angehängte Grafiken

  9. #114
    Neuer Angestellter Avatar von Torin
    Registriert seit
    31.01.17
    Beiträge
    2.381

    24 - Modulomodul (1/3)

    Bild

    Bild

    Bild

    Bild

    Bild
    Angehängte Grafiken Angehängte Grafiken

  10. #115
    Neuer Angestellter Avatar von Torin
    Registriert seit
    31.01.17
    Beiträge
    2.381

    24 - Modulomodul (2/3)

    Bild

    Bild

    Die Aufgabe wird durch Subtraktion gelöst. Erstmal speichere ich beide Zahlen auf den Boden.

    Bild

    Der Rest vom Programm ist schnell fertig. Wir nehmen die erste Zahl in die Hand und ziehen so oft die zweite Zahl ab, bis wir im negativen Bereich landen. Danach wird einmalig die zweite Zahl addiert und wir haben den Restwert, der auch gleich zur Ausgabe landet.

    Bild

    Dann lassen wir den Angestellten loslegen und es scheint alles wie gewünscht zu funktionieren.

    Bild
    Angehängte Grafiken Angehängte Grafiken

  11. #116
    Neuer Angestellter Avatar von Torin
    Registriert seit
    31.01.17
    Beiträge
    2.381

    24 - Modulomodul (3/3)

    Beide Optimierungsziele unterschritten!

    Bild
    Angehängte Grafiken Angehängte Grafiken

  12. #117
    Neuer Angestellter Avatar von Torin
    Registriert seit
    31.01.17
    Beiträge
    2.381

    25 - Aufaddierendes Herunterzählen (1/4)

    Drei Optimierungen stehen derweil noch aus, aber ich mach erstmal weiter.

    Bild

    Bild

    Bild

    Bild

    Bild
    Angehängte Grafiken Angehängte Grafiken

  13. #118
    Neuer Angestellter Avatar von Torin
    Registriert seit
    31.01.17
    Beiträge
    2.381

    25 - Aufaddierendes Herunterzählen (2/4)

    Bild

    Bild

    Fangen wir mit den Beschriftungen und ersten Schritten an. Eine Null aus der Inbox kann gleich zur Outbox weitergeleitet werden, ansonsten müssen wir ein bisschen rechnen. Also muss die eingehende Zahl gespeichert werden und die Summe wird initialisiert.

    Bild

    Solange das Ding - wie es so schön in der Aufgabenstellung benannt wurde - nicht Null beträgt, wird der Wert der Summe aufaddiert und anschließend wird das Ding um Eins vermindert. Am Ende wird die Summe ausgegeben.

    Bild

    Bild
    Angehängte Grafiken Angehängte Grafiken

  14. #119
    Neuer Angestellter Avatar von Torin
    Registriert seit
    31.01.17
    Beiträge
    2.381

    25 - Aufaddierendes Herunterzählen (3/4)

    Das Programm läuft erfolgreich, muss aber noch optimiert werden.

    Bild

    Bild

    Bild

    So entferne ich Zeile 6. Wenn ich BUMP benutze, habe ich den Wert sofort auf der Hand und muss diesen nicht nochmal aufnehmen.

    Bild

    Bild

    Das allein reicht natürlich noch nicht.
    Angehängte Grafiken Angehängte Grafiken

  15. #120
    Neuer Angestellter Avatar von Torin
    Registriert seit
    31.01.17
    Beiträge
    2.381

    25 - Aufaddierendes Herunterzählen (4/4)

    Ich komme zur Erkenntnis, dass die vorgegebene Null gar nicht notwendig ist. Aber sie darf gerne als Gast bleiben.

    Also speichern wir den eingehenden Wert auch gleich in die Summe und stellen die Berechnung entsprechend um.

    Bild

    Bild

    Bild
    Angehängte Grafiken Angehängte Grafiken

Seite 8 von 16 ErsteErste ... 456789101112 ... LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •