Show older

Boring Math (11.0) 

pi function({3,19,43,163,283,71,191,743,701})

-->

{2, 8, 14, 38, 61, 20, 43, 132, 126}

~=

{1, 9, 16, 36, 58, 22, 37, 127, 127}

Boring Math (11.0) 

sqrt(pi function({1,2,3,7,11,19,43,67,163}))

-->

{0, 1, 1.41421, 2, 2.23607, 2.82843, 3.74166, 4.3589, 6.16441}

Which may imply 1, 2, and 7 are special.

Boring Math (11.0) 

I have a theory that

2657/prime(7^2-7/4) ~= 12

When extrapolating / interpolating

Boring Math (11.0) 

Oh, cool, I forgot this is essentially solvable and I'm correct- ish:

2657/prime(7^2-7/4) ~= 12

prime(7^2-7/4) ~= 2657/12

7^2-7/4 ~= pi function(2657/12)

And

7^2-2 = pi function(2657/12)

Boring Math (11.0) 

prime(23)*x = 2657

--> x~=32

prime(24)*x = 2657

--> x~=30

Boring Math (11.0) 

The prior was based on:

(3^2-1) = pi function(2657/120)
(7^2-2) = pi function(2657/12)

And made me curious about

15 = 3*5
31 ~= 3^(3/2)*6
63 = 3^2*7

Boring Math (11.0) 

sqrt(pi function({1,2,3,7,11,19,43,67,163}))

-->

{0, 1, sqrt(2), 2, sqrt(5), sqrt(8), sqrt(14), sqrt(19), sqrt(38)}

{0, 1, 2}

sqrt({5, 8}) --> 4 + 1, 9 - 1; (8 - 5) + 1 = 4, (8 + 5) + 3 = 16

sqrt({2, 19}) --> ?

sqrt({14, 38}) --> 16 - 2, 36 + 2; (38 - 14) + 1 = 25, (38 + 14) - 3 = 49

Boring Math (11.0) 

2+19 = 22 - 1
2*19 = 37 + 1
2<*>19 ?= 58 // can't find an operator

Boring Math (11.0) 

19*2^e ~= 5^3
19*2^pi ~= 13^2

Boring Math (11.0) 

(19*2^pi - 13^2)/(19*2^e - 5^3) ~= -36

Boring Math (11.0) 

This made me curious about:

(7)^(23/9) ~= 12^2

Which has interesting complex roots as well.

Boring Math (11.0) 

I just realized

19*2^((e+pi)/2) ~= 144.79...
19*2^((e*pi)^.5) ~= 144.02...

So it checks out pretty well with the previous idea.

Boring Math (11.0) 

(19^2 + 2)/3 = 11^2
(12^2 + 1/2)*2 = 17^2

Which I'm gonna try to relate back to 12 & 19 in music theory.

Boring Math (11.0) 

((15.5^2)*(2/3))-14^2 ~= -36

Boring Math (11.0) 

(36 - (19*2^pi - 13^2)/(19*2^e - 5^3))/6 ~= 12

Boring Math (11.0) 

2657 = 2000*2^(-e + π) - 5^2

Boring Math (11.0) 

For the above, the values are essentially 11^2 + epsilon & (17/2)^2 + epsilon, which sort of relates back to:

(19^2 + 2)/3 = 11^2
(12^2 + 1/2)*2 = 17^2

Boring Math (11.0) 

factor 14^4-prime(3^4) --> 37997
factor 15^4-prime(6^4) --> 39998 = 2*7*2857

Boring Math (11.0) 

I'm curious about:

28,30,34,43,67,163,953...

Which is based on

floor(sqrt(k*28)), k=163

Exploration is like:

floor(sqrt(k*28)), k=32437
floor(sqrt(k*28)), k=32504

primes near 32470 (7 candidates)

Boring Math (11.0) 

a(n+1) = floor(sqrt(a(n)*163)), a(0)=28

n | a(n)
0 | 28
1 | 67
2 | 104
3 | 130
4 | 145
5 | 153
6 | 157
7 | 159
8 | 160
9 | 161

Where 67, 130, 145, 157 are of interest to me, particularly in the context of

math.stackexchange.com/questio

Boring Math (11.0) 

I'm thinking 145 & 34 are the relevant ones here:

(6^2 - 2)/2 = 17
(12^2 + 1/2)*2 = 17^2

Which may imply 17 is relevant to music theory.

en.m.wikipedia.org/wiki/34_equ

Boring Math (11.0) 

So I'm thinking 72, 77, 80 is relevant here, for:

en.m.wikipedia.org/wiki/Music_
en.m.wikipedia.org/wiki/34_equ

9^2, 80 for 12 notes
5^2, 24/"72" for 17 notes

