Les rectangles ont cette belle propriété - un rectangle se compose d’exactement caractères!
Une propriété plus intéressante est que les rectangles peuvent être bien alignés dans une table de multiplication - par exemple, une table :
# ## ###
# ## ###
# ## ###
# ## ###
# ## ###
# ## ###
Votre défi consiste à, étant donné un nombre ( n> 1 ), générer une table de multiplication formatée n \ times n .
Règles
- Vous pouvez prendre l’entrée un au dessus ou au dessous de
- Les règles d'E / S par défaut s'appliquent
- Vous pouvez choisir n'importe quel caractère non-blanc pour représenter les blocs; tout autre caractère (bien que les nouvelles lignes soient spéciales) est considéré comme un espace. Le caractère choisi peut être différent pour différentes entrées, mais doit être identique tout au long de la saisie.
- Le résultat peut avoir des caractères inutiles, tant que la table est alignée et qu'il n'y a aucune occurrence du caractère choisi qui ne fasse pas partie de la sortie requise.
- Les séparateurs doivent avoir 1 caractère de largeur / hauteur et les rectangles doivent être remplis (c.-à-d. Pas de séparateurs entre leurs caractères)
- Les lignes vides peuvent être vides, le remplissage n'est pas obligatoire
- Le résultat peut être une chaîne, une matrice, un vecteur de lignes, un tableau de tableaux de caractères ou n'importe quoi 2Dish
- Vous pouvez également générer une matrice / un vecteur de vecteurs / tout élément fini, mais l'arrière-plan et le premier plan doivent être deux nombres distincts (qui peuvent varier en entrée, mais pas dans une sortie) et aucun autre nombre ne peut être présent. Les caractères supplémentaires qui l'entourent sont également autorisés avec ce format (bien qu'ils doivent correspondre au numéro d'arrière-plan)
- C'est code-golf , la réponse la plus courte en octets, par langue, gagne!
Exemples
Pour l’entrée 2
, une sortie ascii-art valide, avec le caractère ∙
, est:
∙ ∙∙
Result: ∙ ∙∙.
∙ ∙∙
oui, le point est juste pour vous embrouiller.
Une autre réponse valable sous forme de matrice de nombres, 2 étant le numéro de fond et 9 le premier plan:
[[9,2,9,9,2,2],
[2,2,2,2,2,2],
[9,2,9,9,2,2],
[9,2,9,9,2,2]]
Un exemple de sortie non valide serait
# # #
# # #
# # #
comme les rectangles ont des séparateurs entre eux.
Exemple de sorties pour :
# ## ### ####
# ## ### ####
# ## ### ####
# ## ### ####
# ## ### ####
# ## ### ####
# ## ### ####
# ## ### ####
# ## ### ####
# ## ### ####
1 0 1 1 0 1 1 1 0 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 1 1 0 1 1 1 0 1 1 1 1
1 0 1 1 0 1 1 1 0 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 1 1 0 1 1 1 0 1 1 1 1
1 0 1 1 0 1 1 1 0 1 1 1 1
1 0 1 1 0 1 1 1 0 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 1 1 0 1 1 1 0 1 1 1 1
1 0 1 1 0 1 1 1 0 1 1 1 1
1 0 1 1 0 1 1 1 0 1 1 1 1
1 0 1 1 0 1 1 1 0 1 1 1 1
Réponses:
Haskell , 43 octets
Essayez-le en ligne!
Une approche intelligente de Ørjan Johansen produisant avec des 0 et des 1, générant chaque
10...00
partie comme représentation sous forme de chaîne d’une puissance de 10.Haskell , 49 octets
Essayez-le en ligne!
Génère un motif comme
[1,0,1,0,0,1,0,0,0,...]
, puis crée une 2D en prenant le nombremin
de paires. L'étrangeté sans points sauve 2 octets sur le plus lisible:Essayez-le en ligne!
la source
flip(map.max)=mapM max
.(->) b
, puismapM :: (a -> b -> c) -> [a] -> b -> [c]
.flip(map.max)
àmapM max
R ,
5654433630 octetsEssayez-le en ligne!
Prend l'entrée un au dessus den (retourne donc la matrice 3x3 pour n = 4 ). Renvoie une matrice de 1 s (au premier plan) et de 0 s (arrière-plan) avec une ligne / colonne supplémentaire de zéros au premier plan.
Merci à digEmAll pour -7 octets.
la source
JavaScript (ES6),
73 7269 octetsRenvoie une chaîne composée de 1, d'espaces et de sauts de ligne.
Essayez-le en ligne!
JavaScript (ES7),
87 8382 octets3 octets sauvés grâce à @dzaima
Retourne une matrice binaire, qui est construite cellule par cellule.
Essayez-le en ligne!
Comment?
La largeurw de la matrice est donnée par:
(NB: comme le permettent les règles de challenge, nous produisons une matrice de largeurw + 1 place.)
De même, la cellule située en( X, Y) est vide si le quadratique suivant admet une racine entière pour k = X ou k = Y :
dont le déterminant est:
la source
MATL,
14 à10 octetsCette réponse utilise
1
pour les blocs et0
pour le fondEssayez-le sur MATL Online
Explication
la source
Gelée , 8 octets
Essayez-le en ligne!
la source
APL (Dyalog Unicode) ,
121012 octets SBCSEssayez-le en ligne!
Edit: -2 octets de ngn. +2 octets car les réponses précédentes étaient invalides (avec une idée grâce à ngn et dzaima).
Explication
La sortie devrait ressembler à:
la source
⎕
pour éviter les{
}
Gelée , 7 octets
Essayez-le en ligne!
Explication
R
Ṭ
s’arrête au plus grand élément indiqué dans l’entrée, il faut donc tracer une ligne à droite et en bas.) Les espaces entre les nombres triangulaires sont les entiers consécutifs, donc les blocs rectangulaires formés par les espaces entre les lignes se terminent comme les tailles demandées par la question; et l'utilisation d'une opération OU (dans ce cas, au niveau des bits) permet aux lignes de se croiser correctement.la source
05AB1E , 9 octets
Code:
Utilise le 05AB1E -encoding . Essayez-le en ligne! ou utilisez la version joliment imprimée .
Explication:
la source
C # (compilateur interactif Visual C #) ,
9695 octets-1 octet grâce à l' incarnation de l'ignorance
Essayez-le en ligne!
la source
n--
dans lanew string
section?Python 2 , 67 octets
Essayez-le en ligne!
Imprime les lignes vides pour les lignes vides, ce que le défi permet.
Même longueur (avec l'entrée une ci-dessus
n
):Essayez-le en ligne!
la source
Wolfram Language (Mathematica) , 41 octets
Essayez-le en ligne!
la source
Charbon de bois , 18 octets
Essayez-le en ligne! Le lien est vers la version verbeuse du code. Explication:
la source
C # (.NET Core) ,
208155 octetsEssayez-le en ligne!
Une version beaucoup révisée grâce aux différentes personnes utiles (voir les commentaires).
la source
PowerShell ,
42 ans40 octets-2 octets grâce à mazzy .
Essayez-le en ligne!
la source
Java 11, 109 octets
Port de @ ASCII uniquement réponse C # .NET .
Essayez-le en ligne.
la source
repeat
méthode.APL + WIN, 29 octets
Explication:
Exemple:
la source
J , 17 octets
Essayez-le en ligne!
la source
I.
astuce!Souris 2002 , 79 octets
Abuser des macros de la souris pour répéter la fonctionnalité.
Essayez-le en ligne!
la source
Ruby , 55 octets
Essayez-le en ligne!
Comment?
Commencez par créer la première ligne, puis parcourez ses caractères. Imprimer la ligne entière si le caractère est '#', sinon, imprimer le caractère unique (qui est un espace)
la source
Flak cérébrale , 170 octets
Essayez-le en ligne!
la source
Perl 6 ,
3533 octetsEssayez-le en ligne!
Anonymous Callable qui prend un nombre et imprime la table de multiplication avec
*
s avec une nouvelle ligne.Explication:
la source
Haskell,
69 à68 octetsRetourne une matrice de nombres.
Essayez-le en ligne!
Variantes de
f
avec le même nombre d'octets:la source
Stax , 7 octets
Exécuter et déboguer
Le personnage choisi est un backtick. (Comment codez-vous le format dans Markdown?)
Cela signifie
a
etb
sont considérés comme des espaces blancs superflus.la source
MathGolf , 20 octets
Essayez-le en ligne!
MathGolf a vraiment besoin de plus de fonctionnalités pour scinder des listes et créer des listes 2D.
Explication
la source
Encre ,
151152151 octetsEssayez-le en ligne!
C'est une bonne chose que les règles autorisent les personnages excédentaires.
Edit: +1: Espacement fixe. De plus, affichez en utilisant @ (qui n'a pas besoin d'être échappé) au lieu de # (qui le fait)
Edit: -1: Apparemment, ce correctif signifiait également que je n'avais plus besoin d'une période de fin pour forcer une nouvelle ligne sur les lignes non vides. Soigné.
la source
C ++,
170156 octetsMerci à dzaima
la source
SmileBASIC,
8377 octetsSortie graphique. L'entrée est
N-1
la source
Python 3 ,
8883 octets-5 octets de Jo King
Essayez-le en ligne!
la source
l
dehors de la boucle. Essayez-le en ligne!Perl 6, 63 octets
la source
.join(' ')
ne fait rien,'#'
peut être à la\*
place, les chaînes de nouvelle ligne peuvent utiliser des nouvelles lignes littérales, les deuxl.map(str x*)
peuvent être à la(str Xx l)
place. 38 octetsC (gcc) ,
108104 octets-4 octets grâce à ceilingcat
Essayez-le en ligne!
la source