Make me a metasequenceMake a pattern alternateGenerate Loopy puzzlesMake a one sequenceA register calculator challengeGenerate E-series of preferred numbersIncrementing Gray CodesDraw the Ingress glyphsExponentiation SequenceMake an n-JugglerIndent your code according to Fibonacci
Is every open circuit a capacitor?
What does each site of a vanilla 9.1 installation do?
Is the NES controller port identical to the port on a Wii remote?
How do you say “my friend is throwing a party, do you wanna come?” in german
Why do phishing e-mails use faked e-mail addresses instead of the real one?
What is the difference between a forward slip and a side slip?
Can an earth elemental drown/bury its opponent underground using earth glide?
Can I solder 12/2 Romex to extend wire 5 ft?
Citing contemporaneous (interlaced?) preprints
Where is the fallacy here?
Split a number into equal parts given the number of parts
Where is the line between being obedient and getting bullied by a boss?
In which way proportional valves are controlled solely by current?
Should I use HTTPS on a domain that will only be used for redirection?
School performs periodic password audits. Is my password compromised?
Lock enemy's y-axis when using Vector3.MoveTowards to follow the player
Did Amazon pay $0 in taxes last year?
Do AL rules let me pick different starting equipment?
How to fix my table, centering of columns
Book about a time-travel war fought by computers
Why did the Cray-1 have 8 parity bits per word?
Every subset equal to original set?
Are there other characters in the Star Wars universe who had damaged bodies and needed to wear an outfit like Darth Vader?
Create chunks from an array
Make me a metasequence
Make a pattern alternateGenerate Loopy puzzlesMake a one sequenceA register calculator challengeGenerate E-series of preferred numbersIncrementing Gray CodesDraw the Ingress glyphsExponentiation SequenceMake an n-JugglerIndent your code according to Fibonacci
$begingroup$
Background
For this challenge, a 'metasequence' will be defined as a sequence of numbers where not only the numbers themselves will increase, but also the increment, and the increment will increase by an increasing value, etc.
For instance, the tier 3 metasequence would start as:
1 2 4 8 15 26 42 64 93 130 176
because:
1 2 3 4 5 6 7 8 9 >-|
↓+↑ = 7 | Increases by the amount above each time
1 2 4 7 11 16 22 29 37 46 >-| <-|
| Increases by the amount above each time
1 2 4 8 15 26 42 64 93 130 176 <-|
Challenge
Given a positive integer, output the first twenty items of the metasequence of that tier.
Test cases
Input: 3 Output: [ 1, 2, 4, 8, 15, 26, 42, 64, 93, 130, 176, 232, 299, 378, 470, 576, 697, 834, 988, 1160 ]
Input: 1 Output: [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 ]
Input: 5 Output: [ 1, 2, 4, 8, 16, 32, 63, 120, 219, 382, 638, 1024, 1586, 2380, 3473, 4944, 6885, 9402, 12616, 16664 ]
Input: 13 Output: [ 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16383, 32752, 65399, 130238, 258096, 507624 ]
As you may realise, the first $t+1$ items of each sequence of tier $t$ are the first $t+1$ powers of 2...
Rules
- Standard loopholes apply
- This is code-golf, so shortest answer in bytes wins
code-golf math sequence subsequence
$endgroup$
|
show 5 more comments
$begingroup$
Background
For this challenge, a 'metasequence' will be defined as a sequence of numbers where not only the numbers themselves will increase, but also the increment, and the increment will increase by an increasing value, etc.
For instance, the tier 3 metasequence would start as:
1 2 4 8 15 26 42 64 93 130 176
because:
1 2 3 4 5 6 7 8 9 >-|
↓+↑ = 7 | Increases by the amount above each time
1 2 4 7 11 16 22 29 37 46 >-| <-|
| Increases by the amount above each time
1 2 4 8 15 26 42 64 93 130 176 <-|
Challenge
Given a positive integer, output the first twenty items of the metasequence of that tier.
Test cases
Input: 3 Output: [ 1, 2, 4, 8, 15, 26, 42, 64, 93, 130, 176, 232, 299, 378, 470, 576, 697, 834, 988, 1160 ]
Input: 1 Output: [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 ]
Input: 5 Output: [ 1, 2, 4, 8, 16, 32, 63, 120, 219, 382, 638, 1024, 1586, 2380, 3473, 4944, 6885, 9402, 12616, 16664 ]
Input: 13 Output: [ 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16383, 32752, 65399, 130238, 258096, 507624 ]
As you may realise, the first $t+1$ items of each sequence of tier $t$ are the first $t+1$ powers of 2...
Rules
- Standard loopholes apply
- This is code-golf, so shortest answer in bytes wins
code-golf math sequence subsequence
$endgroup$
2
$begingroup$
I assume you mean 20 terms, not digits?
$endgroup$
– Quintec
2 days ago
4
$begingroup$
By the way, the tier three metasequence is OEIS A000125
$endgroup$
– Embodiment of Ignorance
2 days ago
6
$begingroup$
You may want to clarify if solutions have to work for input 20 or greater.
$endgroup$
– FryAmTheEggman
2 days ago
4
$begingroup$
Can we choose to 0-index (so, output tier 1 for input0, tier 2 for input1, etc.)?
$endgroup$
– Lynn
2 days ago
1
$begingroup$
@MilkyWay90, it's not very clear what you mean: 219 (from level 5) only occurs in Pascal's triangle as $binom2191$ and $binom219218$.
$endgroup$
– Peter Taylor
yesterday
|
show 5 more comments
$begingroup$
Background
For this challenge, a 'metasequence' will be defined as a sequence of numbers where not only the numbers themselves will increase, but also the increment, and the increment will increase by an increasing value, etc.
For instance, the tier 3 metasequence would start as:
1 2 4 8 15 26 42 64 93 130 176
because:
1 2 3 4 5 6 7 8 9 >-|
↓+↑ = 7 | Increases by the amount above each time
1 2 4 7 11 16 22 29 37 46 >-| <-|
| Increases by the amount above each time
1 2 4 8 15 26 42 64 93 130 176 <-|
Challenge
Given a positive integer, output the first twenty items of the metasequence of that tier.
Test cases
Input: 3 Output: [ 1, 2, 4, 8, 15, 26, 42, 64, 93, 130, 176, 232, 299, 378, 470, 576, 697, 834, 988, 1160 ]
Input: 1 Output: [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 ]
Input: 5 Output: [ 1, 2, 4, 8, 16, 32, 63, 120, 219, 382, 638, 1024, 1586, 2380, 3473, 4944, 6885, 9402, 12616, 16664 ]
Input: 13 Output: [ 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16383, 32752, 65399, 130238, 258096, 507624 ]
As you may realise, the first $t+1$ items of each sequence of tier $t$ are the first $t+1$ powers of 2...
Rules
- Standard loopholes apply
- This is code-golf, so shortest answer in bytes wins
code-golf math sequence subsequence
$endgroup$
Background
For this challenge, a 'metasequence' will be defined as a sequence of numbers where not only the numbers themselves will increase, but also the increment, and the increment will increase by an increasing value, etc.
For instance, the tier 3 metasequence would start as:
1 2 4 8 15 26 42 64 93 130 176
because:
1 2 3 4 5 6 7 8 9 >-|
↓+↑ = 7 | Increases by the amount above each time
1 2 4 7 11 16 22 29 37 46 >-| <-|
| Increases by the amount above each time
1 2 4 8 15 26 42 64 93 130 176 <-|
Challenge
Given a positive integer, output the first twenty items of the metasequence of that tier.
Test cases
Input: 3 Output: [ 1, 2, 4, 8, 15, 26, 42, 64, 93, 130, 176, 232, 299, 378, 470, 576, 697, 834, 988, 1160 ]
Input: 1 Output: [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 ]
Input: 5 Output: [ 1, 2, 4, 8, 16, 32, 63, 120, 219, 382, 638, 1024, 1586, 2380, 3473, 4944, 6885, 9402, 12616, 16664 ]
Input: 13 Output: [ 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16383, 32752, 65399, 130238, 258096, 507624 ]
As you may realise, the first $t+1$ items of each sequence of tier $t$ are the first $t+1$ powers of 2...
Rules
- Standard loopholes apply
- This is code-golf, so shortest answer in bytes wins
code-golf math sequence subsequence
code-golf math sequence subsequence
edited 2 days ago
Geza Kerecsenyi
asked 2 days ago
Geza KerecsenyiGeza Kerecsenyi
33413
33413
2
$begingroup$
I assume you mean 20 terms, not digits?
$endgroup$
– Quintec
2 days ago
4
$begingroup$
By the way, the tier three metasequence is OEIS A000125
$endgroup$
– Embodiment of Ignorance
2 days ago
6
$begingroup$
You may want to clarify if solutions have to work for input 20 or greater.
$endgroup$
– FryAmTheEggman
2 days ago
4
$begingroup$
Can we choose to 0-index (so, output tier 1 for input0, tier 2 for input1, etc.)?
$endgroup$
– Lynn
2 days ago
1
$begingroup$
@MilkyWay90, it's not very clear what you mean: 219 (from level 5) only occurs in Pascal's triangle as $binom2191$ and $binom219218$.
$endgroup$
– Peter Taylor
yesterday
|
show 5 more comments
2
$begingroup$
I assume you mean 20 terms, not digits?
$endgroup$
– Quintec
2 days ago
4
$begingroup$
By the way, the tier three metasequence is OEIS A000125
$endgroup$
– Embodiment of Ignorance
2 days ago
6
$begingroup$
You may want to clarify if solutions have to work for input 20 or greater.
$endgroup$
– FryAmTheEggman
2 days ago
4
$begingroup$
Can we choose to 0-index (so, output tier 1 for input0, tier 2 for input1, etc.)?
$endgroup$
– Lynn
2 days ago
1
$begingroup$
@MilkyWay90, it's not very clear what you mean: 219 (from level 5) only occurs in Pascal's triangle as $binom2191$ and $binom219218$.
$endgroup$
– Peter Taylor
yesterday
2
2
$begingroup$
I assume you mean 20 terms, not digits?
$endgroup$
– Quintec
2 days ago
$begingroup$
I assume you mean 20 terms, not digits?
$endgroup$
– Quintec
2 days ago
4
4
$begingroup$
By the way, the tier three metasequence is OEIS A000125
$endgroup$
– Embodiment of Ignorance
2 days ago
$begingroup$
By the way, the tier three metasequence is OEIS A000125
$endgroup$
– Embodiment of Ignorance
2 days ago
6
6
$begingroup$
You may want to clarify if solutions have to work for input 20 or greater.
$endgroup$
– FryAmTheEggman
2 days ago
$begingroup$
You may want to clarify if solutions have to work for input 20 or greater.
$endgroup$
– FryAmTheEggman
2 days ago
4
4
$begingroup$
Can we choose to 0-index (so, output tier 1 for input
0, tier 2 for input 1, etc.)?$endgroup$
– Lynn
2 days ago
$begingroup$
Can we choose to 0-index (so, output tier 1 for input
0, tier 2 for input 1, etc.)?$endgroup$
– Lynn
2 days ago
1
1
$begingroup$
@MilkyWay90, it's not very clear what you mean: 219 (from level 5) only occurs in Pascal's triangle as $binom2191$ and $binom219218$.
$endgroup$
– Peter Taylor
yesterday
$begingroup$
@MilkyWay90, it's not very clear what you mean: 219 (from level 5) only occurs in Pascal's triangle as $binom2191$ and $binom219218$.
$endgroup$
– Peter Taylor
yesterday
|
show 5 more comments
28 Answers
28
active
oldest
votes
$begingroup$
Wolfram Language (Mathematica), 34 bytes
0~Range~19~Binomial~i~Sum~i,0,#&
Try it online!
The tier $n$ metasequence is the sum of the first $n+1$ elements of each row of the Pascal triangle.
$endgroup$
1
$begingroup$
There's almost a built-in for that, but unfortunately it's longer.
$endgroup$
– Peter Taylor
yesterday
1
$begingroup$
I don't know enough WL to do anything useful in it, but it seems to me that it might benefit from the identity $$T(n,k) = begincases1 & textrmif k=0 \ 2T(n,k-1) - binomk-1n & textrmotherwiseendcases$$
$endgroup$
– Peter Taylor
yesterday
add a comment |
$begingroup$
Haskell, 35 bytes
take 20.(iterate(scanl(+)1)[1..]!!)
Try it online! Uses 0-indexed inputs (f 4 returns tier 5.)
Haskell, 36 bytes
f 1=[1..20]
f n=init$scanl(+)1$f$n-1
Try it online! Uses 1-indexed inputs (f 5 returns tier 5.)
Explanation
scanl (+) 1 is a function that takes partial sums of a list, starting from (and prepending) 1.
For example:
scanl (+) 1 [20,300,4000]equals[1,21,321,4321].
It turns out that tier $n$ is just this function applied $ (n-1) $ times to the list $[1,2,3,dots]$.
(Or equivalently: $n$ times to a list of all ones.)
We use either init or [1..20-n] to account for the list getting longer by $1$ every application.
$endgroup$
1
$begingroup$
[1..20-n]isn't going to work for $n > 20$
$endgroup$
– Peter Taylor
yesterday
$begingroup$
take 20.(iterate(scanl(+)1)[1..]!!)would only cost a byte more to fix that
$endgroup$
– H.PWiz
yesterday
1
$begingroup$
Your pointfree answer can be back to 34 bytes using your other answer:(iterate(init.scanl(+)1)[1..20]!!).
$endgroup$
– xnor
18 hours ago
add a comment |
$begingroup$
Jelly, 8 7 bytes
20ḶcþŻS
Try it online!
cþ Table of binom(x,y) where:
20Ḷ x = [0..19]
Ż y = [0..n] e.g. n=3 → [[1, 1, 1, 1, 1, 1, …]
[0, 1, 2, 3, 4, 5, …]
[0, 0, 1, 3, 6, 10, …]
[0, 0, 0, 1, 4, 10, …]]
S Columnwise sum. → [1, 2, 4, 8, 15, 26, …]
This uses @alephalpha’s insight that $$textmeta-sequence_n(i) = sum_k=0^n binom ik.$$
$endgroup$
$begingroup$
That is brutally succint. Just awesome.
$endgroup$
– don bright
17 hours ago
add a comment |
$begingroup$
Python 2, 69 58 55 bytes
Saved bytes thanks to ovs and Jo King; also, it works in Python 3 now as well.
m=lambda t:[1+sum(m(t-1)[:n])for n in range(~t and 20)]
Try it online!
The math
Let $a(t,n)$ be the $n^th$ term (0-indexed) of the sequence at tier $t$. A little analysis leads to the following recurrence formula:
$$
a(t,n) = 1+sum_i=0^n-1a(t-1,i)
$$
Working backwards, we define $a(0,n) = 1$ and $a(-1,n) = 0$ for all $n$. These definitions will simplify our base case.
The code
We define a function m(t) that returns the first 20 elements of the sequence at tier t. If t is nonnegative, we use the recursive formula above; if t is -1, we return an empty list. The empty list works as a base case because the result of each recursive call is sliced ([:n]) and then summed. Slicing an empty list gives an empty list, and summing an empty list gives 0. That's exactly the result we want, since tier $-1$ should behave like a constant sequence of all $0$'s.
m=lambda t: # Define a function m(t):
[ ] # List comprehension
for n in range( ) # for each n from 0 up to but not including...
~n and 20 # 0 if n is -1, else 20:
1+sum( ) # a(t,n) = 1 + sum of
[:n] # the first n elements of
m(t-1) # the previous tier (calculated recursively)
$endgroup$
$begingroup$
61 bytes as a recursive lambda function (Significantly more inefficient).
$endgroup$
– ovs
yesterday
$begingroup$
@ovs Thanks! I found a couple more bytes by using a different base case, too.
$endgroup$
– DLosc
yesterday
$begingroup$
:( the nice way is too long
$endgroup$
– ASCII-only
yesterday
$begingroup$
or a combinations builtin, yeah
$endgroup$
– ASCII-only
yesterday
$begingroup$
closer (with stolen combinations function)
$endgroup$
– ASCII-only
yesterday
|
show 2 more comments
$begingroup$
Brain-Flak, 84 82 bytes
<>((()()()()()))([((()))])<>([(())]<<>(<>())<><>(<>)<>>)<>
Try it online!
Annotated
<> Switch to the off stack
((()()()()())) Push 10
([((()))]) Make twice that many 1s
<> Switch back
While ...
([(())]< Subtract one from the input and push 1
<> Switch
For every x on the stack
(<>())<> Remove x and add it to a copy of the other TOS
End loop
<> Remove 1 element to keep it 20
(<>)<> Copy everything back to the other stack
>)<> End scopes and loops
Try it online!
$endgroup$
1
$begingroup$
you know its funny how this is shorter than Rust
$endgroup$
– don bright
17 hours ago
add a comment |
$begingroup$
R, 36 bytes
rowSums(outer(0:19,0:scan(),choose))
Try it online!
Thanks to @Giuseppe for suggesting outer.
This is based on the approach @alephalpha described
$endgroup$
add a comment |
$begingroup$
dzaima/APL REPL, 14 bytes
(+1,19↑)⍣⎕⍳20
Try it online!
(+1,19↑)⍣⎕⍳20
( )⍣⎕ repeat the function below input times:
+ cumulative sum of
1, 1 prepended to
19↑ the first 19 items of the previous iteration
⍳20 starting with the first 20 integers
$endgroup$
$begingroup$
-1 byte using dzaima/APL:1∘,→1,
$endgroup$
– Adám
2 days ago
$begingroup$
@Adám oh duh.. right
$endgroup$
– dzaima
2 days ago
$begingroup$
Full program at 17:(≢↑(+1∘,)⍣⎕)20⍴1
$endgroup$
– Adám
2 days ago
$begingroup$
14 bytes by using the REPL (add the-sflag).
$endgroup$
– Erik the Outgolfer
2 days ago
$begingroup$
If you use the flag, language becomes-sbtw (unless-sis repl flag?)
$endgroup$
– ASCII-only
yesterday
|
show 1 more comment
$begingroup$
Pari/GP, 39 bytes
n->Vec(sum(i=1,n+1,(1/x-1)^-i)+O(x^21))
Try it online!
Pari/GP, 40 bytes
n->Vec((1-(1/x-1)^-n++)/(1-2*x)+O(x^20))
Try it online!
The generating function of the tier $n$ metasequence is:
$$sum_i=0^nfracx^i(1-x)^i+1=frac1-left(fracx1-xright)^1+n1-2x$$
$endgroup$
add a comment |
$begingroup$
Perl 6, 34 32 bytes
-2 bytes thanks to Jo King
(@,[+] 1,...*)[$_+1]
Try it online!
Explanation
# Anonymous block
, ...* # Construct infinite sequence of sequences
@ # Start with empty array
# Compute next element as
[+] # cumulative sum of
1, # one followed by
|.[^19] # first 19 elements of previous sequence
( )[$_+1] # Take (n+1)th element
$endgroup$
$begingroup$
29 bytes (the$^ainstead of$_is necessary)
$endgroup$
– Jo King
yesterday
1
$begingroup$
@JoKing Nice, but this assumes that$_is undefined when calling the function. I prefer solutions that don't depend on the state of global variables.
$endgroup$
– nwellnhof
yesterday
add a comment |
$begingroup$
Python 3.8 (pre-release), 62 bytes
f=lambda n:[t:=1]+[t:=t+n for n in(n and f(n-1)[:-1]or[0]*19)]
Try it online!
Explanation
f=lambda n: # funtion takes a single argument
[t:=1] # This evaluates to [1] and assigns 1 to t
# assignment expressions are a new feature of Python 3.8
+ # concatenated to
[ .... ] # list comprehension
# The list comprehesion works together with the
# assignment expression as a scan function:
[t := t+n for n in it]
# This calculates all partial sums of it
# (plus the initial value of t, which is 1 here)
# The list comprehension iterates
# over the first 19 entries of f(n-1)
# or over a list of zeros for n=0
for n in (n and f(n-1)[:-1] or [0]*19)
$endgroup$
add a comment |
$begingroup$
R (63 47 bytes)
function(n,k=0:19)2^k*pbeta(.5,pmax(k-n,0),n+1)
Online demo. This uses the regularised incomplete beta function, which gives the cumulative distribution function of a binomial, and hence just needs a bit of scaling to give partial sums of rows of Pascal's triangle.
Octave (66 46 bytes)
@(n,k=0:19)2.^k.*betainc(.5,max(k-n,1E-9),n+1)
Online demo. Exactly the same concept, but slightly uglier because betainc, unlike R's pbeta, requires the second and third arguments to be greater than zero.
Many thanks to Giuseppe for helping me to vectorise these, with significant savings.
$endgroup$
add a comment |
$begingroup$
Ruby, 74 bytes
a=->bc=[1];d=0;b==1?c=(1..20).to_a: 19.timesc<<c[d]+(a[b-1])[d];d+=1;c
Ungolfed version:
def seq num
ary = [1]
index = 0
if num == 1
ary = (1..20).to_a
else
19.timesary << ary[index]+seq(num-1)[index]; index+=1
end
return ary
end
Quite resource-intensive--the online version can't calculate the 13th metasequence.
Try it online
$endgroup$
add a comment |
$begingroup$
Wolfram Language (Mathematica), 42 bytes
Nest[FoldList[Plus,1,#]&,Range[21-#],#-1]&
Try it online!
$endgroup$
add a comment |
$begingroup$
05AB1E, 11 9 bytes
20LIF.¥>¨
0-indexed
Try it online or verify all test cases.
Explanation:
20L # Create a list in the range [1,20]
IF # Loop the input amount of times:
.¥ # Get the cumulative sum of the current list with 0 prepended automatically
> # Increase each value in this list by 1
¨ # Remove the trailing 21th item from the list
# (after the loop, output the result-list implicitly)
$endgroup$
1
$begingroup$
Nice use of.¥!
$endgroup$
– Emigna
yesterday
add a comment |
$begingroup$
JavaScript (ES6), 68 67 bytes
f=(n,a=[...f+f])=>n--?f(n,[s=1,...a.map(x=>s-=~--x)]):a.slice(0,20)
Try it online!
JavaScript (ES6), 63 bytes
NB: this version works for $nle20$.
f=(n,a=[...Array(20-n)])=>n--?f(n,[s=1,...a.map(x=>s+=x||1)]):a
Try it online!
$endgroup$
add a comment |
$begingroup$
J, 24 bytes
<:(1+/@,])^:[(1+i.20)"_
Try it online!
NOTE: Turns out this is a translation of dzaima's APL answer, though I actually didn't notice it before writing this.
explanation
<: (1 +/@, ])^:[ (1+i.20)"_
<: NB. input minus 1 (left input)
(1+i.20)"_ NB. 1..20 (right input)
( )^:[ NB. apply verb in parens
NB. "left input" times
(1 , ]) NB. prepend 1 to right input
( +/@ ) NB. and take scan sum
$endgroup$
add a comment |
$begingroup$
Ruby, 49 bytes
f=->nn<1?[1]*20:[o=1]+f[n-1][0,19].mapx
Recursive definition: Tier 0 is 1,1,1,1... and each subsequent tier is 1 followed by a sequence whose first differences are the previous tier. Annoyingly this would give me 21 values if I didn't explicitly slice out the first 20; seems like there should be a way to shorten this by avoiding that.
$endgroup$
$begingroup$
tio.run/#ruby pls
$endgroup$
– ASCII-only
yesterday
$begingroup$
also 49
$endgroup$
– ASCII-only
yesterday
$begingroup$
46
$endgroup$
– ASCII-only
yesterday
add a comment |
$begingroup$
Retina, 59 bytes
.+
19*$(_,
Replace the input with 19 1s (in unary). (The 20th value is 0 because it always gets deleted by the first pass through the loop.)
"$+"
$begingroup$
Rust, 135 bytes
fn t(m:u64)->Vec<u64>a*n);(0..20).map(
used @alephalpha 's idea, like several others. there is no builtin factorial so that takes up at least 36 bytes, (plus dealing with negatives). no builtin choose, another 16 bytes. iterator->declared vector type, 20 bytes.. etc etc.
Ungolfed at play.rust-lang.org
$endgroup$
add a comment |
$begingroup$
CJam (20 bytes)
1aK*11$+/;]q~*p
Online demo. This is a program which takes input from stdin and prints to stdout; for the same score an anonymous block (function) can be obtained as
1aK*11$+/;]@*
Dissection
This applies the definition literally:
1aK* e# Start with an array of 20 1s
e# Loop:
1 e# Push a 1 before the current list
1$+/ e# Form partial sums (including that bonus 1)
;] e# Ditch the last and gather in an array (of length 20)
q~* e# Take input and repeat the loop that many times
p e# Pretty print
$endgroup$
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
return StackExchange.using("mathjaxEditing", function ()
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix)
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["\$", "\$"]]);
);
);
, "mathjax-editing");
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "200"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodegolf.stackexchange.com%2fquestions%2f180855%2fmake-me-a-metasequence%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
28 Answers
28
active
oldest
votes
28 Answers
28
active
oldest
votes
active
oldest
votes
active
oldest
votes
$begingroup$
Wolfram Language (Mathematica), 34 bytes
0~Range~19~Binomial~i~Sum~i,0,#&
Try it online!
The tier $n$ metasequence is the sum of the first $n+1$ elements of each row of the Pascal triangle.
$endgroup$
1
$begingroup$
There's almost a built-in for that, but unfortunately it's longer.
$endgroup$
– Peter Taylor
yesterday
1
$begingroup$
I don't know enough WL to do anything useful in it, but it seems to me that it might benefit from the identity $$T(n,k) = begincases1 & textrmif k=0 \ 2T(n,k-1) - binomk-1n & textrmotherwiseendcases$$
$endgroup$
– Peter Taylor
yesterday
add a comment |
$begingroup$
Wolfram Language (Mathematica), 34 bytes
0~Range~19~Binomial~i~Sum~i,0,#&
Try it online!
The tier $n$ metasequence is the sum of the first $n+1$ elements of each row of the Pascal triangle.
$endgroup$
1
$begingroup$
There's almost a built-in for that, but unfortunately it's longer.
$endgroup$
– Peter Taylor
yesterday
1
$begingroup$
I don't know enough WL to do anything useful in it, but it seems to me that it might benefit from the identity $$T(n,k) = begincases1 & textrmif k=0 \ 2T(n,k-1) - binomk-1n & textrmotherwiseendcases$$
$endgroup$
– Peter Taylor
yesterday
add a comment |
$begingroup$
Wolfram Language (Mathematica), 34 bytes
0~Range~19~Binomial~i~Sum~i,0,#&
Try it online!
The tier $n$ metasequence is the sum of the first $n+1$ elements of each row of the Pascal triangle.
$endgroup$
Wolfram Language (Mathematica), 34 bytes
0~Range~19~Binomial~i~Sum~i,0,#&
Try it online!
The tier $n$ metasequence is the sum of the first $n+1$ elements of each row of the Pascal triangle.
edited yesterday
answered 2 days ago
alephalphaalephalpha
21.8k32994
21.8k32994
1
$begingroup$
There's almost a built-in for that, but unfortunately it's longer.
$endgroup$
– Peter Taylor
yesterday
1
$begingroup$
I don't know enough WL to do anything useful in it, but it seems to me that it might benefit from the identity $$T(n,k) = begincases1 & textrmif k=0 \ 2T(n,k-1) - binomk-1n & textrmotherwiseendcases$$
$endgroup$
– Peter Taylor
yesterday
add a comment |
1
$begingroup$
There's almost a built-in for that, but unfortunately it's longer.
$endgroup$
– Peter Taylor
yesterday
1
$begingroup$
I don't know enough WL to do anything useful in it, but it seems to me that it might benefit from the identity $$T(n,k) = begincases1 & textrmif k=0 \ 2T(n,k-1) - binomk-1n & textrmotherwiseendcases$$
$endgroup$
– Peter Taylor
yesterday
1
1
$begingroup$
There's almost a built-in for that, but unfortunately it's longer.
$endgroup$
– Peter Taylor
yesterday
$begingroup$
There's almost a built-in for that, but unfortunately it's longer.
$endgroup$
– Peter Taylor
yesterday
1
1
$begingroup$
I don't know enough WL to do anything useful in it, but it seems to me that it might benefit from the identity $$T(n,k) = begincases1 & textrmif k=0 \ 2T(n,k-1) - binomk-1n & textrmotherwiseendcases$$
$endgroup$
– Peter Taylor
yesterday
$begingroup$
I don't know enough WL to do anything useful in it, but it seems to me that it might benefit from the identity $$T(n,k) = begincases1 & textrmif k=0 \ 2T(n,k-1) - binomk-1n & textrmotherwiseendcases$$
$endgroup$
– Peter Taylor
yesterday
add a comment |
$begingroup$
Haskell, 35 bytes
take 20.(iterate(scanl(+)1)[1..]!!)
Try it online! Uses 0-indexed inputs (f 4 returns tier 5.)
Haskell, 36 bytes
f 1=[1..20]
f n=init$scanl(+)1$f$n-1
Try it online! Uses 1-indexed inputs (f 5 returns tier 5.)
Explanation
scanl (+) 1 is a function that takes partial sums of a list, starting from (and prepending) 1.
For example:
scanl (+) 1 [20,300,4000]equals[1,21,321,4321].
It turns out that tier $n$ is just this function applied $ (n-1) $ times to the list $[1,2,3,dots]$.
(Or equivalently: $n$ times to a list of all ones.)
We use either init or [1..20-n] to account for the list getting longer by $1$ every application.
$endgroup$
1
$begingroup$
[1..20-n]isn't going to work for $n > 20$
$endgroup$
– Peter Taylor
yesterday
$begingroup$
take 20.(iterate(scanl(+)1)[1..]!!)would only cost a byte more to fix that
$endgroup$
– H.PWiz
yesterday
1
$begingroup$
Your pointfree answer can be back to 34 bytes using your other answer:(iterate(init.scanl(+)1)[1..20]!!).
$endgroup$
– xnor
18 hours ago
add a comment |
$begingroup$
Haskell, 35 bytes
take 20.(iterate(scanl(+)1)[1..]!!)
Try it online! Uses 0-indexed inputs (f 4 returns tier 5.)
Haskell, 36 bytes
f 1=[1..20]
f n=init$scanl(+)1$f$n-1
Try it online! Uses 1-indexed inputs (f 5 returns tier 5.)
Explanation
scanl (+) 1 is a function that takes partial sums of a list, starting from (and prepending) 1.
For example:
scanl (+) 1 [20,300,4000]equals[1,21,321,4321].
It turns out that tier $n$ is just this function applied $ (n-1) $ times to the list $[1,2,3,dots]$.
(Or equivalently: $n$ times to a list of all ones.)
We use either init or [1..20-n] to account for the list getting longer by $1$ every application.
$endgroup$
1
$begingroup$
[1..20-n]isn't going to work for $n > 20$
$endgroup$
– Peter Taylor
yesterday
$begingroup$
take 20.(iterate(scanl(+)1)[1..]!!)would only cost a byte more to fix that
$endgroup$
– H.PWiz
yesterday
1
$begingroup$
Your pointfree answer can be back to 34 bytes using your other answer:(iterate(init.scanl(+)1)[1..20]!!).
$endgroup$
– xnor
18 hours ago
add a comment |
$begingroup$
Haskell, 35 bytes
take 20.(iterate(scanl(+)1)[1..]!!)
Try it online! Uses 0-indexed inputs (f 4 returns tier 5.)
Haskell, 36 bytes
f 1=[1..20]
f n=init$scanl(+)1$f$n-1
Try it online! Uses 1-indexed inputs (f 5 returns tier 5.)
Explanation
scanl (+) 1 is a function that takes partial sums of a list, starting from (and prepending) 1.
For example:
scanl (+) 1 [20,300,4000]equals[1,21,321,4321].
It turns out that tier $n$ is just this function applied $ (n-1) $ times to the list $[1,2,3,dots]$.
(Or equivalently: $n$ times to a list of all ones.)
We use either init or [1..20-n] to account for the list getting longer by $1$ every application.
$endgroup$
Haskell, 35 bytes
take 20.(iterate(scanl(+)1)[1..]!!)
Try it online! Uses 0-indexed inputs (f 4 returns tier 5.)
Haskell, 36 bytes
f 1=[1..20]
f n=init$scanl(+)1$f$n-1
Try it online! Uses 1-indexed inputs (f 5 returns tier 5.)
Explanation
scanl (+) 1 is a function that takes partial sums of a list, starting from (and prepending) 1.
For example:
scanl (+) 1 [20,300,4000]equals[1,21,321,4321].
It turns out that tier $n$ is just this function applied $ (n-1) $ times to the list $[1,2,3,dots]$.
(Or equivalently: $n$ times to a list of all ones.)
We use either init or [1..20-n] to account for the list getting longer by $1$ every application.
edited yesterday
answered 2 days ago
LynnLynn
50.3k797231
50.3k797231
1
$begingroup$
[1..20-n]isn't going to work for $n > 20$
$endgroup$
– Peter Taylor
yesterday
$begingroup$
take 20.(iterate(scanl(+)1)[1..]!!)would only cost a byte more to fix that
$endgroup$
– H.PWiz
yesterday
1
$begingroup$
Your pointfree answer can be back to 34 bytes using your other answer:(iterate(init.scanl(+)1)[1..20]!!).
$endgroup$
– xnor
18 hours ago
add a comment |
1
$begingroup$
[1..20-n]isn't going to work for $n > 20$
$endgroup$
– Peter Taylor
yesterday
$begingroup$
take 20.(iterate(scanl(+)1)[1..]!!)would only cost a byte more to fix that
$endgroup$
– H.PWiz
yesterday
1
$begingroup$
Your pointfree answer can be back to 34 bytes using your other answer:(iterate(init.scanl(+)1)[1..20]!!).
$endgroup$
– xnor
18 hours ago
1
1
$begingroup$
[1..20-n] isn't going to work for $n > 20$$endgroup$
– Peter Taylor
yesterday
$begingroup$
[1..20-n] isn't going to work for $n > 20$$endgroup$
– Peter Taylor
yesterday
$begingroup$
take 20.(iterate(scanl(+)1)[1..]!!) would only cost a byte more to fix that$endgroup$
– H.PWiz
yesterday
$begingroup$
take 20.(iterate(scanl(+)1)[1..]!!) would only cost a byte more to fix that$endgroup$
– H.PWiz
yesterday
1
1
$begingroup$
Your pointfree answer can be back to 34 bytes using your other answer:
(iterate(init.scanl(+)1)[1..20]!!).$endgroup$
– xnor
18 hours ago
$begingroup$
Your pointfree answer can be back to 34 bytes using your other answer:
(iterate(init.scanl(+)1)[1..20]!!).$endgroup$
– xnor
18 hours ago
add a comment |
$begingroup$
Jelly, 8 7 bytes
20ḶcþŻS
Try it online!
cþ Table of binom(x,y) where:
20Ḷ x = [0..19]
Ż y = [0..n] e.g. n=3 → [[1, 1, 1, 1, 1, 1, …]
[0, 1, 2, 3, 4, 5, …]
[0, 0, 1, 3, 6, 10, …]
[0, 0, 0, 1, 4, 10, …]]
S Columnwise sum. → [1, 2, 4, 8, 15, 26, …]
This uses @alephalpha’s insight that $$textmeta-sequence_n(i) = sum_k=0^n binom ik.$$
$endgroup$
$begingroup$
That is brutally succint. Just awesome.
$endgroup$
– don bright
17 hours ago
add a comment |
$begingroup$
Jelly, 8 7 bytes
20ḶcþŻS
Try it online!
cþ Table of binom(x,y) where:
20Ḷ x = [0..19]
Ż y = [0..n] e.g. n=3 → [[1, 1, 1, 1, 1, 1, …]
[0, 1, 2, 3, 4, 5, …]
[0, 0, 1, 3, 6, 10, …]
[0, 0, 0, 1, 4, 10, …]]
S Columnwise sum. → [1, 2, 4, 8, 15, 26, …]
This uses @alephalpha’s insight that $$textmeta-sequence_n(i) = sum_k=0^n binom ik.$$
$endgroup$
$begingroup$
That is brutally succint. Just awesome.
$endgroup$
– don bright
17 hours ago
add a comment |
$begingroup$
Jelly, 8 7 bytes
20ḶcþŻS
Try it online!
cþ Table of binom(x,y) where:
20Ḷ x = [0..19]
Ż y = [0..n] e.g. n=3 → [[1, 1, 1, 1, 1, 1, …]
[0, 1, 2, 3, 4, 5, …]
[0, 0, 1, 3, 6, 10, …]
[0, 0, 0, 1, 4, 10, …]]
S Columnwise sum. → [1, 2, 4, 8, 15, 26, …]
This uses @alephalpha’s insight that $$textmeta-sequence_n(i) = sum_k=0^n binom ik.$$
$endgroup$
Jelly, 8 7 bytes
20ḶcþŻS
Try it online!
cþ Table of binom(x,y) where:
20Ḷ x = [0..19]
Ż y = [0..n] e.g. n=3 → [[1, 1, 1, 1, 1, 1, …]
[0, 1, 2, 3, 4, 5, …]
[0, 0, 1, 3, 6, 10, …]
[0, 0, 0, 1, 4, 10, …]]
S Columnwise sum. → [1, 2, 4, 8, 15, 26, …]
This uses @alephalpha’s insight that $$textmeta-sequence_n(i) = sum_k=0^n binom ik.$$
edited yesterday
answered 2 days ago
LynnLynn
50.3k797231
50.3k797231
$begingroup$
That is brutally succint. Just awesome.
$endgroup$
– don bright
17 hours ago
add a comment |
$begingroup$
That is brutally succint. Just awesome.
$endgroup$
– don bright
17 hours ago
$begingroup$
That is brutally succint. Just awesome.
$endgroup$
– don bright
17 hours ago
$begingroup$
That is brutally succint. Just awesome.
$endgroup$
– don bright
17 hours ago
add a comment |
$begingroup$
Python 2, 69 58 55 bytes
Saved bytes thanks to ovs and Jo King; also, it works in Python 3 now as well.
m=lambda t:[1+sum(m(t-1)[:n])for n in range(~t and 20)]
Try it online!
The math
Let $a(t,n)$ be the $n^th$ term (0-indexed) of the sequence at tier $t$. A little analysis leads to the following recurrence formula:
$$
a(t,n) = 1+sum_i=0^n-1a(t-1,i)
$$
Working backwards, we define $a(0,n) = 1$ and $a(-1,n) = 0$ for all $n$. These definitions will simplify our base case.
The code
We define a function m(t) that returns the first 20 elements of the sequence at tier t. If t is nonnegative, we use the recursive formula above; if t is -1, we return an empty list. The empty list works as a base case because the result of each recursive call is sliced ([:n]) and then summed. Slicing an empty list gives an empty list, and summing an empty list gives 0. That's exactly the result we want, since tier $-1$ should behave like a constant sequence of all $0$'s.
m=lambda t: # Define a function m(t):
[ ] # List comprehension
for n in range( ) # for each n from 0 up to but not including...
~n and 20 # 0 if n is -1, else 20:
1+sum( ) # a(t,n) = 1 + sum of
[:n] # the first n elements of
m(t-1) # the previous tier (calculated recursively)
$endgroup$
$begingroup$
61 bytes as a recursive lambda function (Significantly more inefficient).
$endgroup$
– ovs
yesterday
$begingroup$
@ovs Thanks! I found a couple more bytes by using a different base case, too.
$endgroup$
– DLosc
yesterday
$begingroup$
:( the nice way is too long
$endgroup$
– ASCII-only
yesterday
$begingroup$
or a combinations builtin, yeah
$endgroup$
– ASCII-only
yesterday
$begingroup$
closer (with stolen combinations function)
$endgroup$
– ASCII-only
yesterday
|
show 2 more comments
$begingroup$
Python 2, 69 58 55 bytes
Saved bytes thanks to ovs and Jo King; also, it works in Python 3 now as well.
m=lambda t:[1+sum(m(t-1)[:n])for n in range(~t and 20)]
Try it online!
The math
Let $a(t,n)$ be the $n^th$ term (0-indexed) of the sequence at tier $t$. A little analysis leads to the following recurrence formula:
$$
a(t,n) = 1+sum_i=0^n-1a(t-1,i)
$$
Working backwards, we define $a(0,n) = 1$ and $a(-1,n) = 0$ for all $n$. These definitions will simplify our base case.
The code
We define a function m(t) that returns the first 20 elements of the sequence at tier t. If t is nonnegative, we use the recursive formula above; if t is -1, we return an empty list. The empty list works as a base case because the result of each recursive call is sliced ([:n]) and then summed. Slicing an empty list gives an empty list, and summing an empty list gives 0. That's exactly the result we want, since tier $-1$ should behave like a constant sequence of all $0$'s.
m=lambda t: # Define a function m(t):
[ ] # List comprehension
for n in range( ) # for each n from 0 up to but not including...
~n and 20 # 0 if n is -1, else 20:
1+sum( ) # a(t,n) = 1 + sum of
[:n] # the first n elements of
m(t-1) # the previous tier (calculated recursively)
$endgroup$
$begingroup$
61 bytes as a recursive lambda function (Significantly more inefficient).
$endgroup$
– ovs
yesterday
$begingroup$
@ovs Thanks! I found a couple more bytes by using a different base case, too.
$endgroup$
– DLosc
yesterday
$begingroup$
:( the nice way is too long
$endgroup$
– ASCII-only
yesterday
$begingroup$
or a combinations builtin, yeah
$endgroup$
– ASCII-only
yesterday
$begingroup$
closer (with stolen combinations function)
$endgroup$
– ASCII-only
yesterday
|
show 2 more comments
$begingroup$
Python 2, 69 58 55 bytes
Saved bytes thanks to ovs and Jo King; also, it works in Python 3 now as well.
m=lambda t:[1+sum(m(t-1)[:n])for n in range(~t and 20)]
Try it online!
The math
Let $a(t,n)$ be the $n^th$ term (0-indexed) of the sequence at tier $t$. A little analysis leads to the following recurrence formula:
$$
a(t,n) = 1+sum_i=0^n-1a(t-1,i)
$$
Working backwards, we define $a(0,n) = 1$ and $a(-1,n) = 0$ for all $n$. These definitions will simplify our base case.
The code
We define a function m(t) that returns the first 20 elements of the sequence at tier t. If t is nonnegative, we use the recursive formula above; if t is -1, we return an empty list. The empty list works as a base case because the result of each recursive call is sliced ([:n]) and then summed. Slicing an empty list gives an empty list, and summing an empty list gives 0. That's exactly the result we want, since tier $-1$ should behave like a constant sequence of all $0$'s.
m=lambda t: # Define a function m(t):
[ ] # List comprehension
for n in range( ) # for each n from 0 up to but not including...
~n and 20 # 0 if n is -1, else 20:
1+sum( ) # a(t,n) = 1 + sum of
[:n] # the first n elements of
m(t-1) # the previous tier (calculated recursively)
$endgroup$
Python 2, 69 58 55 bytes
Saved bytes thanks to ovs and Jo King; also, it works in Python 3 now as well.
m=lambda t:[1+sum(m(t-1)[:n])for n in range(~t and 20)]
Try it online!
The math
Let $a(t,n)$ be the $n^th$ term (0-indexed) of the sequence at tier $t$. A little analysis leads to the following recurrence formula:
$$
a(t,n) = 1+sum_i=0^n-1a(t-1,i)
$$
Working backwards, we define $a(0,n) = 1$ and $a(-1,n) = 0$ for all $n$. These definitions will simplify our base case.
The code
We define a function m(t) that returns the first 20 elements of the sequence at tier t. If t is nonnegative, we use the recursive formula above; if t is -1, we return an empty list. The empty list works as a base case because the result of each recursive call is sliced ([:n]) and then summed. Slicing an empty list gives an empty list, and summing an empty list gives 0. That's exactly the result we want, since tier $-1$ should behave like a constant sequence of all $0$'s.
m=lambda t: # Define a function m(t):
[ ] # List comprehension
for n in range( ) # for each n from 0 up to but not including...
~n and 20 # 0 if n is -1, else 20:
1+sum( ) # a(t,n) = 1 + sum of
[:n] # the first n elements of
m(t-1) # the previous tier (calculated recursively)
edited yesterday
answered yesterday
DLoscDLosc
19.4k33889
19.4k33889
$begingroup$
61 bytes as a recursive lambda function (Significantly more inefficient).
$endgroup$
– ovs
yesterday
$begingroup$
@ovs Thanks! I found a couple more bytes by using a different base case, too.
$endgroup$
– DLosc
yesterday
$begingroup$
:( the nice way is too long
$endgroup$
– ASCII-only
yesterday
$begingroup$
or a combinations builtin, yeah
$endgroup$
– ASCII-only
yesterday
$begingroup$
closer (with stolen combinations function)
$endgroup$
– ASCII-only
yesterday
|
show 2 more comments
$begingroup$
61 bytes as a recursive lambda function (Significantly more inefficient).
$endgroup$
– ovs
yesterday
$begingroup$
@ovs Thanks! I found a couple more bytes by using a different base case, too.
$endgroup$
– DLosc
yesterday
$begingroup$
:( the nice way is too long
$endgroup$
– ASCII-only
yesterday
$begingroup$
or a combinations builtin, yeah
$endgroup$
– ASCII-only
yesterday
$begingroup$
closer (with stolen combinations function)
$endgroup$
– ASCII-only
yesterday
$begingroup$
61 bytes as a recursive lambda function (Significantly more inefficient).
$endgroup$
– ovs
yesterday
$begingroup$
61 bytes as a recursive lambda function (Significantly more inefficient).
$endgroup$
– ovs
yesterday
$begingroup$
@ovs Thanks! I found a couple more bytes by using a different base case, too.
$endgroup$
– DLosc
yesterday
$begingroup$
@ovs Thanks! I found a couple more bytes by using a different base case, too.
$endgroup$
– DLosc
yesterday
$begingroup$
:( the nice way is too long
$endgroup$
– ASCII-only
yesterday
$begingroup$
:( the nice way is too long
$endgroup$
– ASCII-only
yesterday
$begingroup$
or a combinations builtin, yeah
$endgroup$
– ASCII-only
yesterday
$begingroup$
or a combinations builtin, yeah
$endgroup$
– ASCII-only
yesterday
$begingroup$
closer (with stolen combinations function)
$endgroup$
– ASCII-only
yesterday
$begingroup$
closer (with stolen combinations function)
$endgroup$
– ASCII-only
yesterday
|
show 2 more comments
$begingroup$
Brain-Flak, 84 82 bytes
<>((()()()()()))([((()))])<>([(())]<<>(<>())<><>(<>)<>>)<>
Try it online!
Annotated
<> Switch to the off stack
((()()()()())) Push 10
([((()))]) Make twice that many 1s
<> Switch back
While ...
([(())]< Subtract one from the input and push 1
<> Switch
For every x on the stack
(<>())<> Remove x and add it to a copy of the other TOS
End loop
<> Remove 1 element to keep it 20
(<>)<> Copy everything back to the other stack
>)<> End scopes and loops
Try it online!
$endgroup$
1
$begingroup$
you know its funny how this is shorter than Rust
$endgroup$
– don bright
17 hours ago
add a comment |
$begingroup$
Brain-Flak, 84 82 bytes
<>((()()()()()))([((()))])<>([(())]<<>(<>())<><>(<>)<>>)<>
Try it online!
Annotated
<> Switch to the off stack
((()()()()())) Push 10
([((()))]) Make twice that many 1s
<> Switch back
While ...
([(())]< Subtract one from the input and push 1
<> Switch
For every x on the stack
(<>())<> Remove x and add it to a copy of the other TOS
End loop
<> Remove 1 element to keep it 20
(<>)<> Copy everything back to the other stack
>)<> End scopes and loops
Try it online!
$endgroup$
1
$begingroup$
you know its funny how this is shorter than Rust
$endgroup$
– don bright
17 hours ago
add a comment |
$begingroup$
Brain-Flak, 84 82 bytes
<>((()()()()()))([((()))])<>([(())]<<>(<>())<><>(<>)<>>)<>
Try it online!
Annotated
<> Switch to the off stack
((()()()()())) Push 10
([((()))]) Make twice that many 1s
<> Switch back
While ...
([(())]< Subtract one from the input and push 1
<> Switch
For every x on the stack
(<>())<> Remove x and add it to a copy of the other TOS
End loop
<> Remove 1 element to keep it 20
(<>)<> Copy everything back to the other stack
>)<> End scopes and loops
Try it online!
$endgroup$
Brain-Flak, 84 82 bytes
<>((()()()()()))([((()))])<>([(())]<<>(<>())<><>(<>)<>>)<>
Try it online!
Annotated
<> Switch to the off stack
((()()()()())) Push 10
([((()))]) Make twice that many 1s
<> Switch back
While ...
([(())]< Subtract one from the input and push 1
<> Switch
For every x on the stack
(<>())<> Remove x and add it to a copy of the other TOS
End loop
<> Remove 1 element to keep it 20
(<>)<> Copy everything back to the other stack
>)<> End scopes and loops
Try it online!
answered yesterday
Sriotchilism O'ZaicSriotchilism O'Zaic
35.3k10159369
35.3k10159369
1
$begingroup$
you know its funny how this is shorter than Rust
$endgroup$
– don bright
17 hours ago
add a comment |
1
$begingroup$
you know its funny how this is shorter than Rust
$endgroup$
– don bright
17 hours ago
1
1
$begingroup$
you know its funny how this is shorter than Rust
$endgroup$
– don bright
17 hours ago
$begingroup$
you know its funny how this is shorter than Rust
$endgroup$
– don bright
17 hours ago
add a comment |
$begingroup$
R, 36 bytes
rowSums(outer(0:19,0:scan(),choose))
Try it online!
Thanks to @Giuseppe for suggesting outer.
This is based on the approach @alephalpha described
$endgroup$
add a comment |
$begingroup$
R, 36 bytes
rowSums(outer(0:19,0:scan(),choose))
Try it online!
Thanks to @Giuseppe for suggesting outer.
This is based on the approach @alephalpha described
$endgroup$
add a comment |
$begingroup$
R, 36 bytes
rowSums(outer(0:19,0:scan(),choose))
Try it online!
Thanks to @Giuseppe for suggesting outer.
This is based on the approach @alephalpha described
$endgroup$
R, 36 bytes
rowSums(outer(0:19,0:scan(),choose))
Try it online!
Thanks to @Giuseppe for suggesting outer.
This is based on the approach @alephalpha described
answered 21 hours ago
Nick KennedyNick Kennedy
44125
44125
add a comment |
add a comment |
$begingroup$
dzaima/APL REPL, 14 bytes
(+1,19↑)⍣⎕⍳20
Try it online!
(+1,19↑)⍣⎕⍳20
( )⍣⎕ repeat the function below input times:
+ cumulative sum of
1, 1 prepended to
19↑ the first 19 items of the previous iteration
⍳20 starting with the first 20 integers
$endgroup$
$begingroup$
-1 byte using dzaima/APL:1∘,→1,
$endgroup$
– Adám
2 days ago
$begingroup$
@Adám oh duh.. right
$endgroup$
– dzaima
2 days ago
$begingroup$
Full program at 17:(≢↑(+1∘,)⍣⎕)20⍴1
$endgroup$
– Adám
2 days ago
$begingroup$
14 bytes by using the REPL (add the-sflag).
$endgroup$
– Erik the Outgolfer
2 days ago
$begingroup$
If you use the flag, language becomes-sbtw (unless-sis repl flag?)
$endgroup$
– ASCII-only
yesterday
|
show 1 more comment
$begingroup$
dzaima/APL REPL, 14 bytes
(+1,19↑)⍣⎕⍳20
Try it online!
(+1,19↑)⍣⎕⍳20
( )⍣⎕ repeat the function below input times:
+ cumulative sum of
1, 1 prepended to
19↑ the first 19 items of the previous iteration
⍳20 starting with the first 20 integers
$endgroup$
$begingroup$
-1 byte using dzaima/APL:1∘,→1,
$endgroup$
– Adám
2 days ago
$begingroup$
@Adám oh duh.. right
$endgroup$
– dzaima
2 days ago
$begingroup$
Full program at 17:(≢↑(+1∘,)⍣⎕)20⍴1
$endgroup$
– Adám
2 days ago
$begingroup$
14 bytes by using the REPL (add the-sflag).
$endgroup$
– Erik the Outgolfer
2 days ago
$begingroup$
If you use the flag, language becomes-sbtw (unless-sis repl flag?)
$endgroup$
– ASCII-only
yesterday
|
show 1 more comment
$begingroup$
dzaima/APL REPL, 14 bytes
(+1,19↑)⍣⎕⍳20
Try it online!
(+1,19↑)⍣⎕⍳20
( )⍣⎕ repeat the function below input times:
+ cumulative sum of
1, 1 prepended to
19↑ the first 19 items of the previous iteration
⍳20 starting with the first 20 integers
$endgroup$
dzaima/APL REPL, 14 bytes
(+1,19↑)⍣⎕⍳20
Try it online!
(+1,19↑)⍣⎕⍳20
( )⍣⎕ repeat the function below input times:
+ cumulative sum of
1, 1 prepended to
19↑ the first 19 items of the previous iteration
⍳20 starting with the first 20 integers
edited 2 days ago
answered 2 days ago
dzaimadzaima
15.2k21856
15.2k21856
$begingroup$
-1 byte using dzaima/APL:1∘,→1,
$endgroup$
– Adám
2 days ago
$begingroup$
@Adám oh duh.. right
$endgroup$
– dzaima
2 days ago
$begingroup$
Full program at 17:(≢↑(+1∘,)⍣⎕)20⍴1
$endgroup$
– Adám
2 days ago
$begingroup$
14 bytes by using the REPL (add the-sflag).
$endgroup$
– Erik the Outgolfer
2 days ago
$begingroup$
If you use the flag, language becomes-sbtw (unless-sis repl flag?)
$endgroup$
– ASCII-only
yesterday
|
show 1 more comment
$begingroup$
-1 byte using dzaima/APL:1∘,→1,
$endgroup$
– Adám
2 days ago
$begingroup$
@Adám oh duh.. right
$endgroup$
– dzaima
2 days ago
$begingroup$
Full program at 17:(≢↑(+1∘,)⍣⎕)20⍴1
$endgroup$
– Adám
2 days ago
$begingroup$
14 bytes by using the REPL (add the-sflag).
$endgroup$
– Erik the Outgolfer
2 days ago
$begingroup$
If you use the flag, language becomes-sbtw (unless-sis repl flag?)
$endgroup$
– ASCII-only
yesterday
$begingroup$
-1 byte using dzaima/APL:
1∘, → 1,$endgroup$
– Adám
2 days ago
$begingroup$
-1 byte using dzaima/APL:
1∘, → 1,$endgroup$
– Adám
2 days ago
$begingroup$
@Adám oh duh.. right
$endgroup$
– dzaima
2 days ago
$begingroup$
@Adám oh duh.. right
$endgroup$
– dzaima
2 days ago
$begingroup$
Full program at 17:
(≢↑(+1∘,)⍣⎕)20⍴1$endgroup$
– Adám
2 days ago
$begingroup$
Full program at 17:
(≢↑(+1∘,)⍣⎕)20⍴1$endgroup$
– Adám
2 days ago
$begingroup$
14 bytes by using the REPL (add the
-s flag).$endgroup$
– Erik the Outgolfer
2 days ago
$begingroup$
14 bytes by using the REPL (add the
-s flag).$endgroup$
– Erik the Outgolfer
2 days ago
$begingroup$
If you use the flag, language becomes
-s btw (unless -s is repl flag?)$endgroup$
– ASCII-only
yesterday
$begingroup$
If you use the flag, language becomes
-s btw (unless -s is repl flag?)$endgroup$
– ASCII-only
yesterday
|
show 1 more comment
$begingroup$
Pari/GP, 39 bytes
n->Vec(sum(i=1,n+1,(1/x-1)^-i)+O(x^21))
Try it online!
Pari/GP, 40 bytes
n->Vec((1-(1/x-1)^-n++)/(1-2*x)+O(x^20))
Try it online!
The generating function of the tier $n$ metasequence is:
$$sum_i=0^nfracx^i(1-x)^i+1=frac1-left(fracx1-xright)^1+n1-2x$$
$endgroup$
add a comment |
$begingroup$
Pari/GP, 39 bytes
n->Vec(sum(i=1,n+1,(1/x-1)^-i)+O(x^21))
Try it online!
Pari/GP, 40 bytes
n->Vec((1-(1/x-1)^-n++)/(1-2*x)+O(x^20))
Try it online!
The generating function of the tier $n$ metasequence is:
$$sum_i=0^nfracx^i(1-x)^i+1=frac1-left(fracx1-xright)^1+n1-2x$$
$endgroup$
add a comment |
$begingroup$
Pari/GP, 39 bytes
n->Vec(sum(i=1,n+1,(1/x-1)^-i)+O(x^21))
Try it online!
Pari/GP, 40 bytes
n->Vec((1-(1/x-1)^-n++)/(1-2*x)+O(x^20))
Try it online!
The generating function of the tier $n$ metasequence is:
$$sum_i=0^nfracx^i(1-x)^i+1=frac1-left(fracx1-xright)^1+n1-2x$$
$endgroup$
Pari/GP, 39 bytes
n->Vec(sum(i=1,n+1,(1/x-1)^-i)+O(x^21))
Try it online!
Pari/GP, 40 bytes
n->Vec((1-(1/x-1)^-n++)/(1-2*x)+O(x^20))
Try it online!
The generating function of the tier $n$ metasequence is:
$$sum_i=0^nfracx^i(1-x)^i+1=frac1-left(fracx1-xright)^1+n1-2x$$
edited 2 days ago
answered 2 days ago
alephalphaalephalpha
21.8k32994
21.8k32994
add a comment |
add a comment |
$begingroup$
Perl 6, 34 32 bytes
-2 bytes thanks to Jo King
(@,[+] 1,...*)[$_+1]
Try it online!
Explanation
# Anonymous block
, ...* # Construct infinite sequence of sequences
@ # Start with empty array
# Compute next element as
[+] # cumulative sum of
1, # one followed by
|.[^19] # first 19 elements of previous sequence
( )[$_+1] # Take (n+1)th element
$endgroup$
$begingroup$
29 bytes (the$^ainstead of$_is necessary)
$endgroup$
– Jo King
yesterday
1
$begingroup$
@JoKing Nice, but this assumes that$_is undefined when calling the function. I prefer solutions that don't depend on the state of global variables.
$endgroup$
– nwellnhof
yesterday
add a comment |
$begingroup$
Perl 6, 34 32 bytes
-2 bytes thanks to Jo King
(@,[+] 1,...*)[$_+1]
Try it online!
Explanation
# Anonymous block
, ...* # Construct infinite sequence of sequences
@ # Start with empty array
# Compute next element as
[+] # cumulative sum of
1, # one followed by
|.[^19] # first 19 elements of previous sequence
( )[$_+1] # Take (n+1)th element
$endgroup$
$begingroup$
29 bytes (the$^ainstead of$_is necessary)
$endgroup$
– Jo King
yesterday
1
$begingroup$
@JoKing Nice, but this assumes that$_is undefined when calling the function. I prefer solutions that don't depend on the state of global variables.
$endgroup$
– nwellnhof
yesterday
add a comment |
$begingroup$
Perl 6, 34 32 bytes
-2 bytes thanks to Jo King
(@,[+] 1,...*)[$_+1]
Try it online!
Explanation
# Anonymous block
, ...* # Construct infinite sequence of sequences
@ # Start with empty array
# Compute next element as
[+] # cumulative sum of
1, # one followed by
|.[^19] # first 19 elements of previous sequence
( )[$_+1] # Take (n+1)th element
$endgroup$
Perl 6, 34 32 bytes
-2 bytes thanks to Jo King
(@,[+] 1,...*)[$_+1]
Try it online!
Explanation
# Anonymous block
, ...* # Construct infinite sequence of sequences
@ # Start with empty array
# Compute next element as
[+] # cumulative sum of
1, # one followed by
|.[^19] # first 19 elements of previous sequence
( )[$_+1] # Take (n+1)th element
edited yesterday
answered 2 days ago
nwellnhofnwellnhof
7,24511128
7,24511128
$begingroup$
29 bytes (the$^ainstead of$_is necessary)
$endgroup$
– Jo King
yesterday
1
$begingroup$
@JoKing Nice, but this assumes that$_is undefined when calling the function. I prefer solutions that don't depend on the state of global variables.
$endgroup$
– nwellnhof
yesterday
add a comment |
$begingroup$
29 bytes (the$^ainstead of$_is necessary)
$endgroup$
– Jo King
yesterday
1
$begingroup$
@JoKing Nice, but this assumes that$_is undefined when calling the function. I prefer solutions that don't depend on the state of global variables.
$endgroup$
– nwellnhof
yesterday
$begingroup$
29 bytes (the
$^a instead of $_ is necessary)$endgroup$
– Jo King
yesterday
$begingroup$
29 bytes (the
$^a instead of $_ is necessary)$endgroup$
– Jo King
yesterday
1
1
$begingroup$
@JoKing Nice, but this assumes that
$_ is undefined when calling the function. I prefer solutions that don't depend on the state of global variables.$endgroup$
– nwellnhof
yesterday
$begingroup$
@JoKing Nice, but this assumes that
$_ is undefined when calling the function. I prefer solutions that don't depend on the state of global variables.$endgroup$
– nwellnhof
yesterday
add a comment |
$begingroup$
Python 3.8 (pre-release), 62 bytes
f=lambda n:[t:=1]+[t:=t+n for n in(n and f(n-1)[:-1]or[0]*19)]
Try it online!
Explanation
f=lambda n: # funtion takes a single argument
[t:=1] # This evaluates to [1] and assigns 1 to t
# assignment expressions are a new feature of Python 3.8
+ # concatenated to
[ .... ] # list comprehension
# The list comprehesion works together with the
# assignment expression as a scan function:
[t := t+n for n in it]
# This calculates all partial sums of it
# (plus the initial value of t, which is 1 here)
# The list comprehension iterates
# over the first 19 entries of f(n-1)
# or over a list of zeros for n=0
for n in (n and f(n-1)[:-1] or [0]*19)
$endgroup$
add a comment |
$begingroup$
Python 3.8 (pre-release), 62 bytes
f=lambda n:[t:=1]+[t:=t+n for n in(n and f(n-1)[:-1]or[0]*19)]
Try it online!
Explanation
f=lambda n: # funtion takes a single argument
[t:=1] # This evaluates to [1] and assigns 1 to t
# assignment expressions are a new feature of Python 3.8
+ # concatenated to
[ .... ] # list comprehension
# The list comprehesion works together with the
# assignment expression as a scan function:
[t := t+n for n in it]
# This calculates all partial sums of it
# (plus the initial value of t, which is 1 here)
# The list comprehension iterates
# over the first 19 entries of f(n-1)
# or over a list of zeros for n=0
for n in (n and f(n-1)[:-1] or [0]*19)
$endgroup$
add a comment |
$begingroup$
Python 3.8 (pre-release), 62 bytes
f=lambda n:[t:=1]+[t:=t+n for n in(n and f(n-1)[:-1]or[0]*19)]
Try it online!
Explanation
f=lambda n: # funtion takes a single argument
[t:=1] # This evaluates to [1] and assigns 1 to t
# assignment expressions are a new feature of Python 3.8
+ # concatenated to
[ .... ] # list comprehension
# The list comprehesion works together with the
# assignment expression as a scan function:
[t := t+n for n in it]
# This calculates all partial sums of it
# (plus the initial value of t, which is 1 here)
# The list comprehension iterates
# over the first 19 entries of f(n-1)
# or over a list of zeros for n=0
for n in (n and f(n-1)[:-1] or [0]*19)
$endgroup$
Python 3.8 (pre-release), 62 bytes
f=lambda n:[t:=1]+[t:=t+n for n in(n and f(n-1)[:-1]or[0]*19)]
Try it online!
Explanation
f=lambda n: # funtion takes a single argument
[t:=1] # This evaluates to [1] and assigns 1 to t
# assignment expressions are a new feature of Python 3.8
+ # concatenated to
[ .... ] # list comprehension
# The list comprehesion works together with the
# assignment expression as a scan function:
[t := t+n for n in it]
# This calculates all partial sums of it
# (plus the initial value of t, which is 1 here)
# The list comprehension iterates
# over the first 19 entries of f(n-1)
# or over a list of zeros for n=0
for n in (n and f(n-1)[:-1] or [0]*19)
edited yesterday
answered yesterday
ovsovs
19.2k21160
19.2k21160
add a comment |
add a comment |
$begingroup$
R (63 47 bytes)
function(n,k=0:19)2^k*pbeta(.5,pmax(k-n,0),n+1)
Online demo. This uses the regularised incomplete beta function, which gives the cumulative distribution function of a binomial, and hence just needs a bit of scaling to give partial sums of rows of Pascal's triangle.
Octave (66 46 bytes)
@(n,k=0:19)2.^k.*betainc(.5,max(k-n,1E-9),n+1)
Online demo. Exactly the same concept, but slightly uglier because betainc, unlike R's pbeta, requires the second and third arguments to be greater than zero.
Many thanks to Giuseppe for helping me to vectorise these, with significant savings.
$endgroup$
add a comment |
$begingroup$
R (63 47 bytes)
function(n,k=0:19)2^k*pbeta(.5,pmax(k-n,0),n+1)
Online demo. This uses the regularised incomplete beta function, which gives the cumulative distribution function of a binomial, and hence just needs a bit of scaling to give partial sums of rows of Pascal's triangle.
Octave (66 46 bytes)
@(n,k=0:19)2.^k.*betainc(.5,max(k-n,1E-9),n+1)
Online demo. Exactly the same concept, but slightly uglier because betainc, unlike R's pbeta, requires the second and third arguments to be greater than zero.
Many thanks to Giuseppe for helping me to vectorise these, with significant savings.
$endgroup$
add a comment |
$begingroup$
R (63 47 bytes)
function(n,k=0:19)2^k*pbeta(.5,pmax(k-n,0),n+1)
Online demo. This uses the regularised incomplete beta function, which gives the cumulative distribution function of a binomial, and hence just needs a bit of scaling to give partial sums of rows of Pascal's triangle.
Octave (66 46 bytes)
@(n,k=0:19)2.^k.*betainc(.5,max(k-n,1E-9),n+1)
Online demo. Exactly the same concept, but slightly uglier because betainc, unlike R's pbeta, requires the second and third arguments to be greater than zero.
Many thanks to Giuseppe for helping me to vectorise these, with significant savings.
$endgroup$
R (63 47 bytes)
function(n,k=0:19)2^k*pbeta(.5,pmax(k-n,0),n+1)
Online demo. This uses the regularised incomplete beta function, which gives the cumulative distribution function of a binomial, and hence just needs a bit of scaling to give partial sums of rows of Pascal's triangle.
Octave (66 46 bytes)
@(n,k=0:19)2.^k.*betainc(.5,max(k-n,1E-9),n+1)
Online demo. Exactly the same concept, but slightly uglier because betainc, unlike R's pbeta, requires the second and third arguments to be greater than zero.
Many thanks to Giuseppe for helping me to vectorise these, with significant savings.
edited 8 hours ago
answered 20 hours ago
Peter TaylorPeter Taylor
39.7k455143
39.7k455143
add a comment |
add a comment |
$begingroup$
Ruby, 74 bytes
a=->bc=[1];d=0;b==1?c=(1..20).to_a: 19.timesc<<c[d]+(a[b-1])[d];d+=1;c
Ungolfed version:
def seq num
ary = [1]
index = 0
if num == 1
ary = (1..20).to_a
else
19.timesary << ary[index]+seq(num-1)[index]; index+=1
end
return ary
end
Quite resource-intensive--the online version can't calculate the 13th metasequence.
Try it online
$endgroup$
add a comment |
$begingroup$
Ruby, 74 bytes
a=->bc=[1];d=0;b==1?c=(1..20).to_a: 19.timesc<<c[d]+(a[b-1])[d];d+=1;c
Ungolfed version:
def seq num
ary = [1]
index = 0
if num == 1
ary = (1..20).to_a
else
19.timesary << ary[index]+seq(num-1)[index]; index+=1
end
return ary
end
Quite resource-intensive--the online version can't calculate the 13th metasequence.
Try it online
$endgroup$
add a comment |
$begingroup$
Ruby, 74 bytes
a=->bc=[1];d=0;b==1?c=(1..20).to_a: 19.timesc<<c[d]+(a[b-1])[d];d+=1;c
Ungolfed version:
def seq num
ary = [1]
index = 0
if num == 1
ary = (1..20).to_a
else
19.timesary << ary[index]+seq(num-1)[index]; index+=1
end
return ary
end
Quite resource-intensive--the online version can't calculate the 13th metasequence.
Try it online
$endgroup$
Ruby, 74 bytes
a=->bc=[1];d=0;b==1?c=(1..20).to_a: 19.timesc<<c[d]+(a[b-1])[d];d+=1;c
Ungolfed version:
def seq num
ary = [1]
index = 0
if num == 1
ary = (1..20).to_a
else
19.timesary << ary[index]+seq(num-1)[index]; index+=1
end
return ary
end
Quite resource-intensive--the online version can't calculate the 13th metasequence.
Try it online
answered 2 days ago
CG One HandedCG One Handed
815
815
add a comment |
add a comment |
$begingroup$
Wolfram Language (Mathematica), 42 bytes
Nest[FoldList[Plus,1,#]&,Range[21-#],#-1]&
Try it online!
$endgroup$
add a comment |
$begingroup$
Wolfram Language (Mathematica), 42 bytes
Nest[FoldList[Plus,1,#]&,Range[21-#],#-1]&
Try it online!
$endgroup$
add a comment |
$begingroup$
Wolfram Language (Mathematica), 42 bytes
Nest[FoldList[Plus,1,#]&,Range[21-#],#-1]&
Try it online!
$endgroup$
Wolfram Language (Mathematica), 42 bytes
Nest[FoldList[Plus,1,#]&,Range[21-#],#-1]&
Try it online!
answered yesterday
shrapshrap
312
312
add a comment |
add a comment |
$begingroup$
05AB1E, 11 9 bytes
20LIF.¥>¨
0-indexed
Try it online or verify all test cases.
Explanation:
20L # Create a list in the range [1,20]
IF # Loop the input amount of times:
.¥ # Get the cumulative sum of the current list with 0 prepended automatically
> # Increase each value in this list by 1
¨ # Remove the trailing 21th item from the list
# (after the loop, output the result-list implicitly)
$endgroup$
1
$begingroup$
Nice use of.¥!
$endgroup$
– Emigna
yesterday
add a comment |
$begingroup$
05AB1E, 11 9 bytes
20LIF.¥>¨
0-indexed
Try it online or verify all test cases.
Explanation:
20L # Create a list in the range [1,20]
IF # Loop the input amount of times:
.¥ # Get the cumulative sum of the current list with 0 prepended automatically
> # Increase each value in this list by 1
¨ # Remove the trailing 21th item from the list
# (after the loop, output the result-list implicitly)
$endgroup$
1
$begingroup$
Nice use of.¥!
$endgroup$
– Emigna
yesterday
add a comment |
$begingroup$
05AB1E, 11 9 bytes
20LIF.¥>¨
0-indexed
Try it online or verify all test cases.
Explanation:
20L # Create a list in the range [1,20]
IF # Loop the input amount of times:
.¥ # Get the cumulative sum of the current list with 0 prepended automatically
> # Increase each value in this list by 1
¨ # Remove the trailing 21th item from the list
# (after the loop, output the result-list implicitly)
$endgroup$
05AB1E, 11 9 bytes
20LIF.¥>¨
0-indexed
Try it online or verify all test cases.
Explanation:
20L # Create a list in the range [1,20]
IF # Loop the input amount of times:
.¥ # Get the cumulative sum of the current list with 0 prepended automatically
> # Increase each value in this list by 1
¨ # Remove the trailing 21th item from the list
# (after the loop, output the result-list implicitly)
edited yesterday
answered yesterday
Kevin CruijssenKevin Cruijssen
39.7k560203
39.7k560203
1
$begingroup$
Nice use of.¥!
$endgroup$
– Emigna
yesterday
add a comment |
1
$begingroup$
Nice use of.¥!
$endgroup$
– Emigna
yesterday
1
1
$begingroup$
Nice use of
.¥!$endgroup$
– Emigna
yesterday
$begingroup$
Nice use of
.¥!$endgroup$
– Emigna
yesterday
add a comment |
$begingroup$
JavaScript (ES6), 68 67 bytes
f=(n,a=[...f+f])=>n--?f(n,[s=1,...a.map(x=>s-=~--x)]):a.slice(0,20)
Try it online!
JavaScript (ES6), 63 bytes
NB: this version works for $nle20$.
f=(n,a=[...Array(20-n)])=>n--?f(n,[s=1,...a.map(x=>s+=x||1)]):a
Try it online!
$endgroup$
add a comment |
$begingroup$
JavaScript (ES6), 68 67 bytes
f=(n,a=[...f+f])=>n--?f(n,[s=1,...a.map(x=>s-=~--x)]):a.slice(0,20)
Try it online!
JavaScript (ES6), 63 bytes
NB: this version works for $nle20$.
f=(n,a=[...Array(20-n)])=>n--?f(n,[s=1,...a.map(x=>s+=x||1)]):a
Try it online!
$endgroup$
add a comment |
$begingroup$
JavaScript (ES6), 68 67 bytes
f=(n,a=[...f+f])=>n--?f(n,[s=1,...a.map(x=>s-=~--x)]):a.slice(0,20)
Try it online!
JavaScript (ES6), 63 bytes
NB: this version works for $nle20$.
f=(n,a=[...Array(20-n)])=>n--?f(n,[s=1,...a.map(x=>s+=x||1)]):a
Try it online!
$endgroup$
JavaScript (ES6), 68 67 bytes
f=(n,a=[...f+f])=>n--?f(n,[s=1,...a.map(x=>s-=~--x)]):a.slice(0,20)
Try it online!
JavaScript (ES6), 63 bytes
NB: this version works for $nle20$.
f=(n,a=[...Array(20-n)])=>n--?f(n,[s=1,...a.map(x=>s+=x||1)]):a
Try it online!
edited 2 days ago
answered 2 days ago
ArnauldArnauld
77.9k695326
77.9k695326
add a comment |
add a comment |
$begingroup$
J, 24 bytes
<:(1+/@,])^:[(1+i.20)"_
Try it online!
NOTE: Turns out this is a translation of dzaima's APL answer, though I actually didn't notice it before writing this.
explanation
<: (1 +/@, ])^:[ (1+i.20)"_
<: NB. input minus 1 (left input)
(1+i.20)"_ NB. 1..20 (right input)
( )^:[ NB. apply verb in parens
NB. "left input" times
(1 , ]) NB. prepend 1 to right input
( +/@ ) NB. and take scan sum
$endgroup$
add a comment |
$begingroup$
J, 24 bytes
<:(1+/@,])^:[(1+i.20)"_
Try it online!
NOTE: Turns out this is a translation of dzaima's APL answer, though I actually didn't notice it before writing this.
explanation
<: (1 +/@, ])^:[ (1+i.20)"_
<: NB. input minus 1 (left input)
(1+i.20)"_ NB. 1..20 (right input)
( )^:[ NB. apply verb in parens
NB. "left input" times
(1 , ]) NB. prepend 1 to right input
( +/@ ) NB. and take scan sum
$endgroup$
add a comment |
$begingroup$
J, 24 bytes
<:(1+/@,])^:[(1+i.20)"_
Try it online!
NOTE: Turns out this is a translation of dzaima's APL answer, though I actually didn't notice it before writing this.
explanation
<: (1 +/@, ])^:[ (1+i.20)"_
<: NB. input minus 1 (left input)
(1+i.20)"_ NB. 1..20 (right input)
( )^:[ NB. apply verb in parens
NB. "left input" times
(1 , ]) NB. prepend 1 to right input
( +/@ ) NB. and take scan sum
$endgroup$
J, 24 bytes
<:(1+/@,])^:[(1+i.20)"_
Try it online!
NOTE: Turns out this is a translation of dzaima's APL answer, though I actually didn't notice it before writing this.
explanation
<: (1 +/@, ])^:[ (1+i.20)"_
<: NB. input minus 1 (left input)
(1+i.20)"_ NB. 1..20 (right input)
( )^:[ NB. apply verb in parens
NB. "left input" times
(1 , ]) NB. prepend 1 to right input
( +/@ ) NB. and take scan sum
edited yesterday
answered yesterday
JonahJonah
2,3911016
2,3911016
add a comment |
add a comment |
$begingroup$
Ruby, 49 bytes
f=->nn<1?[1]*20:[o=1]+f[n-1][0,19].mapx
Recursive definition: Tier 0 is 1,1,1,1... and each subsequent tier is 1 followed by a sequence whose first differences are the previous tier. Annoyingly this would give me 21 values if I didn't explicitly slice out the first 20; seems like there should be a way to shorten this by avoiding that.
$endgroup$
$begingroup$
tio.run/#ruby pls
$endgroup$
– ASCII-only
yesterday
$begingroup$
also 49
$endgroup$
– ASCII-only
yesterday
$begingroup$
46
$endgroup$
– ASCII-only
yesterday
add a comment |
$begingroup$
Ruby, 49 bytes
f=->nn<1?[1]*20:[o=1]+f[n-1][0,19].mapx
Recursive definition: Tier 0 is 1,1,1,1... and each subsequent tier is 1 followed by a sequence whose first differences are the previous tier. Annoyingly this would give me 21 values if I didn't explicitly slice out the first 20; seems like there should be a way to shorten this by avoiding that.
$endgroup$
$begingroup$
tio.run/#ruby pls
$endgroup$
– ASCII-only
yesterday
$begingroup$
also 49
$endgroup$
– ASCII-only
yesterday
$begingroup$
46
$endgroup$
– ASCII-only
yesterday
add a comment |
$begingroup$
Ruby, 49 bytes
f=->nn<1?[1]*20:[o=1]+f[n-1][0,19].mapx
Recursive definition: Tier 0 is 1,1,1,1... and each subsequent tier is 1 followed by a sequence whose first differences are the previous tier. Annoyingly this would give me 21 values if I didn't explicitly slice out the first 20; seems like there should be a way to shorten this by avoiding that.
$endgroup$
Ruby, 49 bytes
f=->nn<1?[1]*20:[o=1]+f[n-1][0,19].mapx
Recursive definition: Tier 0 is 1,1,1,1... and each subsequent tier is 1 followed by a sequence whose first differences are the previous tier. Annoyingly this would give me 21 values if I didn't explicitly slice out the first 20; seems like there should be a way to shorten this by avoiding that.
edited yesterday
answered 2 days ago
histocrathistocrat
19k43172
19k43172
$begingroup$
tio.run/#ruby pls
$endgroup$
– ASCII-only
yesterday
$begingroup$
also 49
$endgroup$
– ASCII-only
yesterday
$begingroup$
46
$endgroup$
– ASCII-only
yesterday
add a comment |
$begingroup$
tio.run/#ruby pls
$endgroup$
– ASCII-only
yesterday
$begingroup$
also 49
$endgroup$
– ASCII-only
yesterday
$begingroup$
46
$endgroup$
– ASCII-only
yesterday
$begingroup$
tio.run/#ruby pls
$endgroup$
– ASCII-only
yesterday
$begingroup$
tio.run/#ruby pls
$endgroup$
– ASCII-only
yesterday
$begingroup$
also 49
$endgroup$
– ASCII-only
yesterday
$begingroup$
also 49
$endgroup$
– ASCII-only
yesterday
$begingroup$
46
$endgroup$
– ASCII-only
yesterday
$begingroup$
46
$endgroup$
– ASCII-only
yesterday
add a comment |
$begingroup$
Retina, 59 bytes
.+
19*$(_,
Replace the input with 19 1s (in unary). (The 20th value is 0 because it always gets deleted by the first pass through the loop.)
"$+"`
)`
Repeat the loop the original input number of times.
(.+),_*
_,$1
Remove the last element and prefix a 1.
_+(?<=((_)gNh20õ
Try it
answered yesterday
ShaggyShaggy
19.4k21667
19.4k21667
add a comment |
add a comment |
$begingroup$
CJam (20 bytes)
1aK*11$+/;]q~*p
Online demo. This is a program which takes input from stdin and prints to stdout; for the same score an anonymous block (function) can be obtained as
1aK*11$+/;]@*
Dissection
This applies the definition literally:
1aK* e# Start with an array of 20 1s
e# Loop:
1 e# Push a 1 before the current list
1$+/ e# Form partial sums (including that bonus 1)
;] e# Ditch the last and gather in an array (of length 20)
q~* e# Take input and repeat the loop that many times
p e# Pretty print
$endgroup$
add a comment |
$begingroup$
CJam (20 bytes)
1aK*11$+/;]q~*p
Online demo. This is a program which takes input from stdin and prints to stdout; for the same score an anonymous block (function) can be obtained as
1aK*11$+/;]@*
Dissection
This applies the definition literally:
1aK* e# Start with an array of 20 1s
e# Loop:
1 e# Push a 1 before the current list
1$+/ e# Form partial sums (including that bonus 1)
;] e# Ditch the last and gather in an array (of length 20)
q~* e# Take input and repeat the loop that many times
p e# Pretty print
$endgroup$
add a comment |
$begingroup$
CJam (20 bytes)
1aK*11$+/;]q~*p
Online demo. This is a program which takes input from stdin and prints to stdout; for the same score an anonymous block (function) can be obtained as
1aK*11$+/;]@*
Dissection
This applies the definition literally:
1aK* e# Start with an array of 20 1s
e# Loop:
1 e# Push a 1 before the current list
1$+/ e# Form partial sums (including that bonus 1)
;] e# Ditch the last and gather in an array (of length 20)
q~* e# Take input and repeat the loop that many times
p e# Pretty print
$endgroup$
CJam (20 bytes)
1aK*11$+/;]q~*p
Online demo. This is a program which takes input from stdin and prints to stdout; for the same score an anonymous block (function) can be obtained as
1aK*11$+/;]@*
Dissection
This applies the definition literally:
1aK* e# Start with an array of 20 1s
e# Loop:
1 e# Push a 1 before the current list
1$+/ e# Form partial sums (including that bonus 1)
;] e# Ditch the last and gather in an array (of length 20)
q~* e# Take input and repeat the loop that many times
p e# Pretty print
answered 4 hours ago
Peter TaylorPeter Taylor
39.7k455143
39.7k455143
add a comment |
add a comment |
If this is an answer to a challenge…
…Be sure to follow the challenge specification. However, please refrain from exploiting obvious loopholes. Answers abusing any of the standard loopholes are considered invalid. If you think a specification is unclear or underspecified, comment on the question instead.
…Try to optimize your score. For instance, answers to code-golf challenges should attempt to be as short as possible. You can always include a readable version of the code in addition to the competitive one.
Explanations of your answer make it more interesting to read and are very much encouraged.…Include a short header which indicates the language(s) of your code and its score, as defined by the challenge.
More generally…
…Please make sure to answer the question and provide sufficient detail.
…Avoid asking for help, clarification or responding to other answers (use comments instead).
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodegolf.stackexchange.com%2fquestions%2f180855%2fmake-me-a-metasequence%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
2
$begingroup$
I assume you mean 20 terms, not digits?
$endgroup$
– Quintec
2 days ago
4
$begingroup$
By the way, the tier three metasequence is OEIS A000125
$endgroup$
– Embodiment of Ignorance
2 days ago
6
$begingroup$
You may want to clarify if solutions have to work for input 20 or greater.
$endgroup$
– FryAmTheEggman
2 days ago
4
$begingroup$
Can we choose to 0-index (so, output tier 1 for input
0, tier 2 for input1, etc.)?$endgroup$
– Lynn
2 days ago
1
$begingroup$
@MilkyWay90, it's not very clear what you mean: 219 (from level 5) only occurs in Pascal's triangle as $binom2191$ and $binom219218$.
$endgroup$
– Peter Taylor
yesterday