login

Year-end appeal: Please make a donation to the OEIS Foundation to support ongoing development and maintenance of the OEIS. We are now in our 61st year, we have over 378,000 sequences, and we’ve reached 11,000 citations (which often say “discovered thanks to the OEIS”).

A368824
a(n) is the smallest degree of (0,1)-polynomial with exactly n real distinct roots.
3
1, 2, 7, 10, 19, 28
OFFSET
1,2
COMMENTS
(0,1) (or Newman) polynomials have coefficients from {0,1}.
LINKS
P. Borwein, T. Erdélyi, and G. Kós, Littlewood-type problems on [0,1], Proc. London Math. Soc. 79 (1999), 22-46.
A. Odlyzko and B. Poonen, Zeros of polynomials with 0,1 coefficients, L’Enseignement Mathématique 39 (1993), 317-348.
FORMULA
a(n) ~ C*n^2 (see Odlyzko and Poonen) with numerical estimate 0.7 < C < 0.9.
MATHEMATICA
(* Suitable only for 1 <= n <= 4;
for larger n, special Julia and Python packages are needed *)
Table[Exponent[Monitor[Catch[Do[
poly = FromDigits[IntegerDigits[k, 2], x];
res = Length@{ToRules@Reduce[poly == 0, x, Reals]};
If[res == n, Throw@{res, Expand@poly}]
, {k, 2000}]], k][[2]], x], {n, 1, 4}]
PROG
(Python)
from itertools import count
from sympy.abc import x
from sympy import sturm, oo, sign, nan, LT
def A368824(n):
for m in count(2):
l = len(s:=bin(m)[2:])
q = sturm(sum(int(s[i])*x**(l-i-1) for i in range(l)))
a = [1 if (k:=LT(p).subs(x, -oo))==nan else sign(k) for p in q[:-1]]+[sign(q[-1])]
b = [1 if (k:=LT(p).subs(x, oo))==nan else sign(k) for p in q[:-1]]+[sign(q[-1])]
if n==sum(1 for i in range(len(a)-1) if a[i]!=a[i+1])-sum(1 for i in range(len(b)-1) if b[i]!=b[i+1]):
return l-1 # Chai Wah Wu, Feb 15 2024
CROSSREFS
Sequence in context: A152211 A309805 A125852 * A336903 A155171 A049830
KEYWORD
nonn,hard,more
AUTHOR
Denis Ivanov, Jan 07 2024
STATUS
approved