Seite 6 von 16 ErsteErste ... 2345678910 ... LetzteLetzte
Ergebnis 76 bis 90 von 228

Thema: [Human Resource Machine] Hallo Welt

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

    20 - Multiplikationsworkshop (1/4)

    Bild

    Bild

    Bild

    Bild

    Bild
    Angehängte Grafiken Angehängte Grafiken
    Geändert von Torin (14. März 2017 um 09:29 Uhr)

  2. #77
    Neuer Angestellter Avatar von Torin
    Registriert seit
    31.01.17
    Beiträge
    2.381

    20 - Multiplikationsworkshop (2/4)

    Bild

    Bild

    Bild

    Bild

    Bild
    Angehängte Grafiken Angehängte Grafiken
    Geändert von Torin (14. März 2017 um 09:29 Uhr)

  3. #78
    Neuer Angestellter Avatar von Torin
    Registriert seit
    31.01.17
    Beiträge
    2.381

    20 - Multiplikationsworkshop (3/4)

    Bild

    Wir können nun die Bodenkacheln beschriften!

    Bild

    Das Initialisieren eines Zwischenwertes ist bereits vorgeben. Das Zahlenpaar wird zwischengespeichert.

    Bild

    In Hinblick auf die Laufzeitoptimierung speichern wir nun zuerst die beiden Zahlen, sofern notwendig. Ist eine von beiden Null können wir dies auch gleich als Ergebnis ausgeben und machen mit dem nächsten Zahlenpaar weiter.

    Bild

    Das Zwischenergebnis benenne ich sinnvoll um und verzichte auf einen Schritt, indem ich gleich den Wert des Produktes mit dem der zweiten Zahl überschreibe.

    Bild
    Angehängte Grafiken Angehängte Grafiken
    Geändert von Torin (14. März 2017 um 09:35 Uhr)

  4. #79
    Neuer Angestellter Avatar von Torin
    Registriert seit
    31.01.17
    Beiträge
    2.381

    20 - Multiplikationsworkshop (4/4)

    Nun verringern wir die erste gespeicherte Zahl um Eins. Wenn dieser Wert Null erreicht, ist das Produkt fertig und kann ausgegeben werden. Solange dies nicht der Fall ist addieren wir die zweite Zahl zum Produkt.

    Bild

    Bild

    Leider hat es nicht zur angestrebten Laufzeitoptimierung gereicht.

    Bild
    Angehängte Grafiken Angehängte Grafiken
    Geändert von Torin (14. März 2017 um 09:37 Uhr)

  5. #80
    Neuer Angestellter Avatar von Torin
    Registriert seit
    31.01.17
    Beiträge
    2.381

    20 - Multiplikationsworkshop (Kein Fortschritt)

    Ich sehe gerade das zwei JUMPs jeweils zur Ausgabe und zur Programmwiederholung führen. Das kann man natürlich kürzen, wodurch wir zwei Zeilen sparen, aber sonst nicht wirklich weiterkommen.

    Bild

    Bild

    Also löschen wir das Programm!

    Bild
    Angehängte Grafiken Angehängte Grafiken
    Geändert von Torin (14. März 2017 um 13:58 Uhr)

  6. #81
    Neuer Angestellter Avatar von Torin
    Registriert seit
    31.01.17
    Beiträge
    2.381

    20 - Multiplikationsworkshop (Größenoptimierung)

    Gehen wir das Programm nochmal neu an, setzen die Schritte, die bereits vorgegeben waren und speichern das Zahlenpaar.

    Bild

    Zahl 2 wird wieder mit sich selbst in der Anzahl von Zahl 1 addiert und im Produkt gespeichert. Dieses Mal in 16 Zeilen.

    Bild

    Der hier markierte JUMP überprüft ob Zahl 2 Null beträgt. Wenn wir diesen rausnehmen, funktioniert die Rechnung weiterhin und wir haben das Programm auf 15 Zeilen minimiert!

    Bild

    Dies hat jedoch zur Folge, dass unser Angestellter unnötigt Berechnungen anstellt, wenn die zweite Zahl mal wirklich Null ist.

    Bild

    Die unnötigen Schritten nehmen wir aber gerne in Kauf, wenn wir dadurch die Größenoptimierung erreichen!

    Bild
    Angehängte Grafiken Angehängte Grafiken
    Geändert von Torin (14. März 2017 um 14:04 Uhr)

  7. #82
    erfreut Avatar von Yucatan
    Registriert seit
    27.02.11
    Ort
    Tenochtitlan
    Beiträge
    6.794
    Für den Countdown hab ich auch eine Platzlösung mit nur einer Kachel:

    Achtung Spoiler:
    -- HUMAN RESOURCE MACHINE PROGRAM --

    a:
    INBOX
    COPYTO 2
    b:
    OUTBOX
    COPYFROM 2
    JUMPZ a
    JUMPN c
    BUMPDN 2
    JUMP d
    c:
    BUMPUP 2
    d:
    JUMP b

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

    19 - Countdown (Leserlösung)

    Wir können es ja so machen: Wenn ich in einem Level beide Optimierungen bereits erreicht habe sind keine Spoiler notwendig und jeder Leser kann mir seine Lösung hier einreichen.

    Also die Lösung von Yucatan:

    Man kann jedes Programm im Game in den Zwischenspeicher kopieren. Dies sieht dann so aus, wie Yucatan im letzten Beitrag gepostet hat. Dies lässt sich auf selben Wege auch ins Spiel einfügen.

    Bild

    Interessant, hier wird die Zahl gleich ausgegeben und dann erst überprüft, ob diese Null, negativ oder positiv ist. Anschließend wird entsprechend gehandelt.

    Bild

    Bild

    Bild

    Verbraucht ein paar Schritte mehr als bei meine 10-Befehle-Lösung.

    Bild
    Angehängte Grafiken Angehängte Grafiken
    Geändert von Torin (14. März 2017 um 18:57 Uhr)

  9. #84
    erfreut Avatar von Yucatan
    Registriert seit
    27.02.11
    Ort
    Tenochtitlan
    Beiträge
    6.794


    Der Jump in Zeile 8 kann natürlich noch optimiert werden, sehe ich gerade

  10. #85
    Neuer Angestellter Avatar von Torin
    Registriert seit
    31.01.17
    Beiträge
    2.381
    Stimmt, von einen JUMP zum anderen JUMP kann man höchstens als Humor bezeichnen.

    Bild

    Spart ein paar Schritte und unterbietet meine Lösung nun um 2.

    Bild
    Angehängte Grafiken Angehängte Grafiken
    Geändert von Torin (15. März 2017 um 10:47 Uhr)

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

    21 - Nullterminierte Summe (1/2)

    Unser Angestellter ist älter geworden.

    Bild

    Weiter geht's mit sehr viel Text!

    Bild

    Bild

    Bild

    Bild

    Bild

    Bild

    Bild

    Bild

    Bild

    Bild

    Bild

    Bild

    Bild

    Bild

    Bild

    Bild

    Bild

    Bild

    Bild

    Bild

    Bild

    Bild

    Bild

    Bild

    Bild

    Bild
    Angehängte Grafiken Angehängte Grafiken
    Geändert von Torin (14. März 2017 um 20:50 Uhr)

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

    21 - Nullterminierte Summe (2/2)

    Als erstes beschrifte ich die Kacheln. Zur Abwechslung nehme ich mal nicht Kachel #0. In Kette werde ich die Summe einer Kette speichern und der allmächtige Nullmacher setzt den Wert zurück bevor es mit der nächsten Kette weitergeht.

    Bild

    Wir nehmen den eingehenden Wert und wenn dieser Null beträgt wird die Kette ausgegeben. Zur spaßigen Mitte kommen wir gleich.

    Bild

    Addieren, überschreiben, wiederholen. Bis zur nächsten Null.

    Bild

    Das läuft ganz gut...

    Bild

    ... und erfüllt die Bedingungen der Größenoptimierung.

    Bild
    Angehängte Grafiken Angehängte Grafiken
    Geändert von Torin (14. März 2017 um 20:58 Uhr)

  13. #88
    Neuer Angestellter Avatar von Torin
    Registriert seit
    31.01.17
    Beiträge
    2.381
    Ich fange an Beschriftungen und Kommentare in den Programmen zu mögen. ^-^
    Angehängte Grafiken Angehängte Grafiken
    Geändert von Torin (15. März 2017 um 10:50 Uhr)

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

    20 - Multiplikationsworkshop (Optimierungsversuch)

    Die Laufzeitoptimierung sieht maximal 109 Schritte vor. Meine beste Lösung bisher benötigt noch 121 Schritte.

    Also initialisieren wir das Produkt und speichern die beiden Zahlen.

    Bild

    Dann überspringen wir die ganzen Befehle, sollte eine der beiden Zahlen Null betragen.

    Bild

    Bild

    Meine neue Lösung ähnelt meiner ersten sehr, doch dieses mal speicher ich gleich ins Produkt und gehe an diese Stelle zurück.

    Bild

    Bild

    Bild

    Bild

    So ganz durchdacht habe ich das anscheinend nicht, da so mehr Schritte notwendig sind.

    Vielleicht spare ich Schritte wenn ich zuerst prüfe, ob eine der beiden Zahlen Null beträgt und dann erst das Produkt initialisiere.
    Angehängte Grafiken Angehängte Grafiken
    Geändert von Torin (15. März 2017 um 11:20 Uhr)

  15. #90
    ε•ω=1 Avatar von Ramkhamhaeng
    Registriert seit
    19.07.10
    Ort
    Aralkum
    Beiträge
    9.896
    Tipps
    Achtung Spoiler:

    Zwei Ideen könnten dich weiter bringen: Entweder du nutzt eine Idee ähnlich dem Verachtfacher-Raum oder
    führst ein sog. Loop Unrolling durch. Dabei werden beispielsweise zwei Schritte (Addieren) zusammen ausgeführt.

Seite 6 von 16 ErsteErste ... 2345678910 ... LetzteLetzte

Berechtigungen

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