18
\$\begingroup\$

Inspiring myself on a recent challenge, we ought to compute a sequence that is very close to A160242.

Task

Your task is to generate the sequence \$ \{s_i\}_{i=0}^\infty \$:

1, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, ...

Which is more easily understandable in this format:

      1 2 1
    1 2 2 2 1
  1 2 2 2 2 2 1
1 2 2 2 2 2 2 2 1 ...

Another way to think of it is, this sequence is the concatenation of blocks \$b_i, 0 \leq i\$ where block \$b_i\$ is a 1, followed by \$2i + 1\$ 2s, followed by another 1.

Input

If your program takes input, the input is a non-negative integer n, telling you how far you should go in computing the sequence.

The sequence can

  • be 0-indexed, so that \$s_0 = 1, s_1 = 2, s_2 = 1, ... \$
  • be 1-indexed, so that \$s_1 = 1, s_2 = 2, s_3 = 1, ... \$

Output

Your code may do one of the following:

  • indefinitely print the sequence
  • print/return the term n as given by the input
  • print/return all the terms up to the term n as given by the input

Test cases

(the test cases are 0-indexed)

0 -> 1
1 -> 2
2 -> 1
3 -> 1
4 -> 2
5 -> 2
6 -> 2
7 -> 1
8 -> 1
9 -> 2
10 -> 2
11 -> 2
12 -> 2
13 -> 2
14 -> 1
15 -> 1
16 -> 2
17 -> 2
18 -> 2
19 -> 2
20 -> 2
21 -> 2
22 -> 2
23 -> 1
24 -> 1
25 -> 2
26 -> 2
27 -> 2
28 -> 2
29 -> 2

This is so the shortest submission in bytes, wins! If you liked this challenge, consider upvoting it... And happy golfing!

\$\endgroup\$
5
  • \$\begingroup\$ If I do my answer in 1-index, can I treat the test cases as 1-indexed as well? \$\endgroup\$ Mar 13, 2020 at 17:14
  • \$\begingroup\$ @JeffZeitlin of course! \$\endgroup\$
    – RGS
    Mar 13, 2020 at 17:15
  • \$\begingroup\$ You should leave the IO formats as the default rather than override them. If you meant to re-iterate the defaults, then you left a couple out (like a few of the options for functions) \$\endgroup\$
    – Jo King
    Mar 14, 2020 at 1:51
  • \$\begingroup\$ @JoKing I was pretty confident I had seen a fair share of sequence challenges where the 3 standard outputs were these. What did I leave out? \$\endgroup\$
    – RGS
    Mar 14, 2020 at 6:33
  • 1
    \$\begingroup\$ I may be taking indefinitely print the sequence too literally, but the tag wiki for sequence allows returns an infinite lazy iterator/generator \$\endgroup\$
    – Jo King
    Mar 14, 2020 at 10:51

34 Answers 34

1
2
0
\$\begingroup\$

APL+WIN, 31 bytes

Prompts for integer. Index origin=1
Returns single term of the series.

2 1[1++/m=1,(n+1),n←+\1+2×⍳m←⎕]

Try it online! Courtesy of Dyalog Classic

\$\endgroup\$
0
\$\begingroup\$

Haskell, 51 Bytes

f n=concat['1':['2'|x<-[0..y*2]]++"1"|y<-[0..n]]!!n

\$\endgroup\$
1
  • \$\begingroup\$ Not very competitive, but I thought that I would provide a Haskell solution. \$\endgroup\$
    – Benji
    Mar 13, 2020 at 20:10
0
\$\begingroup\$

Wolfram Language (Mathematica), 26 bytes

Count[√#+√(#+1),_@__]&

Try it online!

1-indexed.

√#+√(#+1)           (* sqrt(n)+sqrt(n+1) *)
Count[ % ,_@__]     (* count nonatomic subexpressions at the first level. *)
\$\endgroup\$
0
\$\begingroup\$

Haskell, 31 bytes

do n<-[1..];show$div(100^n)9*11

Try it online!

32 bytes

show=<<iterate(\x->x*100+121)121

Try it online!

\$\endgroup\$
1
2

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.