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.

A254524 n is the a(n)-th positive integer having its digitsum.

Original entry on oeis.org

1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 4, 4, 4, 4, 4, 4, 4, 3, 2, 1, 5, 5, 5, 5, 5, 5, 4, 3, 2, 1, 6, 6, 6, 6, 6, 5, 4, 3, 2, 1, 7, 7, 7, 7, 6, 5, 4, 3, 2, 1, 8, 8, 8, 7, 6, 5, 4, 3, 2, 1, 9, 9, 8, 7, 6, 5, 4, 3, 2, 1, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 10, 5
Offset: 1

Views

Author

David A. Corneth, Jan 31 2015

Keywords

Comments

a(A051885(n)) = 1. - Reinhard Zumkeller, Oct 09 2015
Ordinal transform of A007953. - Antti Karttunen, May 20 2017

Examples

			35 is the 4th positive integer having digitsum 8 (the others before are 8, 17 and 26) so a(35) = 4.
		

Crossrefs

Cf. A286478 (analogous sequence for factorial base).

Programs

  • Haskell
    import Data.IntMap (empty, findWithDefault, insert)
    a254524 n = a254524_list !! (n-1)
    a254524_list = f 1 empty where
       f x m = y : f (x + 1) (insert q (y + 1) m) where
               y = findWithDefault 1 q m; q = a007953 x
    -- Reinhard Zumkeller, Oct 09 2015
  • Mathematica
    c[n_, k_] := If[n >= k, Binomial[n, k], 0]; b[s_, q_, n_] := (s1 = q; If[s <= q*(n - 1), s1 = s + q; Sum[(-1)^i*c[q, i]*c[s1 - 1 - n*i, q - 1], {i, 0, q - 1}], 0]); a[n_] := (r = 1; v = IntegerDigits[n]; l = v[[-1]]; For[i = Length[v] - 1, i >= 1, i--, For[j = 1, j <= v[[i]], j++, r += b[l + j, Length[v] - i, 10]]; l += v[[i]]]; r); Table[a[n], {n, 1, 110}] (* Jean-François Alcover, Nov 14 2016, adapted from PARI *)
    With[{nn=400},#[[3]]&/@Sort[Flatten[Table[Flatten[#,1]&/@MapIndexed[ List,Select[ Table[{n,Total[IntegerDigits[n]]},{n,nn}],#[[2]]==k&]],{k,nn}],1]]](* Harvey P. Dale, Mar 29 2020 *)
  • PARI
    \\This algorithm needs a modified binomial.
    C(n, k)=if(n>=k, binomial(n, k), 0)
    \\ways to roll s-q with q dice having sides 0 through n - 1.
    b(s, q, n)=if(s<=q*(n-1), s+=q; sum(i=0, q-1, (-1)^i*C(q, i)*C(s-1-n*i, q-1)), 0)
    \\main algorithm
    a(n)={r = 1; v=digits(n); l=v[#v]; forstep(i = #v-1, 1, -1, for(j=1,v[i], r+=b(l+j, #v-i,10)); l+=v[i]);r}