Étant donné l'amplitude et la période d'une onde, imprimez l'onde. Voir l'exemple de sortie pour plus de détails. Le nombre total de formes d'onde est égal à la période et la hauteur de chaque vague est égale à l'amplitude. L'amplitude et la période sont inférieures à 10. Vous pouvez ignorer les espaces de fin mais pas les espaces de tête.
Sample Input
3 2
Sample Output
3 3
232 232
12321 12321 12321 12321
232 232
3 3
ascii-art
tag. Mais la partie artistique n'est pas tout à fait présente, peut-être qu'il devrait y avoir une autre balise pour les graphiques ascii?Réponses:
Dyalog APL,
4340 octets{⍉⊃⍪/⍺⍴⊂(⌽⍪⊢)(n,1-n←2×⍵)↑↑b⍴¨⍕¨b←a,1↓⌽a←⍳⍵}
{⍉⊃⍪/⍺⍴⊂(⌽⍪⊢)n(1-n←2×⍵)↑↑⍴∘⍕¨⍨a,1↓⌽a←⍳⍵}
( Merci, Moris Zucca )Il s'agit d'une fonction dyadique avec l'amplitude comme argument de droite (
⍵
) et la période comme argument de gauche (⍺
). Un programme qui lit les entrées utilisateur prendrait le même nombre de caractères.S'inspirant de la réponse CJam de Martin Büttner :
la source
(n,1-n←2×⍵)
àn(1-n←2×⍵)
.Python - 135 caractères
Cette version avec un espace de tête est de 132 caractères
Il peut également être considérablement plus court s'il n'est pas nécessaire de lire depuis stdin ou même si l'entrée est séparée par des virgules
Pour une entrée séparée par des virgules, la première ligne devient
la source
APL (77)
la source
J, 87 caractères
En tant que programme:
fonctionne comme ceci:
C'est 5 caractères de plus si nous en avons besoin en fonction F:
la source
Haskell (
226225222220214)Mon essai à Haskell:
Désolé les gars,
(€)
est optimisé, cela prend trois octets pour un € au lieu de! qui ne prend qu'un octet chacun.Voici une "version beta", qui ne satisfait pas aux spécifications:
la source
CJam, 45 octets
CJam est beaucoup plus jeune que ce défi, donc cette réponse n'est pas éligible pour la coche verte (qui devrait être mise à jour pour la réponse APL de marinus). C'était quand même un petit exercice amusant.
Testez-le ici.
L'idée est de générer une demi-période verticalement , comme ceci:
(Plus la ligne vide suivante que SE avale). Ceci est ensuite dupliqué, chaque ligne est inversée et la seconde moitié de la période est ajoutée. Ensuite, le tout est répété par le nombre de périodes, et finalement la grille est transposée pour orienter l'onde le long de l'horizontale.
la source