All about flooble | fun stuff | Get a free chatterbox | Free JavaScript | Avatars
 perplexus dot info

 List the expressionist numbers (Posted on 2016-05-30)
Consider numbers like 343 or 2592.
343=(3+4)^3
2592=2^5*9^2.

We have just shown that some numbers stay unchanged when a number of mathematical operators are added /inserted, without changing the order of the digits.
Within our puzzle lets call those numbers expressionist numbers.
Let us limit the set of acceptable mathematical symbols to the following operators: +, -, *, /, ^, sqrt, !. and any amount of brackets.

My questions:
In the period between 10 A.D. & 2016 A.D. what years were labeled by expressionist numbers?
How many such years will there be between 2017 A.D. & 9999 A.D.?

Bonus: How about one, two (or more) 5-digit examples?

 No Solution Yet Submitted by Ady TZIDON No Rating

Comments: ( Back to comment list | You must be logged in to post comments.)
 Computer "solution" part 1 -- no guarantee of completeness | Comment 3 of 10 |
Part 1:

Here are RPN versions (translated to algebraic further down below).  Square root (postfix r) was limited to twice in a row (so as to allow 4th roots but not 8th roots). For the first batch, depth was limited to 20 characters. Later on, for speed, this was reduced to 16. Other than that, only the 15-decimal-digit accuracy of the programming language limited the possibilities. Only the first found solution is given for each value, even if it wouldn't be the simplest.

All that being the case, it may be that others should be on the list, such as any that require more than two square roots applied successively or have intermediate results that exceed the precision of the programming language. While the final result was allowed to be slightly off to allow for rounding error, such was not applied to intermediate results, so if the 4th power of a fourth root, for example, was slightly off, the result was not allowed to be used to take a factorial, though in fact such rounding would probably be legitimate.

24  24r+!
36  3!6*
71  7!1+r
120  12+!0!-!
144  14r+!4!*
145  14!+5!+
216  21+!r6^
240  24!0!+r!*
324  3!2r/4^
343  34+r3!^
354  35!4r-*
355  35!*5-
360  360!-!*
384  3!rr8r*4^
456  45!6-*
693  6!9rr3!^-
715  71-!5-
720  72r0*!-!
721  72+r!!1+
722  72+r!!2+
723  72+r!!3+
724  72+r!!4+
725  72+r!!5+
726  72+r!!6+
727  72+r!!7+
728  72+r!!8+
729  72+r!!9+
733  73!!+3!+
736  736^+
744  74r+r!!4!+
936  9r!r3!^6!+
1285  128^+5*
1288  12+!r8^8-
1296  12+!r9r!^6*
1298  12*9r!r8^+
1434  14r+!!3-4r*
1435  14r+!!3!!+5-
1439  14r-3!!+9r!!+
1440  14r+!!4r*
1441  14r+!!4r*1+
1442  14r+!!4r*2+
1443  14r+!!4r*3+
1444  14r+!!4r+4r*
1445  14r+!!4r*5+
1446  14r+!!4r*6+
1447  14r+!!4r*7+
1448  14r+!!4r*8+
1449  14r+r4!^r9r!!+
1464  14r+!!6!+4!+
1573  15!+73!+*
1679  167!-9r/-
1680  16+!80!+r/
1704  17!+r0!*4!*
1764  17r*6r*4^
1944  19r!rr*4!^4!/

done

from

DefDbl A-Z
Dim crlf\$, stack(20), expr\$, done, stackSave(20), yr, stackLevel, fact(15), yrLen, ys\$

Form1.Visible = True

Text1.Text = ""
crlf = Chr\$(13) + Chr\$(10)
fact(0) = 1
For i = 1 To 15
fact(i) = fact(i - 1) * i
Next

For yr = 10 To 2016
' Text1.Text = Text1.Text & Str(yr)
ys\$ = LTrim(Str(yr)): yrLen = Len(ys)
expr\$ = Left(ys, 1)
done = 0
stack(1) = Val(expr)
stackLevel = 1
Next

Text1.Text = Text1.Text & crlf & " done"

End Sub

