Drucken Sie die Welle unter Berücksichtigung der Amplitude und Periode für eine Welle. Weitere Informationen finden Sie in der Beispielausgabe. Die Gesamtzahl der Wellenformen entspricht der Periode und die Höhe jeder Welle entspricht der Amplitude. Amplitude und Periode sind kleiner als 10. Sie können die nachgestellten Leerzeichen ignorieren, jedoch nicht die führenden Leerzeichen.
Sample Input
3 2
Sample Output
3 3
232 232
12321 12321 12321 12321
232 232
3 3
ascii-art
Schlagwort. Aber der Kunstteil ist nicht ganz vorhanden, sollte es vielleicht einen anderen Tag für ASCII-Grafiken geben?Antworten:
Dyalog APL,
4340 Bytes{⍉⊃⍪/⍺⍴⊂(⌽⍪⊢)(n,1-n←2×⍵)↑↑b⍴¨⍕¨b←a,1↓⌽a←⍳⍵}
{⍉⊃⍪/⍺⍴⊂(⌽⍪⊢)n(1-n←2×⍵)↑↑⍴∘⍕¨⍨a,1↓⌽a←⍳⍵}
( Danke, Moris Zucca )Dies ist eine dyadische Funktion mit der Amplitude als rechtem Argument (
⍵
) und der Periode als linkem Argument (⍺
). Ein Programm, das Benutzereingaben liest, benötigt die gleiche Anzahl von Zeichen.Zeichnung Inspiration von Martin Büttner CJam Antwort :
quelle
(n,1-n←2×⍵)
zun(1-n←2×⍵)
.Python - 135 Zeichen
Diese Version mit einem führenden Leerzeichen ist 132 Zeichen
Sie kann auch erheblich kürzer sein, wenn das Lesen von stdin nicht erforderlich ist oder wenn die Eingabe durch Kommas getrennt ist
Bei kommagetrennten Eingaben wird die erste Zeile
quelle
APL (77)
quelle
J, 87 Zeichen
Als Programm:
läuft so:
Es sind noch 5 Zeichen, wenn wir es als Funktion F brauchen:
quelle
Haskell (
226225222220214)Mein Versuch in Haskell:
Sorry Leute,
(€)
ist weg optimiert, es dauert drei Bytes für einen Euro im Gegensatz zu! Das dauert nur ein Byte.Hier ist eine "Beta-Version", die die Spezifikation nicht erfüllt:
quelle
CJam, 45 Bytes
CJam ist viel jünger als diese Herausforderung, daher ist diese Antwort nicht für das grüne Häkchen geeignet (das übrigens auf die APL-Antwort von Marinus aktualisiert werden sollte). Dies war jedoch immer noch eine lustige kleine Übung.
Teste es hier.
Die Idee ist, eine halbe Periode vertikal zu erzeugen :
(Plus die nächste leere Zeile, die SE schluckt). Dies wird dann dupliziert, jede Zeile wird umgekehrt und die zweite Hälfte der Periode wird angehängt. Dann wird das Ganze durch die Anzahl der Perioden wiederholt, und schließlich wird das Gitter transponiert, um die Welle entlang der Horizontalen auszurichten.
quelle