Make me a metasequenceMake a pattern alternateGenerate Loopy puzzlesMake a one sequenceA register calculator...
Inverse of the covariance matrix of a multivariate normal distribution
VAT refund for a conference ticket in Sweden
A bug in Excel? Conditional formatting for marking duplicates also highlights unique value
What is better: yes / no radio, or simple checkbox?
Can I become debt free or should I file for bankruptcy? How do I manage my debt and finances?
Is the Bnei Brak of the Hagada and Megila the same as modern-day Bnei Brak?
Canadian citizen, on US no-fly list. What can I do in order to be allowed on flights which go through US airspace?
How to deal with being jealous of your own players?
Get length of the longest sequence of numbers with the same sign
What is a term for a function that when called repeatedly, has the same effect as calling once?
Why is working on the same position for more than 15 years not a red flag?
Logistics of a hovering watercraft in a fantasy setting
Did 5.25" floppies undergo a change in magnetic coating?
Skis versus snow shoes - when to choose which for travelling the backcountry?
Is the set of paths between any two points moving only in units on the plane countable or uncountable?
Reason why dimensional travelling would be restricted
Borrowing Characters
Heating basement floor with water heater
What could trigger powerful quakes on icy world?
Can a space-faring robot still function over a billion years?
A "strange" unit radio astronomy
Do Hexblade warlocks choose their spells from the Hexblade spell list or the warlock spell list?
What are all the squawk codes?
What type of postprocessing gives the effect of people standing out
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
yesterday
4
$begingroup$
By the way, the tier three metasequence is OEIS A000125
$endgroup$
– Embodiment of Ignorance
yesterday
6
$begingroup$
You may want to clarify if solutions have to work for input 20 or greater.
$endgroup$
– FryAmTheEggman
yesterday
4
$begingroup$
Can we choose to 0-index (so, output tier 1 for input0
, tier 2 for input1
, etc.)?
$endgroup$
– Lynn
yesterday
1
$begingroup$
@MilkyWay90, it's not very clear what you mean: 219 (from level 5) only occurs in Pascal's triangle as $binom{219}{1}$ and $binom{219}{218}$.
$endgroup$
– Peter Taylor
8 hours ago
|
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 yesterday
Geza Kerecsenyi
asked yesterday
Geza KerecsenyiGeza Kerecsenyi
30911
30911
2
$begingroup$
I assume you mean 20 terms, not digits?
$endgroup$
– Quintec
yesterday
4
$begingroup$
By the way, the tier three metasequence is OEIS A000125
$endgroup$
– Embodiment of Ignorance
yesterday
6
$begingroup$
You may want to clarify if solutions have to work for input 20 or greater.
$endgroup$
– FryAmTheEggman
yesterday
4
$begingroup$
Can we choose to 0-index (so, output tier 1 for input0
, tier 2 for input1
, etc.)?
$endgroup$
– Lynn
yesterday
1
$begingroup$
@MilkyWay90, it's not very clear what you mean: 219 (from level 5) only occurs in Pascal's triangle as $binom{219}{1}$ and $binom{219}{218}$.
$endgroup$
– Peter Taylor
8 hours ago
|
show 5 more comments
2
$begingroup$
I assume you mean 20 terms, not digits?
$endgroup$
– Quintec
yesterday
4
$begingroup$
By the way, the tier three metasequence is OEIS A000125
$endgroup$
– Embodiment of Ignorance
yesterday
6
$begingroup$
You may want to clarify if solutions have to work for input 20 or greater.
$endgroup$
– FryAmTheEggman
yesterday
4
$begingroup$
Can we choose to 0-index (so, output tier 1 for input0
, tier 2 for input1
, etc.)?
$endgroup$
– Lynn
yesterday
1
$begingroup$
@MilkyWay90, it's not very clear what you mean: 219 (from level 5) only occurs in Pascal's triangle as $binom{219}{1}$ and $binom{219}{218}$.
$endgroup$
– Peter Taylor
8 hours ago
2
2
$begingroup$
I assume you mean 20 terms, not digits?
$endgroup$
– Quintec
yesterday
$begingroup$
I assume you mean 20 terms, not digits?
$endgroup$
– Quintec
yesterday
4
4
$begingroup$
By the way, the tier three metasequence is OEIS A000125
$endgroup$
– Embodiment of Ignorance
yesterday
$begingroup$
By the way, the tier three metasequence is OEIS A000125
$endgroup$
– Embodiment of Ignorance
yesterday
6
6
$begingroup$
You may want to clarify if solutions have to work for input 20 or greater.
$endgroup$
– FryAmTheEggman
yesterday
$begingroup$
You may want to clarify if solutions have to work for input 20 or greater.
$endgroup$
– FryAmTheEggman
yesterday
4
4
$begingroup$
Can we choose to 0-index (so, output tier 1 for input
0
, tier 2 for input 1
, etc.)?$endgroup$
– Lynn
yesterday
$begingroup$
Can we choose to 0-index (so, output tier 1 for input
0
, tier 2 for input 1
, etc.)?$endgroup$
– Lynn
yesterday
1
1
$begingroup$
@MilkyWay90, it's not very clear what you mean: 219 (from level 5) only occurs in Pascal's triangle as $binom{219}{1}$ and $binom{219}{218}$.
$endgroup$
– Peter Taylor
8 hours ago
$begingroup$
@MilkyWay90, it's not very clear what you mean: 219 (from level 5) only occurs in Pascal's triangle as $binom{219}{1}$ and $binom{219}{218}$.
$endgroup$
– Peter Taylor
8 hours ago
|
show 5 more comments
23 Answers
23
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$
$begingroup$
Nice insight! :)
$endgroup$
– Lynn
23 hours ago
$begingroup$
There's almost a built-in for that, but unfortunately it's longer.
$endgroup$
– Peter Taylor
6 hours ago
$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) = begin{cases}1 & textrm{if }k=0 \ 2T(n,k-1) - binom{k-1}{n} & textrm{otherwise}end{cases}$$
$endgroup$
– Peter Taylor
3 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
7 hours ago
$begingroup$
take 20.(iterate(scanl(+)1)[1..]!!)
would only cost a byte more to fix that
$endgroup$
– H.PWiz
2 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 $$text{meta-sequence}_n(i) = sum_{k=0}^n binom ik.$$
$endgroup$
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-1}a(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
20 hours ago
$begingroup$
@ovs Thanks! I found a couple more bytes by using a different base case, too.
$endgroup$
– DLosc
20 hours ago
$begingroup$
:( the nice way is too long
$endgroup$
– ASCII-only
19 hours ago
$begingroup$
or a combinations builtin, yeah
$endgroup$
– ASCII-only
19 hours ago
$begingroup$
closer (with stolen combinations function)
$endgroup$
– ASCII-only
19 hours ago
|
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}^nfrac{x^i}{(1-x)^{i+1}}=frac{1-left(frac{x}{1-x}right)^{1+n}}{1-2x}$$
$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
yesterday
$begingroup$
@Adám oh duh.. right
$endgroup$
– dzaima
yesterday
$begingroup$
Full program at 17:(≢↑(+1∘,)⍣⎕)20⍴1
$endgroup$
– Adám
yesterday
$begingroup$
14 bytes by using the REPL (add the-s
flag).
$endgroup$
– Erik the Outgolfer
23 hours ago
$begingroup$
If you use the flag, language becomes-s
btw (unless-s
is repl flag?)
$endgroup$
– ASCII-only
18 hours ago
|
show 1 more comment
$begingroup$
Perl 6, 34 32 bytes
-2 bytes thanks to Jo King
{(@,{[+] 1,|.[^19]}...*)[$_+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$^a
instead of$_
is necessary)
$endgroup$
– Jo King
20 hours ago
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
9 hours ago
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$
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$
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$
Wolfram Language (Mathematica), 42 bytes
Nest[FoldList[Plus,1,#]&,Range[21-#],#-1]&
Try it online!
$endgroup$
add a comment |
$begingroup$
Ruby, 49 bytes
f=->n{n<1?[1]*20:[o=1]+f[n-1][0,19].map{|x|o+=x}}
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
19 hours ago
$begingroup$
also 49
$endgroup$
– ASCII-only
19 hours ago
$begingroup$
46
$endgroup$
– ASCII-only
19 hours ago
add a comment |
$begingroup$
Retina, 59 bytes
.+
19*$(_,
Replace the input with 19 1
s (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
.
_+(?<=((_)|,)+)
$#2*
Calculate the cumulative sum.
_+
$.&
Convert to decimal.
Try it online!
$endgroup$
add a comment |
$begingroup$
JavaScript (Node.js), 58 bytes
t=>Array(20).fill(t).map(g=(t,i)=>i--*t?g(t,i)+g(t-1,i):1)
Try it online!
It is trivial to write down following recursive formula based on the description in question
$$ g(t,i)=begin{cases}
g(t,i-1)+g(t-1,i-1) & text{if} quad icdot t>0 \
1 & text{if} quad icdot t=0 \
end{cases} $$
And you just need to generate an Array of 20 elements with $[g(t,0)dots g(t,19)]$
$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
10 hours ago
add a comment |
$begingroup$
Ruby, 74 bytes
a=->b{c=[1];d=0;b==1?c=(1..20).to_a: 19.times{c<<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.times{ary << 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$
Jelly, 10 bytes
20RṖ1;ÄƲ⁸¡
Try it online!
0-indexed.
$endgroup$
add a comment |
$begingroup$
R, 59 bytes
Reduce(function(x,y)diffinv(x,,,y),!!1:scan(),!!1:19)[1:20]
Try it online!
Repeated diffinv
with xi=1
, and subset out the first 20 terms.
$endgroup$
add a comment |
$begingroup$
C# (Visual C# Interactive Compiler), 120 bytes
n=>{for(long i=-1,h=0,m=0;++i<20;Print(i<1?1:h))for(m=h=0;m<=n;)h+=f(i)/(f(m)*f(i-m++));long f(long a)=>a>1?a*f(a-1):1;}
Try it online!
Based off of alephalpha's formula.
$endgroup$
add a comment |
$begingroup$
K (oK), 18 bytes
{x(+1,19#)/1+!20}
Try it online!
0-indexed
$endgroup$
add a comment |
$begingroup$
Perl 5, 48 bytes
$x=1,@A=(1,map$x+=$_,@A[0..18])for 0..$_;$_="@A"
TIO
$endgroup$
add a comment |
$begingroup$
Japt, 15 bytes
0-indexed; replace h
with p
for 1-indexed.
ÈîXi1 å+}gNh20õ
Try it
$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
23 Answers
23
active
oldest
votes
23 Answers
23
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$
$begingroup$
Nice insight! :)
$endgroup$
– Lynn
23 hours ago
$begingroup$
There's almost a built-in for that, but unfortunately it's longer.
$endgroup$
– Peter Taylor
6 hours ago
$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) = begin{cases}1 & textrm{if }k=0 \ 2T(n,k-1) - binom{k-1}{n} & textrm{otherwise}end{cases}$$
$endgroup$
– Peter Taylor
3 hours ago
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$
$begingroup$
Nice insight! :)
$endgroup$
– Lynn
23 hours ago
$begingroup$
There's almost a built-in for that, but unfortunately it's longer.
$endgroup$
– Peter Taylor
6 hours ago
$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) = begin{cases}1 & textrm{if }k=0 \ 2T(n,k-1) - binom{k-1}{n} & textrm{otherwise}end{cases}$$
$endgroup$
– Peter Taylor
3 hours ago
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 14 hours ago
answered yesterday
alephalphaalephalpha
21.7k32994
21.7k32994
$begingroup$
Nice insight! :)
$endgroup$
– Lynn
23 hours ago
$begingroup$
There's almost a built-in for that, but unfortunately it's longer.
$endgroup$
– Peter Taylor
6 hours ago
$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) = begin{cases}1 & textrm{if }k=0 \ 2T(n,k-1) - binom{k-1}{n} & textrm{otherwise}end{cases}$$
$endgroup$
– Peter Taylor
3 hours ago
add a comment |
$begingroup$
Nice insight! :)
$endgroup$
– Lynn
23 hours ago
$begingroup$
There's almost a built-in for that, but unfortunately it's longer.
$endgroup$
– Peter Taylor
6 hours ago
$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) = begin{cases}1 & textrm{if }k=0 \ 2T(n,k-1) - binom{k-1}{n} & textrm{otherwise}end{cases}$$
$endgroup$
– Peter Taylor
3 hours ago
$begingroup$
Nice insight! :)
$endgroup$
– Lynn
23 hours ago
$begingroup$
Nice insight! :)
$endgroup$
– Lynn
23 hours ago
$begingroup$
There's almost a built-in for that, but unfortunately it's longer.
$endgroup$
– Peter Taylor
6 hours ago
$begingroup$
There's almost a built-in for that, but unfortunately it's longer.
$endgroup$
– Peter Taylor
6 hours ago
$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) = begin{cases}1 & textrm{if }k=0 \ 2T(n,k-1) - binom{k-1}{n} & textrm{otherwise}end{cases}$$
$endgroup$
– Peter Taylor
3 hours ago
$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) = begin{cases}1 & textrm{if }k=0 \ 2T(n,k-1) - binom{k-1}{n} & textrm{otherwise}end{cases}$$
$endgroup$
– Peter Taylor
3 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
7 hours ago
$begingroup$
take 20.(iterate(scanl(+)1)[1..]!!)
would only cost a byte more to fix that
$endgroup$
– H.PWiz
2 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
7 hours ago
$begingroup$
take 20.(iterate(scanl(+)1)[1..]!!)
would only cost a byte more to fix that
$endgroup$
– H.PWiz
2 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 2 hours ago
answered yesterday
LynnLynn
50.2k797231
50.2k797231
1
$begingroup$
[1..20-n]
isn't going to work for $n > 20$
$endgroup$
– Peter Taylor
7 hours ago
$begingroup$
take 20.(iterate(scanl(+)1)[1..]!!)
would only cost a byte more to fix that
$endgroup$
– H.PWiz
2 hours ago
add a comment |
1
$begingroup$
[1..20-n]
isn't going to work for $n > 20$
$endgroup$
– Peter Taylor
7 hours ago
$begingroup$
take 20.(iterate(scanl(+)1)[1..]!!)
would only cost a byte more to fix that
$endgroup$
– H.PWiz
2 hours ago
1
1
$begingroup$
[1..20-n]
isn't going to work for $n > 20$$endgroup$
– Peter Taylor
7 hours ago
$begingroup$
[1..20-n]
isn't going to work for $n > 20$$endgroup$
– Peter Taylor
7 hours ago
$begingroup$
take 20.(iterate(scanl(+)1)[1..]!!)
would only cost a byte more to fix that$endgroup$
– H.PWiz
2 hours ago
$begingroup$
take 20.(iterate(scanl(+)1)[1..]!!)
would only cost a byte more to fix that$endgroup$
– H.PWiz
2 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 $$text{meta-sequence}_n(i) = sum_{k=0}^n binom ik.$$
$endgroup$
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 $$text{meta-sequence}_n(i) = sum_{k=0}^n binom ik.$$
$endgroup$
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 $$text{meta-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 $$text{meta-sequence}_n(i) = sum_{k=0}^n binom ik.$$
edited 2 hours ago
answered 22 hours ago
LynnLynn
50.2k797231
50.2k797231
add a comment |
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-1}a(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
20 hours ago
$begingroup$
@ovs Thanks! I found a couple more bytes by using a different base case, too.
$endgroup$
– DLosc
20 hours ago
$begingroup$
:( the nice way is too long
$endgroup$
– ASCII-only
19 hours ago
$begingroup$
or a combinations builtin, yeah
$endgroup$
– ASCII-only
19 hours ago
$begingroup$
closer (with stolen combinations function)
$endgroup$
– ASCII-only
19 hours ago
|
show 1 more 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-1}a(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
20 hours ago
$begingroup$
@ovs Thanks! I found a couple more bytes by using a different base case, too.
$endgroup$
– DLosc
20 hours ago
$begingroup$
:( the nice way is too long
$endgroup$
– ASCII-only
19 hours ago
$begingroup$
or a combinations builtin, yeah
$endgroup$
– ASCII-only
19 hours ago
$begingroup$
closer (with stolen combinations function)
$endgroup$
– ASCII-only
19 hours ago
|
show 1 more 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-1}a(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-1}a(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 19 hours ago
answered 20 hours ago
DLoscDLosc
19.3k33889
19.3k33889
$begingroup$
61 bytes as a recursive lambda function (Significantly more inefficient).
$endgroup$
– ovs
20 hours ago
$begingroup$
@ovs Thanks! I found a couple more bytes by using a different base case, too.
$endgroup$
– DLosc
20 hours ago
$begingroup$
:( the nice way is too long
$endgroup$
– ASCII-only
19 hours ago
$begingroup$
or a combinations builtin, yeah
$endgroup$
– ASCII-only
19 hours ago
$begingroup$
closer (with stolen combinations function)
$endgroup$
– ASCII-only
19 hours ago
|
show 1 more comment
$begingroup$
61 bytes as a recursive lambda function (Significantly more inefficient).
$endgroup$
– ovs
20 hours ago
$begingroup$
@ovs Thanks! I found a couple more bytes by using a different base case, too.
$endgroup$
– DLosc
20 hours ago
$begingroup$
:( the nice way is too long
$endgroup$
– ASCII-only
19 hours ago
$begingroup$
or a combinations builtin, yeah
$endgroup$
– ASCII-only
19 hours ago
$begingroup$
closer (with stolen combinations function)
$endgroup$
– ASCII-only
19 hours ago
$begingroup$
61 bytes as a recursive lambda function (Significantly more inefficient).
$endgroup$
– ovs
20 hours ago
$begingroup$
61 bytes as a recursive lambda function (Significantly more inefficient).
$endgroup$
– ovs
20 hours ago
$begingroup$
@ovs Thanks! I found a couple more bytes by using a different base case, too.
$endgroup$
– DLosc
20 hours ago
$begingroup$
@ovs Thanks! I found a couple more bytes by using a different base case, too.
$endgroup$
– DLosc
20 hours ago
$begingroup$
:( the nice way is too long
$endgroup$
– ASCII-only
19 hours ago
$begingroup$
:( the nice way is too long
$endgroup$
– ASCII-only
19 hours ago
$begingroup$
or a combinations builtin, yeah
$endgroup$
– ASCII-only
19 hours ago
$begingroup$
or a combinations builtin, yeah
$endgroup$
– ASCII-only
19 hours ago
$begingroup$
closer (with stolen combinations function)
$endgroup$
– ASCII-only
19 hours ago
$begingroup$
closer (with stolen combinations function)
$endgroup$
– ASCII-only
19 hours ago
|
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}^nfrac{x^i}{(1-x)^{i+1}}=frac{1-left(frac{x}{1-x}right)^{1+n}}{1-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}^nfrac{x^i}{(1-x)^{i+1}}=frac{1-left(frac{x}{1-x}right)^{1+n}}{1-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}^nfrac{x^i}{(1-x)^{i+1}}=frac{1-left(frac{x}{1-x}right)^{1+n}}{1-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}^nfrac{x^i}{(1-x)^{i+1}}=frac{1-left(frac{x}{1-x}right)^{1+n}}{1-2x}$$
edited yesterday
answered yesterday
alephalphaalephalpha
21.7k32994
21.7k32994
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
yesterday
$begingroup$
@Adám oh duh.. right
$endgroup$
– dzaima
yesterday
$begingroup$
Full program at 17:(≢↑(+1∘,)⍣⎕)20⍴1
$endgroup$
– Adám
yesterday
$begingroup$
14 bytes by using the REPL (add the-s
flag).
$endgroup$
– Erik the Outgolfer
23 hours ago
$begingroup$
If you use the flag, language becomes-s
btw (unless-s
is repl flag?)
$endgroup$
– ASCII-only
18 hours ago
|
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
yesterday
$begingroup$
@Adám oh duh.. right
$endgroup$
– dzaima
yesterday
$begingroup$
Full program at 17:(≢↑(+1∘,)⍣⎕)20⍴1
$endgroup$
– Adám
yesterday
$begingroup$
14 bytes by using the REPL (add the-s
flag).
$endgroup$
– Erik the Outgolfer
23 hours ago
$begingroup$
If you use the flag, language becomes-s
btw (unless-s
is repl flag?)
$endgroup$
– ASCII-only
18 hours ago
|
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 23 hours ago
answered yesterday
dzaimadzaima
15.2k21856
15.2k21856
$begingroup$
-1 byte using dzaima/APL:1∘,
→1,
$endgroup$
– Adám
yesterday
$begingroup$
@Adám oh duh.. right
$endgroup$
– dzaima
yesterday
$begingroup$
Full program at 17:(≢↑(+1∘,)⍣⎕)20⍴1
$endgroup$
– Adám
yesterday
$begingroup$
14 bytes by using the REPL (add the-s
flag).
$endgroup$
– Erik the Outgolfer
23 hours ago
$begingroup$
If you use the flag, language becomes-s
btw (unless-s
is repl flag?)
$endgroup$
– ASCII-only
18 hours ago
|
show 1 more comment
$begingroup$
-1 byte using dzaima/APL:1∘,
→1,
$endgroup$
– Adám
yesterday
$begingroup$
@Adám oh duh.. right
$endgroup$
– dzaima
yesterday
$begingroup$
Full program at 17:(≢↑(+1∘,)⍣⎕)20⍴1
$endgroup$
– Adám
yesterday
$begingroup$
14 bytes by using the REPL (add the-s
flag).
$endgroup$
– Erik the Outgolfer
23 hours ago
$begingroup$
If you use the flag, language becomes-s
btw (unless-s
is repl flag?)
$endgroup$
– ASCII-only
18 hours ago
$begingroup$
-1 byte using dzaima/APL:
1∘,
→ 1,
$endgroup$
– Adám
yesterday
$begingroup$
-1 byte using dzaima/APL:
1∘,
→ 1,
$endgroup$
– Adám
yesterday
$begingroup$
@Adám oh duh.. right
$endgroup$
– dzaima
yesterday
$begingroup$
@Adám oh duh.. right
$endgroup$
– dzaima
yesterday
$begingroup$
Full program at 17:
(≢↑(+1∘,)⍣⎕)20⍴1
$endgroup$
– Adám
yesterday
$begingroup$
Full program at 17:
(≢↑(+1∘,)⍣⎕)20⍴1
$endgroup$
– Adám
yesterday
$begingroup$
14 bytes by using the REPL (add the
-s
flag).$endgroup$
– Erik the Outgolfer
23 hours ago
$begingroup$
14 bytes by using the REPL (add the
-s
flag).$endgroup$
– Erik the Outgolfer
23 hours ago
$begingroup$
If you use the flag, language becomes
-s
btw (unless -s
is repl flag?)$endgroup$
– ASCII-only
18 hours ago
$begingroup$
If you use the flag, language becomes
-s
btw (unless -s
is repl flag?)$endgroup$
– ASCII-only
18 hours ago
|
show 1 more comment
$begingroup$
Perl 6, 34 32 bytes
-2 bytes thanks to Jo King
{(@,{[+] 1,|.[^19]}...*)[$_+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$^a
instead of$_
is necessary)
$endgroup$
– Jo King
20 hours ago
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
9 hours ago
add a comment |
$begingroup$
Perl 6, 34 32 bytes
-2 bytes thanks to Jo King
{(@,{[+] 1,|.[^19]}...*)[$_+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$^a
instead of$_
is necessary)
$endgroup$
– Jo King
20 hours ago
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
9 hours ago
add a comment |
$begingroup$
Perl 6, 34 32 bytes
-2 bytes thanks to Jo King
{(@,{[+] 1,|.[^19]}...*)[$_+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,|.[^19]}...*)[$_+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 20 hours ago
answered 22 hours ago
nwellnhofnwellnhof
7,21511128
7,21511128
$begingroup$
29 bytes (the$^a
instead of$_
is necessary)
$endgroup$
– Jo King
20 hours ago
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
9 hours ago
add a comment |
$begingroup$
29 bytes (the$^a
instead of$_
is necessary)
$endgroup$
– Jo King
20 hours ago
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
9 hours ago
$begingroup$
29 bytes (the
$^a
instead of $_
is necessary)$endgroup$
– Jo King
20 hours ago
$begingroup$
29 bytes (the
$^a
instead of $_
is necessary)$endgroup$
– Jo King
20 hours ago
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
9 hours ago
$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
9 hours ago
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 20 hours ago
answered 21 hours ago
ovsovs
19.2k21160
19.2k21160
add a comment |
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$
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$
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 3 hours ago
Sriotchilism O'ZaicSriotchilism O'Zaic
35.3k10159369
35.3k10159369
add a comment |
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 22 hours ago
answered yesterday
ArnauldArnauld
77.7k694325
77.7k694325
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 20 hours ago
answered 20 hours ago
JonahJonah
2,371916
2,371916
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 19 hours ago
shrapshrap
211
211
add a comment |
add a comment |
$begingroup$
Ruby, 49 bytes
f=->n{n<1?[1]*20:[o=1]+f[n-1][0,19].map{|x|o+=x}}
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
19 hours ago
$begingroup$
also 49
$endgroup$
– ASCII-only
19 hours ago
$begingroup$
46
$endgroup$
– ASCII-only
19 hours ago
add a comment |
$begingroup$
Ruby, 49 bytes
f=->n{n<1?[1]*20:[o=1]+f[n-1][0,19].map{|x|o+=x}}
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
19 hours ago
$begingroup$
also 49
$endgroup$
– ASCII-only
19 hours ago
$begingroup$
46
$endgroup$
– ASCII-only
19 hours ago
add a comment |
$begingroup$
Ruby, 49 bytes
f=->n{n<1?[1]*20:[o=1]+f[n-1][0,19].map{|x|o+=x}}
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=->n{n<1?[1]*20:[o=1]+f[n-1][0,19].map{|x|o+=x}}
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 19 hours ago
answered 23 hours ago
histocrathistocrat
19k43172
19k43172
$begingroup$
tio.run/#ruby pls
$endgroup$
– ASCII-only
19 hours ago
$begingroup$
also 49
$endgroup$
– ASCII-only
19 hours ago
$begingroup$
46
$endgroup$
– ASCII-only
19 hours ago
add a comment |
$begingroup$
tio.run/#ruby pls
$endgroup$
– ASCII-only
19 hours ago
$begingroup$
also 49
$endgroup$
– ASCII-only
19 hours ago
$begingroup$
46
$endgroup$
– ASCII-only
19 hours ago
$begingroup$
tio.run/#ruby pls
$endgroup$
– ASCII-only
19 hours ago
$begingroup$
tio.run/#ruby pls
$endgroup$
– ASCII-only
19 hours ago
$begingroup$
also 49
$endgroup$
– ASCII-only
19 hours ago
$begingroup$
also 49
$endgroup$
– ASCII-only
19 hours ago
$begingroup$
46
$endgroup$
– ASCII-only
19 hours ago
$begingroup$
46
$endgroup$
– ASCII-only
19 hours ago
add a comment |
$begingroup$
Retina, 59 bytes
.+
19*$(_,
Replace the input with 19 1
s (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
.
_+(?<=((_)|,)+)
$#2*
Calculate the cumulative sum.
_+
$.&
Convert to decimal.
Try it online!
$endgroup$
add a comment |
$begingroup$
Retina, 59 bytes
.+
19*$(_,
Replace the input with 19 1
s (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
.
_+(?<=((_)|,)+)
$#2*
Calculate the cumulative sum.
_+
$.&
Convert to decimal.
Try it online!
$endgroup$
add a comment |
$begingroup$
Retina, 59 bytes
.+
19*$(_,
Replace the input with 19 1
s (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
.
_+(?<=((_)|,)+)
$#2*
Calculate the cumulative sum.
_+
$.&
Convert to decimal.
Try it online!
$endgroup$
Retina, 59 bytes
.+
19*$(_,
Replace the input with 19 1
s (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
.
_+(?<=((_)|,)+)
$#2*
Calculate the cumulative sum.
_+
$.&
Convert to decimal.
Try it online!
answered 18 hours ago
NeilNeil
81.3k745178
81.3k745178
add a comment |
add a comment |
$begingroup$
JavaScript (Node.js), 58 bytes
t=>Array(20).fill(t).map(g=(t,i)=>i--*t?g(t,i)+g(t-1,i):1)
Try it online!
It is trivial to write down following recursive formula based on the description in question
$$ g(t,i)=begin{cases}
g(t,i-1)+g(t-1,i-1) & text{if} quad icdot t>0 \
1 & text{if} quad icdot t=0 \
end{cases} $$
And you just need to generate an Array of 20 elements with $[g(t,0)dots g(t,19)]$
$endgroup$
add a comment |
$begingroup$
JavaScript (Node.js), 58 bytes
t=>Array(20).fill(t).map(g=(t,i)=>i--*t?g(t,i)+g(t-1,i):1)
Try it online!
It is trivial to write down following recursive formula based on the description in question
$$ g(t,i)=begin{cases}
g(t,i-1)+g(t-1,i-1) & text{if} quad icdot t>0 \
1 & text{if} quad icdot t=0 \
end{cases} $$
And you just need to generate an Array of 20 elements with $[g(t,0)dots g(t,19)]$
$endgroup$
add a comment |
$begingroup$
JavaScript (Node.js), 58 bytes
t=>Array(20).fill(t).map(g=(t,i)=>i--*t?g(t,i)+g(t-1,i):1)
Try it online!
It is trivial to write down following recursive formula based on the description in question
$$ g(t,i)=begin{cases}
g(t,i-1)+g(t-1,i-1) & text{if} quad icdot t>0 \
1 & text{if} quad icdot t=0 \
end{cases} $$
And you just need to generate an Array of 20 elements with $[g(t,0)dots g(t,19)]$
$endgroup$
JavaScript (Node.js), 58 bytes
t=>Array(20).fill(t).map(g=(t,i)=>i--*t?g(t,i)+g(t-1,i):1)
Try it online!
It is trivial to write down following recursive formula based on the description in question
$$ g(t,i)=begin{cases}
g(t,i-1)+g(t-1,i-1) & text{if} quad icdot t>0 \
1 & text{if} quad icdot t=0 \
end{cases} $$
And you just need to generate an Array of 20 elements with $[g(t,0)dots g(t,19)]$
edited 12 hours ago
answered 16 hours ago
tshtsh
9,31511652
9,31511652
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
10 hours ago
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
10 hours ago
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 11 hours ago
answered 11 hours ago
Kevin CruijssenKevin Cruijssen
39.5k560203
39.5k560203
1
$begingroup$
Nice use of.¥
!
$endgroup$
– Emigna
10 hours ago
add a comment |
1
$begingroup$
Nice use of.¥
!
$endgroup$
– Emigna
10 hours ago
1
1
$begingroup$
Nice use of
.¥
!$endgroup$
– Emigna
10 hours ago
$begingroup$
Nice use of
.¥
!$endgroup$
– Emigna
10 hours ago
add a comment |
$begingroup$
Ruby, 74 bytes
a=->b{c=[1];d=0;b==1?c=(1..20).to_a: 19.times{c<<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.times{ary << 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=->b{c=[1];d=0;b==1?c=(1..20).to_a: 19.times{c<<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.times{ary << 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=->b{c=[1];d=0;b==1?c=(1..20).to_a: 19.times{c<<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.times{ary << 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=->b{c=[1];d=0;b==1?c=(1..20).to_a: 19.times{c<<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.times{ary << 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 yesterday
CG One HandedCG One Handed
615
615
add a comment |
add a comment |
$begingroup$
Jelly, 10 bytes
20RṖ1;ÄƲ⁸¡
Try it online!
0-indexed.
$endgroup$
add a comment |
$begingroup$
Jelly, 10 bytes
20RṖ1;ÄƲ⁸¡
Try it online!
0-indexed.
$endgroup$
add a comment |
$begingroup$
Jelly, 10 bytes
20RṖ1;ÄƲ⁸¡
Try it online!
0-indexed.
$endgroup$
Jelly, 10 bytes
20RṖ1;ÄƲ⁸¡
Try it online!
0-indexed.
answered yesterday
Erik the OutgolferErik the Outgolfer
32.1k429103
32.1k429103
add a comment |
add a comment |
$begingroup$
R, 59 bytes
Reduce(function(x,y)diffinv(x,,,y),!!1:scan(),!!1:19)[1:20]
Try it online!
Repeated diffinv
with xi=1
, and subset out the first 20 terms.
$endgroup$
add a comment |
$begingroup$
R, 59 bytes
Reduce(function(x,y)diffinv(x,,,y),!!1:scan(),!!1:19)[1:20]
Try it online!
Repeated diffinv
with xi=1
, and subset out the first 20 terms.
$endgroup$
add a comment |
$begingroup$
R, 59 bytes
Reduce(function(x,y)diffinv(x,,,y),!!1:scan(),!!1:19)[1:20]
Try it online!
Repeated diffinv
with xi=1
, and subset out the first 20 terms.
$endgroup$
R, 59 bytes
Reduce(function(x,y)diffinv(x,,,y),!!1:scan(),!!1:19)[1:20]
Try it online!
Repeated diffinv
with xi=1
, and subset out the first 20 terms.
answered 20 hours ago
GiuseppeGiuseppe
16.6k31052
16.6k31052
add a comment |
add a comment |
$begingroup$
C# (Visual C# Interactive Compiler), 120 bytes
n=>{for(long i=-1,h=0,m=0;++i<20;Print(i<1?1:h))for(m=h=0;m<=n;)h+=f(i)/(f(m)*f(i-m++));long f(long a)=>a>1?a*f(a-1):1;}
Try it online!
Based off of alephalpha's formula.
$endgroup$
add a comment |
$begingroup$
C# (Visual C# Interactive Compiler), 120 bytes
n=>{for(long i=-1,h=0,m=0;++i<20;Print(i<1?1:h))for(m=h=0;m<=n;)h+=f(i)/(f(m)*f(i-m++));long f(long a)=>a>1?a*f(a-1):1;}
Try it online!
Based off of alephalpha's formula.
$endgroup$
add a comment |
$begingroup$
C# (Visual C# Interactive Compiler), 120 bytes
n=>{for(long i=-1,h=0,m=0;++i<20;Print(i<1?1:h))for(m=h=0;m<=n;)h+=f(i)/(f(m)*f(i-m++));long f(long a)=>a>1?a*f(a-1):1;}
Try it online!
Based off of alephalpha's formula.
$endgroup$
C# (Visual C# Interactive Compiler), 120 bytes
n=>{for(long i=-1,h=0,m=0;++i<20;Print(i<1?1:h))for(m=h=0;m<=n;)h+=f(i)/(f(m)*f(i-m++));long f(long a)=>a>1?a*f(a-1):1;}
Try it online!
Based off of alephalpha's formula.
answered 15 hours ago
Embodiment of IgnoranceEmbodiment of Ignorance
1,448123
1,448123
add a comment |
add a comment |
$begingroup$
K (oK), 18 bytes
{x(+1,19#)/1+!20}
Try it online!
0-indexed
$endgroup$
add a comment |
$begingroup$
K (oK), 18 bytes
{x(+1,19#)/1+!20}
Try it online!
0-indexed
$endgroup$
add a comment |
$begingroup$
K (oK), 18 bytes
{x(+1,19#)/1+!20}
Try it online!
0-indexed
$endgroup$
K (oK), 18 bytes
{x(+1,19#)/1+!20}
Try it online!
0-indexed
answered 10 hours ago
Galen IvanovGalen Ivanov
6,92711034
6,92711034
add a comment |
add a comment |
$begingroup$
Perl 5, 48 bytes
$x=1,@A=(1,map$x+=$_,@A[0..18])for 0..$_;$_="@A"
TIO
$endgroup$
add a comment |
$begingroup$
Perl 5, 48 bytes
$x=1,@A=(1,map$x+=$_,@A[0..18])for 0..$_;$_="@A"
TIO
$endgroup$
add a comment |
$begingroup$
Perl 5, 48 bytes
$x=1,@A=(1,map$x+=$_,@A[0..18])for 0..$_;$_="@A"
TIO
$endgroup$
Perl 5, 48 bytes
$x=1,@A=(1,map$x+=$_,@A[0..18])for 0..$_;$_="@A"
TIO
answered 5 hours ago
Nahuel FouilleulNahuel Fouilleul
2,67029
2,67029
add a comment |
add a comment |
$begingroup$
Japt, 15 bytes
0-indexed; replace h
with p
for 1-indexed.
ÈîXi1 å+}gNh20õ
Try it
$endgroup$
add a comment |
$begingroup$
Japt, 15 bytes
0-indexed; replace h
with p
for 1-indexed.
ÈîXi1 å+}gNh20õ
Try it
$endgroup$
add a comment |
$begingroup$
Japt, 15 bytes
0-indexed; replace h
with p
for 1-indexed.
ÈîXi1 å+}gNh20õ
Try it
$endgroup$
Japt, 15 bytes
0-indexed; replace h
with p
for 1-indexed.
ÈîXi1 å+}gNh20õ
Try it
answered 1 hour ago
ShaggyShaggy
19.3k21667
19.3k21667
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
yesterday
4
$begingroup$
By the way, the tier three metasequence is OEIS A000125
$endgroup$
– Embodiment of Ignorance
yesterday
6
$begingroup$
You may want to clarify if solutions have to work for input 20 or greater.
$endgroup$
– FryAmTheEggman
yesterday
4
$begingroup$
Can we choose to 0-index (so, output tier 1 for input
0
, tier 2 for input1
, etc.)?$endgroup$
– Lynn
yesterday
1
$begingroup$
@MilkyWay90, it's not very clear what you mean: 219 (from level 5) only occurs in Pascal's triangle as $binom{219}{1}$ and $binom{219}{218}$.
$endgroup$
– Peter Taylor
8 hours ago