If done Then Exit Sub
If Len(expr) > 20 Then Exit Sub
DoEvents
' done = 0
For mono = 1 To 2
expSave\$ = expr
stack1save = stack(1)
Select Case mono
Case 1 ' square root
If Right(expr, 2) <> "rr" And stack(1) >= 2 Then
stack(1) = Sqr(stack(1)): expr = expr + "r"
If Abs(stack(1) - yr) < 0.00000001 And stackLevel = 1 And wh >= yrLen Then
Text1.Text = Text1.Text & yr & "  " & expr & crlf
done = 1
End If
If done = 0 Then addOn wh
End If
Case 2 ' factorial
If stack(1) = Int(stack(1)) And stack(1) >= 0 And stack(1) < 16 And stack(1) <> 1 And stack(1) <> 2 Then
stack(1) = fact(stack(1)): expr = expr + "!"
If Abs(stack(1) - yr) < 0.00000001 And stackLevel = 1 And wh >= yrLen Then
Text1.Text = Text1.Text & yr & "  " & expr & crlf
done = 1
End If
If done = 0 Then addOn wh
End If
End Select
expr = expSave
stack(1) = stack1save
Next
If expr = "34+3!+" Then
x = x
End If

If stackLevel > 1 Then
expSave = expr
For op = 1 To 5
stack1save = stack(1)
stack2save = stack(2)
good = 1
Select Case op
stack(1) = stack(2) + stack(1)
expr = expr + "+"
Case 2 ' subtract
stack(1) = stack(2) - stack(1)
expr = expr + "-"
Case 3 ' multiply
stack(1) = stack(2) * stack(1)
expr = expr + "*"
Case 4 ' divide
If stack(1) <> 0 And Abs(stack(1)) < 1E+100 And Abs(stack(1)) > 1E-200 Then
stack(1) = stack(2) / stack(1)
expr = expr + "/"
Else
good = 0
End If
Case 5 ' exponentiate
If stack(2) = 0 Then
If stack(1) = 0 Then
good = 0
Else
stack(1) = 0
End If
ElseIf stack(1) = 0 Or stack(2) = 1 Then
stack(1) = 1
ElseIf stack(2) < 0 Then
If stack(1) = Int(stack(1)) And Abs(stack(1) * Log(Abs(stack(2)))) < 35 Then
stack(1) = Abs(stack(2)) ^ stack(1)
q = Int(stack1save / 2)
r = stack1save - 2 * q
If r = 1 Then stack(1) = -stack(1)
Else
good = 0
End If
Else
If stack(1) < 1E+100 Then
If stack(1) * Log(Abs(stack(2))) < 35 Then
stack(1) = stack(2) ^ stack(1)
Else
good = 0
End If
Else
good = 0
End If
End If

If good Then expr = expr + "^"
End Select
If good Then
For i = 2 To stackLevel - 1
stack(i) = stack(i + 1)
Next
stackLevel = stackLevel - 1

If expr = "25^92^*" Then
x = x
End If

If Abs(stack(1) - yr) < 0.00000001 And stackLevel = 1 And wh >= yrLen Then
Text1.Text = Text1.Text & yr & "  " & expr & crlf
done = 1
Else
End If

liftStack
stackLevel = stackLevel + 1
stack(2) = stack2save
stack(1) = stack1save
expr = expSave
End If
Next op

End If

If wh <= yrLen Then
liftStack
stackLevel = stackLevel + 1
saveExpr\$ = expr

stack(1) = Val(Mid(ys, wh, 1))
expr = expr + Mid(ys, wh, 1)

expr = saveExpr
For i = 2 To stackLevel - 1
stack(i) = stack(i + 1)
Next
stackLevel = stackLevel - 1
End If

'  done = 0

Exit Sub

End Sub

Sub liftStack()
For i = stackLevel + 1 To 2 Step -1
stack(i) = stack(i - 1)
Next
End Sub

Remember that no concatenation is used here. Adjacent digits are separate numbers in the RPN in the second column. Lower case r postfixed represents square root. Two !!'s in a row do not represent double factorial but rather iterated factorial, e.g., 3!! = 6! = 720:

