:...|>\rev...|>rev#,$#'sortby 1#behead
Попробуйте онлайн!
Объяснение
[0\|>:2%tmo*2 infixes[:...|>\rev...|>rev#,$#'sortby 1#behead]flatmap 0\,]
||answer||
JavaScript (ES6), 56 байт
[~>0\:2%\#,2*1-tr[...rep]flatmap,$sumonpref]
Попробуйте онлайн!
Прокомментировал
⎕IO←0
||answer||
⎕CY'dfns'⋄-0,∘∊1↓¨2to/Sׯ1*S←⍳,⊢
Попробуйте онлайн!
Вычисляет отрицательные совокупные суммы списка. def a(n: Int)={
lazy val s:Stream[Int]= 0#::Stream.from(0).map //Give the starting point and indexing scheme
{
x=>
{
val sign = 1-2*(Math.sqrt(x).toInt%2) //Determine whether we are adding or subtracting at the current index
s(x)+sign
}
}
s.take(n*n+1).toList //Take the desired values
}
, which is the first def a(n: Int)={lazy val s:Stream[Int]=0#::Stream.from(0).map{x=>s(x)+1 -2*(Math.sqrt(x).toInt%2)}
s.take(n*n+1).toList}
ряды
╗)SΘ█☼₧ΘP(
||answer||
Желе, 11 9 байт
_2+ỊrN×-*$)Ẏ - Main Link: n e.g. 4
) - for x in [1...n]: 1 2 3 4
_2 - subtract 2 from x -1 0 1 2
Ị - is x insignificant? 1 0 0 0
+ - add 0 0 1 2
N - negate x -1 -2 -3 -4
r - inclusive range [0,-1] [0,-1,-2] [1,0,-1,-2,-3] [2,1,0,-1,-2,-3,-4]
$ - last two links as a monad:
- - minus one -1 -1 -1 -1
* - raised to the power x -1 1 -1 1
× - multiply [0,1] [0,-1,-2] [-1,0,1,2,3] [2,1,0,-1,-2,-3,-4]
Ẏ - tighten [0,1,0,-1,-2,-1,0,1,2,3,2,1,0,-1,-2,-3,-4]
Попробуйте онлайн!
Как это работает
_2+ỊrN×-*$)Ẏ
||answer||
_2+ỊrN)N;¥/
Попробуйте онлайн!
Спасибо Οurous за -1 байт
Несмотря на то, что, оглядываясь назад, это становится очевидным, мне потребовалось некоторое время, чтобы прийти к такому выводу. …·∧ι⁻²ιι
which is ×∨﹪ι²±¹
когда I
is even and 0
когда F⊕N
is odd. Previous iterations where:
N Input as a number
⊕ Increment
F Loop over implicit range
² Literal 2
ι Current index
⁻ Subtract
ι Current index
∧ Logical And
ι Current index
…· Inclusive range
ι Current index
² Literal 2
﹪ Modulo
¹ Literal 1
± Negate
∨ Logical Or
× Multiply
I Cast to string and implicitly print
||answer||
Я никогда раньше не делал ничего подобного, но этот показался мне забавным. Я понимаю, почему люди используют эти «игровые» языки, поскольку 167 кажется намного выше, чем некоторые другие ответы. Но ты должен исходить из того, что знаешь.
F⊕NI×∨﹪ι²±¹…·∧ι⁻²ιι
Попробуйте онлайн!
:ṁoṡ₁ŀ⁰_₁⁰
*^⁰_1⁰
||answer||
Дж, 25 байт
-5 байт благодаря FrownyFrog!
def c(n):print([(-1)**j*(abs(j-i)-j)for j in range(n+1)for i in range(2*j)][:-n+1])
Попробуйте онлайн!
Дж, 30 байт
0-I-[0|I].
N-[H|T]-R:-N is -H*(-1)^N,A is N-1,A-[H|T]-R;I is H-(-1)^N,N-[I|[H|T]]-R.
N-O:-X is -N*(-1)^N,N-[X]-O.
Объяснение:
f=->n{ #Recursive approach
n<1?[0] #Init with 0 if n=0
:f[n-1] #else make a recursive call
+ #and append an array of numbers
[(r=*2-n..n) #Init r as splatted range from 2-n to n
.map(&:-@) #"-@" is unary minus, so this a fancy way to do map{|x|-x} for -1 byte
#For even n use this negated r, e.g. for n=4: [2, 1, 0, -1, -2, -3, -4]
,r] #For odd n use r directly, e.g. for n=3: [-1, 0, 1, 2, 3]
[n%2] #Odd/even selector
}
creates list 0..n
f=->n{n<1?[0]:f[n-1]+[(r=*2-n..n).map(&:-@),r][n%2]}
for each number in the list execute the verb in (...) and box the result (I need boxing because the results have different length)
f=->n{n<1?[0]:f[n-1]+(2-n..n).map{|x|-~0**n*x}}
find -1 to the @(n)interp1((t=0:n).^2,-t.*(-1).^t,0:n^2)
степень (-1 или 1)
0 % push 0
i: % read input as integer, push range
% stack: [0, [1 2 3]]
o % modulo 2, stack: [0, [1 0 1]]
Eq % double and decrement, stack: [0, [1 -1 1]]
G: % push input and range again
% stack: [0, [1 -1 1], [1 2 3]]
Eq % double and decrement,
% stack: [0, [1 -1 1], [1 3 5]]
Y" % run-length decoding
% stack: [0, [1 -1 -1 -1 1 1 1 1 1]]
Ys % cumulative sum
% stack: [0, [1 0 -1 -2 -1 0 1 2 3]]
h % horizontally concatenate
% end of program, automatically print the stack
make a list -n..n or n..-n, depending on the sign of the above
n=3
unbox
0i:oEqG:EqY"Ysh
find n^2 + 1
n->{var s="0";for(int i=0,r=0,d=1;i++<n;s+=" "+r,d=-d)for(r+=d;r!=i&r!=-i;r+=d)s+=" "+r;return s;}
and take so many numbers from the list
Попробуйте онлайн!