OFFSET
1,10
COMMENTS
a(A051885(n)) = 1. - Reinhard Zumkeller, Oct 09 2015
Ordinal transform of A007953. - Antti Karttunen, May 20 2017
LINKS
David A. Corneth, Table of n, a(n) for n = 1..10000
EXAMPLE
35 is the 4th positive integer having digitsum 8 (the others before are 8, 17 and 26) so a(35) = 4.
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 *)
PROG
(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}
(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
CROSSREFS
KEYWORD
AUTHOR
David A. Corneth, Jan 31 2015
STATUS
approved