%I #30 Aug 05 2021 13:18:39
%S 1,2,3,1,3,1,2,1,3,1,2,3,1,1,2,1,3,1,2,3,1,3,1,2,1,1,2,3,1,1,2,1,3,1,
%T 2,3,1,3,1,2,1,3,1,2,3,1,1,2,1,1,2,3,1,3,1,2,1,1,2,3,1,1,2,1,3,1,2,3,
%U 1,3,1,2,1,3,1,2,3,1,1,2,1,3,1,2,3,1,3
%N Remove middle term and append, starting with [1, 2, 3].
%H Alois P. Heinz, <a href="/A342101/b342101.txt">Table of n, a(n) for n = 1..65537</a>
%H Kevin Ryde, <a href="https://user42.tuxfamily.org/seq-A342101-middle-delete/index.html">PARI/GP Code and Notes</a>.
%e Start with [1, 2, 3], take that sequence, remove the middle term, 2, and append to the original sequence, yielding [1, 2, 3, 1, 3]. Then repeat this process to give [1, 2, 3, 1, 3, 1, 2, 1, 3], and so on.
%p T:= proc(n) option remember; `if`(n=1, [$1..3][],
%p subsop(2^(n-2)+1=[][], [seq(T(i), i=1..n-1)])[])
%p end:
%p seq(T(n), n=1..8); # _Alois P. Heinz_, Apr 12 2021
%t Nest[Join[#, Drop[#, {(Length[#] + 1)/2}]] &, Range[3], 6] (* _Michael De Vlieger_, May 01 2021 *)
%o (Kotlin)
%o fun A342101(iter: Int): List<Int> = removeMiddle(listOf(1,2,3), iter)
%o fun removeMiddle(initial: List<Int>, iter: Int): List<Int> {
%o if (iter < 2) return initial
%o val prev = removeMiddle(initial, iter-1)
%o return prev + prev.subList(0, (prev.size - 1) / 2) + prev.subList((prev.size + 1) /2, prev.size)
%o }
%o (Python)
%o def aupton(terms):
%o alst = [1, 2, 3]
%o while len(alst) < terms:
%o alst += alst[:len(alst)//2] + alst[(len(alst)+1)//2:]
%o return alst[:terms]
%o print(aupton(87)) # _Michael S. Branicky_, Mar 26 2021
%o (PARI) first(n) = { my(v = [1,2,3]); for(i = 1, logint(n-1, 2), cv = v[^(#v + 1)\2]; v = concat(v, cv) ); v } \\ _David A. Corneth_, Apr 14 2021
%o (PARI) \\ Also see links.
%Y Cf. A000051.
%K nonn
%O 1,2
%A _Matthew Malone_, Feb 28 2021