Boring Math (11.0) 

I'm thinking about oeis.org/A107360

{3, 5, 7, 13, 17, 19, 31, 61, 127 }

2^n - 3 = p --> {3, 4, 6} | {5, 13, 61}
2^n - 1 = p --> {2, 3, 5, 7} | {3, 7, 31, 127}
2^n + 1 = p --> {1, 2, 4} | {3, 5, 17}
2^n + 3 = p --> {-inf, 1, 2, 4} | {3, 5, 7, 19}

3 occurs 3x
5 occurs 3x
7 occurs 2x
All other terms occur 1x

Boring Math (11.0) 

Another aggregation:

2 happens 3x
4 happens 3x
1 happens 2x
3 happens 2x
All others -inf, 5-7 happen 1x

Boring Math (11.0) 

I'm looking at

2^({1, 2, 4, 6, 8, 12, 16, 18, 20, 24, 28, 30, 32, 36, 40, 42, 48, 54, 56, 60, 64, 66, 72, 78, 80, 84, 88, 90, 96, 100, 104, 108, 112, 120, 126, 128, 132, 140, 144, 150}+2) - 3 (practical numbers)

Example:

factor {5, 13, 61, 253, 1021, 16381, 262141, 1048573, 4194301, 67108861, 1073741821, 4294967293, 17179869181, 274877906941, 4398046511101, 17592186044413, 1125899906842621, 72057594037927933}

Prime for

{5, 13, 61, 1021, 16381, 1048573, 4194301}

Boring Math (11.0) 

It looks like practical numbers may not be relevant, based on

Table[(n-2)*Boole[isprime(2^n - 3)]], n= 2 to 1000

Boring Math (11.0) 

I was looking at

"3, 4, 6 -seq:7 -seq:9 -seq:11 -seq:13 -seq:15" on oeis.org

And realized the 3, 4, 6... may just be prime(n) + 1

Boring Math (11.0) 

There's two features in this picture that interest me:

grantjenks.com/wiki/_detail/pr

One is at coordinate (165, 363), the other is at (318, 477), which may essentially be related to the Heegner number 163 (& 2*163).

Boring Math (11.0) 

You can draw a 45 degree angle and find another feature of interest at (250, 450) -- that's my estimate based on the features at (240, 422) & (254, 437):

This makes me interested in prime(54), and prime(38) / prime(70).

Boring Math (11.0) 

I'm leaning towards 163, 251, 342 now.

Boring Math (11.0) 

Now I'm leaning towards 163, 251, 339:

This image shows a line that essentially is supposed to represent 339 at location (338, 367):

Boring Math (11.0) 

For the above image, you can't see the bottom right of the line segment, but it seems to have 5/20 pixels to the left, unlike the other one which is a 50:50 split.

Boring Math (11.0) 

I'm a little interested in:

prime(20)*e ~= 193
prime(30)*pi ~= 355 = 5*prime(20)

Boring Math (11.0) 

(339+71)/(5/2) = 163+1 = 41*4

Boring Math (11.0) 

So if sigma(n) < 2*n - 1 (powers of 2), I think n cannot be a practical number. I'm curious if there is an upper limit where n must be a practical number.

Creating code isn't that hard, although sigma and practical numbers are obscure-ish.

Follow

Boring Math (11.0) 

from itertools import chain, cycle, accumulate, combinations
from typing import List, Tuple

# %% Factors

def factors5(n: int) -> List[int]:
"""Factors of n, (but not n)."""
def prime_powers(n):
# c goes through 2, 3, 5, then the infinite (6n+1, 6n+5) series
for c in accumulate(chain([2, 1, 2], cycle([2,4]))):
if c*c > n: break
if n%c: continue
d,p = (), c
...

Boring Math (11.0) 

...

while not n%c:
n,p,d = n//c, p*c, d + (p,)
yield(d)
if n > 1: yield((n,))

r = [1]
for e in prime_powers(n):
r += [a*b for a in r for b in e]
return r[:-1]

# %% Powerset

def powerset(s: List[int]) -> List[Tuple[int, ...]]:
"""powerset([1,2,3]) --> () (1,) (2,) (3,) (1,2) (1,3) (2,3) (1,2,3) ."""
return chain.from_iterable(combinations(s, r) for r in range(1, len(s)+1))
...

Boring Math (11.0) 

...

# %% Practical number

def is_practical(x: int) -> bool:
"""Practical number test with factor reverse sort and short-circuiting."""

if x == 1:
return True
if x % 2:
return False # No Odd number more than 1
mult_4_or_6 = (x % 4 == 0) or (x % 6 == 0)
if x > 2 and not mult_4_or_6:
return False # If > 2 then must be a divisor of 4 or 6
...

Boring Math (11.0) 

