Dado um número inteiro n
como entrada, retorne uma lista contendo tempos n
repetidos n
. Por exemplo, o programa pegaria 5
e transformaria em [5,5,5,5,5]
. Os elementos precisam ser inteiros, não cadeias. Não são permitidas funções internas que realizam a tarefa.
Isso é código-golfe , então as regras padrão se aplicam.
code-golf
number
array-manipulation
integer
Bruno E
fonte
fonte
built-in
.*
operador do Python está ok? O que é um exemplo de um built-in que não está bem?Respostas:
Geléia , 1 byte
Experimente online!
Observe que isso não é o “
n
n
horário de repetição ” interno - sua função é mais geral que isso. Por exemplo,4,5,6x1,2,3
igual[4, 5, 5, 6, 6, 6]
. Dado apenas um argumento, Jelly só acontece de usá-lo como tanto da esquerda como argumento para a direita para o link fornecido, mas essa funcionalidade não é inerente ax
.Se isso não contar, existem várias alternativas divertidas de 2 bytes:
etc.
fonte
x
"fez todo o trabalho", mas certamente não - há um "0 bytes" implícito de lógica de análise de link e coerção de matriz para transformar isso emrepeat([n], n)
, e é exatamente isso que outras respostas Faz.ṁ
e,ẋ
portanto, essa resposta pode ser qualquer uma das três. Não há três embutidos (seria de esperar) para "n
n
tempos de repetição ", portanto, eles não podem ser "embutidos" para isso.Python 3 , 14 bytes
Experimente online!
fonte
[n]*n
?Linguagem de script da operação Flashpoint ,
5046 bytesLigue para:
Resultado:
fonte
i--
, e+=
nisso?APL (Dyalog) , 2 bytes
Cinco soluções igualmente curtas. Os dois últimos são cortesia de Zacharý .
Experimente online!
⍴
ciclicamente r eshape⍨
autoExperimente online!
/
replicar⍨
autoExperimente online!
\
expandir⍨
autoExperimente online!
⌿
replicar ao longo do primeiro (e único) eixo⍨
auto⍀
expandir ao longo do primeiro (e único) eixo⍨
autoExperimente online!
fonte
⌿⍨
e⍀⍨
trabalho.⍨
by typing ``selfie.Mathematica, 10 bytes
fonte
Proton, 8 bytes
Try it online!
fonte
Octave, 12 bytes
Try it online!
fonte
~
is thenot
operator that converts 1:n to an array of0
s of size n. You can use!
instead of it.JavaScript (ES6), 19 bytes
Try it
fonte
...
- whatever next?!Pyth, 2 bytes
Test suite.
fonte
Haskell, 13 bytes
Try it online! Usage:
f 5
yields[5,5,5,5,5]
. Forn=5
,[1..n]
yields the list[1,2,3,4,5]
.n<$
replaces each element of this list withn
.fonte
join replicate
join
is not part of Prelude and thus requiers a lengthyimport Control.Monad
, which rarely makes it useful for golfing.R, 18 bytes
Try it online!
fonte
rep(n<-scan(),n)
too close to a builtin?05AB1E, 2 bytes
Try it online!
fonte
.D)
.Dodos, 76 bytes
Try it online!
Explanation:
f
is an alias fordab
(tail).s
is subtraction, as explained on the wiki: (x, y) → (0, y−x) when x ≤ y.t
maps (a, b, c…) to (b+c+…, a+b+c+…).f s t
maps (a, b, c…) to a. This is our “head” function.d
dips only the head of its argument: (a, b, c…) → (|a−1|, b, c…)r
is the main repetition logic. We map (a, b) to (*r(|a−1|, b), b).For example, r(4, 7) will evaluate as
Finally, we define
2
, which maps n → (n, n), and definemain
asf f r 2
, computing r(n, n) and chopping off the first two elements.fonte
Japt, 2 bytes
Test it
Explanation
Implicit input of integer
U
. Generate an array of integers from0
toU-1
. Fill it withU
. Implicit output of resulting array.fonte
TeX, 81 bytes
Usage
fonte
Husk, 2 bytes
Try it online!
Polite alternative (3 bytes)
Try it online!
fonte
Haskell (14 bytes)
Thanks to @nimi, I don't need any import anymore. Yay!
It's a function that takes an integer argument; for example, the following returns
[5,5,5,5,5]
:fonte
id=<<replicate
? It's also 14 bytes but doesn't need the import.Java (OpenJDK 8),
5048 bytesTry it online!
-2 bytes thanks to @Jakob
Inspired by the comments in @OlivierGrégoire's post, and optimized a little further. Takes an integer input, creates an IntStream of
n
elements, then maps each element ton
and returns it.fonte
java.util.Arrays.stream(new int[n])
.Perl 5,
1814 bytes-4 bytes thanks to @DomHastings
Try it online!
Is
x
a builtin that does the entire task? Sort of? Not really? Rules unclear?Edit: Yeah, probably it's fine.
fonte
$_[0]
to@_
! Also the second can be"@_"
I think...$_=$_ x$_
withperl -pe
?x
does string repetition, not list repetition, unless the left operand is in parentheses (or is aqw
operator) and thex
is evaluated in list context. And of course$_
is a scalar, not a list.J, 2 bytes
Same as the APL answer: reflexively shape the input. In other words:
fonte
Brainbash, 39 bytes
Try it online!
Prints
N
N
times. Works by generating 32, taking input, then duplicating the input twice, then output the first for each 1 in the second.fonte
C (gcc), 55 bytes
Try it online!
Returns a list of
k
integers.fonte
eax
for locals. Go figure.*f(k){int r[k],
instead ofint*f(k){int*r=malloc(k*4),
Röda, 10 bytes
Try it online!
Explanation:
fonte
[_]*_
=[_1]*_2
. Because the first underscore is the first, it has automatically the number 1.Groovy, 9 bytes
Try it online!
Perhaps the most competitive groovy answer I've done to date.
fonte
brainfuck, 16 bytes
Try it online!
The breakdown:
As I'm sure you're aware, brainfuck takes input and output values as ASCII characters. So a
!
is represented as the value 33.fonte
Coreutils, sed, 14 bytes
As a zsh function,
2019 bytes:Try it online!
fonte
yes $1|sed $1q
?declare -i
integer variables. But it also has to be an array. I'm not sure bash even supports an integer array (likeeval declare -ia "$1"
to use the first function arg as the name of an array return value.) I upvoted this because it follows the spirit of the question; I doubt the question meant to exclude languages that don't really have integer lists / arrays.MATL,
43 bytesTry it online!
Explanation:
fonte
Java (OpenJDK 8),
5856 bytesTry it online!
-2 bytes thanks to @KevinCruijssen
fonte
n->{int a[]=new int[n],i=n;for(;i-->0;)a[i]=n;return a;}
IntStream.generate(() -> n).limit(n)
but decided it wasn't worth typing up and upvoted this instead :)cQuents v0, 3 bytes
Try it online!
Explanation
fonte
&
instead of::
Swift 3, 29 bytes
Try it here!
Swift 3, 30 bytes
Try it here!
fonte
Array.init
. Just assign it to a variable with a type alias, and boom:let f: (Int, Int) -> [Int] = Array.init; print(f(5, 5))