`       RPN                    Algebraic24    24r+!                 (2+sqrt(4))!36    3!6*                  3! * 671    7!1+r                 sqrt(7! + 1)120   12+!0!-!             ((1+2)! - 0!)!144   14r+!4!*             (1+sqr(4))! * 4!145   14!+5!+              1+4!+5!216   21+!r6^              sqrt((2+1)!)^6240   24!0!+r!*            2*(sqrt(4!+0!))!324   3!2r/4^              (3! / sqrt(2))^4343   34+r3!^              sqrt(3+4)^(3!)  (ok, it's a weird way)354   35!4r-*              3*(5!-sqrt(4))355   35!*5-               3*5!-5360   360!-!*              3*(6-0!)!384   3!rr8r*4^            (sqr(sqr(3!)*sqrt(8))^4456   45!6-*               4*(5!-6)693   6!9rr3!^-            6!-sqrt(sqrt(9))^(3!)715   71-!5-               (7-1)!-5720   72r0*!-!             (7-(sqrt(2)*0)!)!  (sqrt above was completely unnecessary but it was the first found soln)721   72+r!!1+             (sqrt(7+2))!!+1722   72+r!!2+             (sqrt(7+2))!!+2723   72+r!!3+             (sqrt(7+2))!!+3724   72+r!!4+             (sqrt(7+2))!!+4725   72+r!!5+             (sqrt(7+2))!!+5726   72+r!!6+             (sqrt(7+2))!!+6727   72+r!!7+             (sqrt(7+2))!!+7728   72+r!!8+             (sqrt(7+2))!!+8729   72+r!!9+             (sqrt(7+2))!!+9733   73!!+3!+             7+3!!+3!736   736^+                7+3^6744   74r+r!!4!+           sqrt(7+sqrt(4))!!+4!936   9r!r3!^6!+           sqrt((sqrt(9))!)^(3!) + 6!1285  128^+5*             (1+2^8)*5             1288  12+!r8^8-           sqrt((1+2)!)^8 - 8The above were converted to algebraic manually butfrom here on, program RPN2ALGB converted to algebraic1296  12+!r9r!^6*         sqrt((1+2)!)^sqrt(9)!*6                               1298  12*9r!r8^+          1*2+sqrt(sqrt(9)!)^81434  14r+!!3-4r*         ((1+sqrt(4))!!-3)*sqrt(4)1435  14r+!!3!!+5-        (1+sqrt(4))!!+3!!-51439  14r-3!!+9r!!+       1-sqrt(4)+3!!+sqrt(9)!!1440  14r+!!4r*           (1+sqrt(4))!!*sqrt(4)                     For some reason, here in 1440 and some instances below,                     the addition of zero at the end was left out (as in 0+ for RPN or +0 algebraic)1441  14r+!!4r*1+         (1+sqrt(4))!!*sqrt(4)+11442  14r+!!4r*2+         (1+sqrt(4))!!*sqrt(4)+21443  14r+!!4r*3+         (1+sqrt(4))!!*sqrt(4)+31444  14r+!!4r+4r*        ((1+sqrt(4))!!+sqrt(4))*sqrt(4)1445  14r+!!4r*5+         (1+sqrt(4))!!*sqrt(4)+51446  14r+!!4r*6+         (1+sqrt(4))!!*sqrt(4)+61447  14r+!!4r*7+         (1+sqrt(4))!!*sqrt(4)+71448  14r+!!4r*8+         (1+sqrt(4))!!*sqrt(4)+81449  14r+r4!^r9r!!+      sqrt(sqrt((1+sqrt(4)))^4!)+sqrt(9)!!1464  14r+!!6!+4!+        (1+sqrt(4))!!+6!+4!1573  15!+73!+*           (1+5!)*(7+3!)1679  167!-9r/-           1-(6-7!)/sqrt(9)1680  16+!80!+r/          (1+6)!/sqrt((8+0!))1704  17!+r0!*4!*         sqrt((1+7!))*0!*4!1764  17r*6r*4^           (1*sqrt(7)*sqrt(6))^41944  19r!rr*4!^4!/       (1*sqrt(sqrt(sqrt(9)!)))^4!/4!`

Remember that all infix operatiors take precedence over diadic operators, such as factorial over exponentiation: x^4! is x^(4!).

 Posted by Charlie on 2016-05-31 07:27:45

 Search: Search body:
Forums (4)