Dans: assez de mémoire et un entier positif N
Out: tableau N ^ N N-dimensionnel rempli de N, où N ^ N signifie N termes de N-by-N-by-N-by ...
Exemples:
1: [1]
qui est un tableau 1D (une liste) de longueur 1, contenant un seul 1
2: [[2,2],[2,2]]
qui est un tableau 2D (une table) à 2 lignes et 2 colonnes, rempli de 2
3: [[[3,3,3],[3,3,3],[3,3,3]],[[3,3,3],[3,3,3],[3,3,3]],[[3,3,3],[3,3,3],[3,3,3]]]
qui est un tableau 3D (un cube) avec 3 couches, 3 lignes et 3 colonnes, rempli avec 3s
4: [[[[4,4,4,4],[4,4,4,4],[4,4,4,4],[4,4,4,4]],[[4,4,4,4],[4,4,4,4],[4,4,4,4],[4,4,4,4]],[[4,4,4,4],[4,4,4,4],[4,4,4,4],[4,4,4,4]],[[4,4,4,4],[4,4,4,4],[4,4,4,4],[4,4,4,4]]],[[[4,4,4,4],[4,4,4,4],[4,4,4,4],[4,4,4,4]],[[4,4,4,4],[4,4,4,4],[4,4,4,4],[4,4,4,4]],[[4,4,4,4],[4,4,4,4],[4,4,4,4],[4,4,4,4]],[[4,4,4,4],[4,4,4,4],[4,4,4,4],[4,4,4,4]]],[[[4,4,4,4],[4,4,4,4],[4,4,4,4],[4,4,4,4]],[[4,4,4,4],[4,4,4,4],[4,4,4,4],[4,4,4,4]],[[4,4,4,4],[4,4,4,4],[4,4,4,4],[4,4,4,4]],[[4,4,4,4],[4,4,4,4],[4,4,4,4],[4,4,4,4]]],[[[4,4,4,4],[4,4,4,4],[4,4,4,4],[4,4,4,4]],[[4,4,4,4],[4,4,4,4],[4,4,4,4],[4,4,4,4]],[[4,4,4,4],[4,4,4,4],[4,4,4,4],[4,4,4,4]],[[4,4,4,4],[4,4,4,4],[4,4,4,4],[4,4,4,4]]]]
5 et 6: S'il vous plaît voir l'une des réponses.
Réponses:
Python , 32 octets
Essayez-le en ligne!
Crée une chaîne comme
"[[[n]*n]*n]*n"
avecn
multiplcations et l'évalue en tant que code Python. Étant donné que l'évaluation se produit dans l'étendue de la fonction, le nom de la variable correspondn
à l'entrée de la fonction.la source
J, 4 octets
Essayez-le en ligne!
Explication
la source
$~$~
ce qui est équivalent en se répétant également$~$~
traduit en anglais ... ARGENT, gagnez plus, ARGENT, gagnez plus ...APL (Dyalog APL) , 4 octets
Essayez-le en ligne!
la source
⍴⍨⍴⍨
travaille aussi, tout en regardant plus froid.Mathematica,
22 à20 octetsla source
R, 26
C'est la réponse évidente, mais peut-être qu'il y a quelque chose d'intelligent?
la source
scan()
nécessaire?n=scan();
parfunction(n)
mais cela le rend plus long.n
affectation à l' intérieur dearray
:array(n<-scan(),rep(n,n))
.JavaScript (ES6),
4440 octetsDémo
Afficher l'extrait de code
la source
Haskell , 52 octets
Essayez-le en ligne!
Inspiré par la réponse de @ nimi , mais utilisant davantage de fonctions prédéfinies.
iterate
et à la!!
place d'une fonction d'aide récursive.filter(>'"').show
pour formater une liste de chaînes, puis supprimer les"
caractères supplémentaires .la source
05AB1E (ancien) ,
65 octets-1 merci à Kevin Cruijssen
Essayez-le en ligne!
la source
D
peut être supprimé car l'entrée est utilisée de manière implicite (vous ne savez pas s'il s'agissait de quelque chose lorsque vous avez posté la réponse, mais vous n'avez plus besoin de l'expliciteD
maintenant).Octave,
3533252320 octetsEssayez-le en ligne!
Merci à @LuisMendo d'économiser 8 octets
Essayez-le en ligne!
Réponse précédente:
Essayez-le en ligne!
la source
Haskell, 62 octets
Exemple d'utilisation:
f 2
->"[[2,2],[2,2]]"
. Essayez-le en ligne! .Le système de types strict de Haskell empêche une fonction de retourner des listes imbriquées de profondeurs différentes. Je construis donc le résultat sous forme de chaîne.
Comment ça fonctionne:
la source
f n=iterate(filter(>'#').show.(<$[1..n]))(show n)!!n
.(#0)=show
? Pas très familier avec Haskell(#)0=show
, mais toutes les définitions d'une fonction doivent avoir le même nombre d'arguments. La deuxième ligne (n#l='['...
) a besoin de deux arguments, la première ligne doit également avoir deux arguments.MATL, 8 octets
Essayez-le sur MATL Online (j'ai ajouté un code indiquant la taille réelle de la sortie, car toutes les sorties à n dimensions en MATL sont affichées sous forme de matrices 2D où toutes les dimensions> 2 sont aplaties dans la deuxième dimension).
Explication
la source
Zy
à la fin du code, cela indique la taille réellePython 2 , 36 octets
-2 octets grâce à @CalculatorFeline
Essayez-le en ligne!
la source
~-n
==(n-1)
.CJam , 12 octets
Essayez-le en ligne!
Explication
la source
Gelée , 5 octets
Essayez-le en ligne!
Comment?
la source
Java
979695 octetsUngolfed:
la source
i<=1
pari<2
?(n,i)->{...}
JavaScript (ES6), 38 octets
La version gourmande en mémoire de cela est 45 octets:
la source
Utilitaires Bash + GNU, 117 octets
Essayez-le en ligne!
Le programme compte essentiellement de 0 à (n ^ n) -1 en base n, où n est l’entrée. Pour chaque nombre n base k dans le décompte, il effectue les opérations suivantes:
(La valeur n = 1 nécessite l'ajout de crochets en guise de cas spécial. Cette valeur d'entrée génère également une sortie vers stderr, qui peut être ignorée selon les règles PPCG standard.)
Peut-être y a-t-il un moyen plus court de mettre en œuvre cette idée.
Échantillon échantillon:
la source
Gelée , 4 octets
Essayez-le en ligne!
Même chose mais avec une seule monade et pas besoin de séparateur de chaîne:
4 octets
la source
Gelée , 5 octets
Essayez-le en ligne!
Explication
la source
Python 3 ,
57535038 octetsEssayez-le en ligne!
-4 octets grâce à @CalculatorFeline
34 octets:
Doit être appelé comme
f(4,4)
la source
c>1
parc
pour sauvegarder 1 octet. (Markdown, arrêtez de dédupliquer des espaces sur`
s)c>0
dans ce cas particulier.<space>n
. Problème résolu et bonus - plus d'octets enregistrés! : D (Donc, les espaces à la fin du code en ligne est possible, mais pas le début? C'est étrange ...) TIO linkRuby,
2826 octetsMerci à Cyoce d' avoir économisé 2 octets!
Volé sans vergogne de l' excellente réponse de xnor .
la source
Ruby, 27 octets
Un octet de plus mais en utilisant une approche différente au lieu de l'astuce 'eval' de la merveilleuse réponse Python de xnor.
la source
Perl 6 , 25 octets
Commence par
n
, et applique de manière itérative les temps de transformation "répéter n fois" enn
créant chaque fois un niveau supplémentaire d'List
imbrication.Essayez-le en ligne!
la source
$_
plutôt pour enregistrer un octet$_
comme paramètre du bloc interne, je ne peux donc pas l'utiliser également comme paramètre du bloc externe.$n
et$_
toujours avoir la même valeur. Essayez-le en ligne!PHP,
7062 octetsC'est le plus simple que je puisse trouver.
Prend l'entrée en tant que premier argument et affiche le tableau résultant à l'écran.
Merci à @ user59178 de m'avoir économisé 8 octets !
la source
$l
. Déposer le$i=0,
& remplacer$l
par$n
enregistre 7 octets. Un octet supplémentaire peut être sauvegardé en n'assignant pas$F
, en assignant$n
dans le conditionnel et en utilisant un ternaire$F?:$n
dans learray_fill()
Clojure, 36 octets
Itère une fonction qui répète ses
n
temps d' argument , elle produit une séquence infinie de tels éléments et prend ensuite sonn
élément th.Voir en ligne
la source
Rebol, 45 octets
la source
Lot, 141 octets
Batch n'a pas réellement de tableaux, donc ceci affiche simplement la représentation sous forme de chaîne d'un tableau. Explanation: Les deux premières lignes constituent un motif répété de
N
.
s séparé parN-1
,
s dans la variablet
. La quatrième ligne utilise ensuite ce paramètre comme modèle de substitutionN
pour créer leN
tableau à deux dimensions. Le doublecall
est nécessaire en raison de la façon dont les déclarationsfor
etset
fonctionnent. Tout d'abord, lafor
commande substitue des variables. En fait, tous mes%
signes sont doublés, cela ne fait donc que les annuler tous, ce qui entraînecall call set s=[%%t:.=%s%%%]
. Il répète ensuite lesN
temps de relevé résultants . A chaque fois, lacall
commande substitue des variables. À ce stade, las
variable ne possède qu'un seul ensemble de%
s, donc il est substitué, résultant en (par exemple)call set s=[%t:.=[2,2]%]
. L'appel interne substitue ensuite lat
variable, ce qui a pour résultat (par exemple) l'set s=[[2,2],[2,2]]
exécution de l'affectation souhaitée. La valeur finale des
est ensuite imprimée.la source
Clojure, 49 octets
Le plus court exemple de Clojure, mais je me suis amusé à citer et à ne pas citer.
la source
I , 7 octets
Je l'ai reçu de mon collègue, le créateur de I.
#Bb
la copie#
fonction B ound à sur b rouverhp
h ook l'argument (droite) de la p de la fonction de tournesol (répétition)h~
h ook l'argument à la gauche~
(sur la totalité de la fonction résultante)Essayez-le en ligne!
la source
Common Lisp,
128 102 9579 octetsEssayez-le en ligne!
la source