...

f = sorted(factors5(x), reverse=True)
if sum(f) < x - 1:
return False # Never get x-1
ps = powerset(f)

found = set()
for nps in ps:
if len(found) < x - 1:
y = sum(nps)
if 1 <= y < x:
found.add(y)
else:
break # Short-circuiting the loop.

return len(found) == x - 1
...

Boring Math (11.0) 

...


if __name__ == '__main__':
highest_practical = 1
lowest_practical = 1
highest_nonpractical = 1
lowest_nonpractical = 1

highest_practical_value = 0
lowest_practical_value = 1e10
highest_nonpractical_value = 0
lowest_nonpractical_value = 1e10
...

Boring Math (11.0) 

...

max = 3000
for x in range(1, max + 1):
normalized_sigma_value = sigma(x, 1)/x
if is_practical(x):
if normalized_sigma_value < lowest_practical_value:
lowest_practical = x
lowest_practical_value = normalized_sigma_value
...

Boring Math (11.0) 

...
elif normalized_sigma_value > highest_practical_value:
highest_practical = x
highest_practical_value = normalized_sigma_value
else:
normalized_sigma_value = sigma(x, 1)/x
if normalized_sigma_value < lowest_nonpractical_value:
lowest_nonpractical = x
lowest_nonpractical_value = normalized_sigma_value
...

Boring Math (11.0) 

...
elif normalized_sigma_value > highest_nonpractical_value:
highest_nonpractical = x
highest_nonpractical_value = normalized_sigma_value

print(lowest_practical, " (", float(lowest_practical_value), ") - ", highest_practical, " (", float(highest_practical_value), ")")
print(lowest_nonpractical, " (", float(lowest_nonpractical_value), ") - ", highest_nonpractical, " (", float(highest_nonpractical_value), ")")

Boring Math (11.0) 

Oh, right, the output is:

1 ( 1.0 ) - 2520 ( 3.7142857142857144 )
2999 ( 1.0003334444814937 ) - 1608 ( 2.537313432835821 )

Basically, the lower values (both near 1) are uninteresting.

The upper values seem to increase without bound, but maybe the ratio between them is predictable. highest_nonpractical_value may have a strict bound, but I need to get a more efficient algorithm set to figure that out.

Boring Math (11.0) 

I forgot to paste some modifications from yesterday (mostly after midnight):

Looking at records over time. I think I'm interested in the narrow band starting at the perfect numbers and going up to a factor of 2 of the upper limit: en.wikipedia.org/wiki/Divisor_

Boring Math (11.0) 

Essentially this means I'm looking for a modified definition of practical numbers that excludes powers of 2 and the most composite practical numbers. I'm wondering what the density of this set of numbers is compared to the primes, and also wondering if I can e.g. construct a 1:1 relationship between primes and "modified practical numbers".

Boring Math (11.0) 

Using e**(log(sigma(v, 1))/(log(v)*log(log(v)))):

The values seem to approach ~7/4 and 1/2. think the 1/2 is exact based on en.wikipedia.org/wiki/Divisor_

But I'm not sure about the other one.

Boring Math (11.0) 

I'm wayyy off lol:

oeis.org/A335030

e**(log(sigma(52307529120))/(log(52307529120)*log(log(52307529120)))) ~= 1.39127

Boring Math (11.0) 

I was trying to consider practical numbers where the negative sign could be used e.g.:

1
3-1
3
3+1
9-3-1
9-3
9-3+1
9-1
9

Notably, there is a common math question related to base-3 and a balance scale.

Which likely results in the sequence:

oeis.org/A196149

Although it's still possible there are exceptions.

Boring Math (11.0) 

This helped me realize a useful property / algorithm optimization of practical numbers:

Divisors of practical numbers seem to increase by at most a factor of 2. I think this is necessary, but I'm not sure if it is sufficient.

Boring Math (11.0) 

And just as I say that I get rekt by 78

Boring Math (11.0) 

78 is practical:

1 | 2 | 3 | 6 | 13 | 26 | 39 | 78 (8 divisors)

Boring Math (11.0) 

Aww yee:

en.m.wikipedia.org/wiki/Comple

Which leads to an interesting sequence:

oeis.org/A203074

I still want to figure out a sequence containing 78 specifically.

Boring Math (11.0) 

This references arxiv.org/abs/1405.2585

Which seems to have a mention of the maximal ratio (and it may be unbounded?)

Boring Math (11.0) 

Table[(2*n)*Boole[Max[Ratios[Divisors[(2*n)]]] > 2 and not isprime(n)]], n=1 to 200

Which leads me to

oeis.org/A317412

Show newer
Sign in to participate in the conversation
Gamedev Mastodon

Mastodon server focused on game development and related topics.