login
a(n) is the number of ways n can be calculated with expressions of the form "d1 o1 d2 o2 d3 o3 d4" where d1-d4 are decimal digits (0-9) and o1-o3 are chosen from the four basic arithmetic operators (+, -, *, /).
2

%I #39 Nov 10 2022 12:36:09

%S 29235,12654,12450,12425,12427,11915,12419,11792,12062,11725,8748,

%T 7686,8180,6632,6549,6077,5758,4532,4915,3503,3649,3451,2684,2468,

%U 3253,2288,1957,2347,2197,1627,2028,1444,1899,1439,1281,1531,2080,1195,1126,1147,1513

%N a(n) is the number of ways n can be calculated with expressions of the form "d1 o1 d2 o2 d3 o3 d4" where d1-d4 are decimal digits (0-9) and o1-o3 are chosen from the four basic arithmetic operators (+, -, *, /).

%C This sequence is an extension of the "four fours" puzzle.

%C Expressions follow operator precedence (*/) then (+-), and left to right within the same level of precedence: "5/6/7/8" is ((5/6)/7)/8, "3-4+5*8" is 3-4+(5*8) = (3-4)+40 = -1+40 = 39.

%C Expressions are treated as ordered, so that 1+2+3+4 is distinct from 1+3+2+4 (but has the same value).

%C If negative n is allowed, the first nonzero a(n) is n = -729 (0-9*9*9). The last nonzero a(n) is n = 6561 (9*9*9*9).

%C There are 671 nonzero terms. - _Michael S. Branicky_, Sep 24 2022

%H Michael S. Branicky, <a href="/A357272/b357272.txt">Table of n, a(n) for n = 0..6561</a>

%e a(235) = 9 because 235 may be expressed in nine ways: "3*9*9-8", "5*6*8-5", "5*8*6-5", "6*5*8-5", "6*8*5-5", "8*5*6-5", "8*6*5-5", "9*3*9-8", and "9*9*3-8".

%o (Python)

%o from itertools import product

%o from fractions import Fraction

%o from collections import Counter

%o def afull(): # all further terms are 0

%o a = Counter()

%o for digs in product("0123456789", repeat=4):

%o for ops in product("+-*/", repeat=3):

%o e = digs[0] + "".join(ops[i] + digs[i+1] for i in range(3))

%o if "/0" in e: continue

%o if "/" in e:

%o for d in set(digs): e = e.replace(d, f"Fraction({d}, 1)")

%o t = eval(e)

%o if t >= 0 and t.denominator == 1: a[t] += 1

%o return [a[n] for n in range(max(a)+1)]

%o print(afull()[:100]) # _Michael S. Branicky_, Sep 24 2022

%K nonn,base

%O 0,1

%A _Rod McFarland_, Sep 22 2022