cp's OEIS Frontend

This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.

A228162 Number of bangbangs (!!) in shell substitution when starting with : '!!' and : "!!" '!!'.

Original entry on oeis.org

1, 2, 2, 3, 5, 17, 161, 15681, 159591041, 16866847940875521, 189345699699803478502456213711361
Offset: 0

Views

Author

Volker Diels-Grabsch, Aug 16 2013

Keywords

Comments

Executing the following no-op commands in a unix shell (bash, dash or zsh)
: '!!'
: "!!" '!!'
followed by repeated execution of the last command (arrow-up, enter) leads to a series of substitutions due to the !! (bangbang) operator:
: ": '!!'" '!!'
: ": ': ": '!!'" '!!''" '!!'
: ": ': ": '!!'" ': ": ': ": '!!'" '!!''" '!!'''" '!!'
These commands show a very irregular pattern as some of the single-quotes (') and double quotes(") switch their role from string delimiters to string contents and vice versa.
Also, these commands grow very fast. After a few repetitions, they'll quickly fill the RAM as well as the hard disk (because of the command history file).
This sequence describes the number of bangbangs (!!) of each command.

Examples

			For n = 4 the value a(4) = 5 is the number of bangbangs (!!) in the following command:
: ": ': ": '!!'" ': ": ': ": '!!'" '!!''" '!!'''" '!!'
		

Programs

  • Python
    for i, ai in enumerate([1, 2, 2, 3, 5]):
        print('%d %d' % (i, ai))
    p, q = 2, 4
    for i in range(5, 15):
        print('%d %d' % (i, 4*p + 2*q + 1))
        p, q = 3*p*p + 2*p + p*q, 2*p*p + 2*p*q + 2*q

Formula

a(0) = 1, a(1) = 2, a(2) = 2, a(3) = 3, a(4) = 5, and for n >= 5, a(n) = 4*p(n) + 2*q(n) + 1 where p(5) = 2, q(5) = 4, and p(n+1) = 3*p(n)^2 + 2*p(n) + p(n)*q(n) and q(n+1) = 2*p(n)^2 + 2*p(n)*q(n) + 2*q(n).