DNA van de natuurlijke getallen

Moderators: dirkwb, Xilvo

Forumregels
(Middelbare) school-achtige vragen naar het forum "Huiswerk en Practica" a.u.b.
Zie eerst de Huiswerkbijsluiter
Gebruikersavatar
Moderator
Berichten: 4.871

Re: DNA van de natuurlijke getallen

@Vincent,

Ik doelde niet op jouw berichten.

Berichten: 210

Re: DNA van de natuurlijke getallen

OOOVincentOOO

Ik zou zeer graag uw visie / mening / bedenkingen krijgen over mijn Topic "Zelf generende reeksen"
Had ik eigenlijk beter "Zelf genererende rijen" genoemd.

Kan / wilt U mij een (niet triviaal) voorbeeld geven van een andere rij met dezelfde eigenschappen aub ?

Gebruikersavatar
Berichten: 714

Re: DNA van de natuurlijke getallen

@Human,

U wil graag bezig zijn met een heleboel onderwerpen te gelijk. Mijn interesse gaat nu uit naar de oorspronkelijke serie. Wist U dat deze serie in de volgende woorden kan samengevat worden?

"Serie van de pariteit (even of oneven) van het aantal unieke delers en totale delers."

Men hoeft het woord som van exponenten er helemaal niet bij te halen. De som van de exponenten is namelijk gelijk aan het totaal aantal delers. Eigenlijk zijn het twee series en niet 1.

U heeft redelijk veel topics waarvan sommige mij voorlopig niet interesseren. Momenteel heb ik nog een grotere simulatie lopen boven de 10.000.000. Ik wil namelijk zien dat random walk weer richting de oorsprong gaat zoals uit link Stacks Exchange eerdere bericht.

Het programmeren met grotere hoeveelheden data heb ik momenteel plezier aan. Daar komt meer bij kijken dan de consument denkt en is tijdrovend om fouten eruit te halen.

Terzijde ben ik met zelfstudie bezig over de: "Generalized Prime Number Theorem" welke de pariteit bepaald.

Ik schiet graag met hagel en spui graag wilde ideeën uit. Echter, daarna bezink ik mijn ideeën bijna altijd en denk dieper na. Deze methode snappen veel mensen niet en vinden mij maar raar.

Misschien moet U een beetje balans vinden en reflecteren op Uw creatieve ideeën. Een gezonde geest heeft een goede balans tussen intuïtie, rationaliteit en creativiteit. Deze drie hebben allemaal aandacht nodig, deze kan alleen U vinden, luisteren naar het stille stemmetje van de drie.

Gr,

Vince

Gebruikersavatar
Berichten: 714

Re: DNA van de natuurlijke getallen

Hierbij nog een random walk tot: 50.000.000.

Nu is te zien dat de:

Pariteit van het aantal unieke factoren:
Waarschijnlijk niet groeit dit is de x-as in de grafiek. De grafiek blijft redelijk gecentreerd om x=0.
https://math.stackexchange.com/a/315791/650339

Pariteit van het totaal aantal factoren:
Dit is hetzelfde als de pariteit van de som van de exponenten. Deze lijkt te groeien volgens gegevens. Dit is de y-as in de grafiek. Hier heb ik nog geen aanwijzing waarom en moet verder studeren.



Let op in de oude video's heb ik een fout in de beschrijving staan. De grafieken zijn vergelijkbaar alleen de beschrijving in de titel klopte niet (x en y verwisseld).

Voor geinteresseerden de code. Meer geoptimaliseerd voor grote datasets. Priem factorisatie met sympy (sneller dan eigen code). Vannacht de code eens laten lopen tot 500.000.000.

Ik zie net dat de video zegt tot n=1.000.000 het is echter 500.000.000 nog een bugje te repareren!

Code: Selecteer alles

import numpy as np
import matplotlib.pyplot as plt1
from sympy.ntheory import factorint
from matplotlib.ticker import (MultipleLocator, FormatStrFormatter,
                               AutoMinorLocator)

%matplotlib widget

fig, ax1a = plt1.subplots(1, figsize=(16, 8))
ax1a.clear()

#Number of numbers to factorize
p=200000
x=np.zeros(p+1)
y=np.zeros(p+1)
xc=np.zeros(p+1)
yc=np.zeros(p+1)

#maximum plotpoints in graph
s=200000
modu=int(p/s)
c=0
cnt=np.zeros(s+1)
xcs=np.zeros(s+1)
ycs=np.zeros(s+1)
xs=np.zeros(s+1)
ys=np.zeros(s+1)

#Images to save in walk (parital walk, red), images=0 no partial random walks
images=0

#Set cumulative biffer value to 0
xm=0
ym=0

#Spacing tickmarks x and y axis
tick=200

for n in range(p+1):
    
    #Prime Factors
    a=factorint(n)
    
    #Unique Prime Factors
    pf=list(a)

    #All Exponents
    exp=list(a.values())
    
    #Count all Prime Factors (including duplicates) if even -1 odd +1
    if np.sum(exp)%2==0:
        yn=-1
    else:
        yn=1
    
    #Add results to array, including cumulative steps
    yc[n]=ym+yn
    #y[n]=yn
    ym=ym+yn

    #ount all unique Prime Factors (including duplicates) if even -1 odd +1
    pf=np.size(pf)
    if pf%2==0:
        xn=-1
    else:
        xn=1

    #Add results to array, including cumulative steps
    xc[n]=xm+xn
    #x[n]=xn
    xm=xm+xn 

    #Add results to shortened table with maximum of s elements
    if (n%modu==0):
        xcs[c]=xm
        ycs[c]=ym

        xs[c]=xn
        ys[c]=yn

        c=c+1

#Plot total random walk
ax1a.plot(xcs,ycs, marker='', color='black', linestyle='-', markersize=0,linewidth=0.04)
ax1a.set_xlabel('$x$',fontsize=10)
ax1a.set_ylabel('$y$',fontsize=10)
ax1a.grid(b=True, which='major', color='#666666', linestyle='-', zorder=0)
ax1a.xaxis.set_major_locator(MultipleLocator(tick))
ax1a.yaxis.set_major_locator(MultipleLocator(tick))

plt1.title('Count all factors:  y=+1 (odd), y=-1 (even), Count unique factors: x=+1 (odd), x=-1 (even)', fontsize=10)
plt1.suptitle('Parity random walk of prime factorization', fontsize=25,y=0.96)
plt1.gca().set_aspect('equal', adjustable='box')
plt1.savefig('Random Walk00000.png', dpi=300, bbox_inches='tight')

if images>0:
    for q in range(images):

        count=int((q+1)*s/images)

        #print(count)    
        a=factorint(count)


        #Unique Prime Factors
        pf=np.char.array(np.array(list(a),dtype=str))

        #Exponents, create Latex string with primefactors and exponents
        exp=np.char.array(np.array(list(a.values()),dtype=str))
        fac='$' + (', '.join(pf+'^{' + exp + '}')) + '$'

        #Create graph label for last point partial random walk
        l='n= ' + str((count)) + '\nfactors: ' + str(fac) + '\nparity: x=' +  str(xs[(count)]) + ', y=' +  str(ys[(count)]) + '\ncumulative: x=' +  str(xcs[(count)]) + ', y=' +  str(ycs[(count)]) 

        #Plot black total walk and partial red 
        ax1a.clear()
        ax1a.plot(xcs,ycs, marker='', color='black', linestyle='-', markersize=0,linewidth=0.04)
        ax1a.plot(xcs[0:(count)],ycs[0:(count)], marker='', color='red', linestyle='-', markersize=0,linewidth=0.05)
        ax1a.plot(xcs[(count)],ycs[(count)], marker='o', color='red', linestyle='-', markersize=3,linewidth=0,label=l)

        ax1a.grid(b=True, which='major', color='#666666', linestyle='-', zorder=0)
        ax1a.xaxis.set_major_locator(MultipleLocator(tick))
        ax1a.yaxis.set_major_locator(MultipleLocator(tick))
        ax1a.legend(loc='upper left',fontsize=12,markerscale=1,frameon=False)
        ax1a.set_xlabel('$x$',fontsize=10)
        ax1a.set_ylabel('$y$',fontsize=10)

        plt1.title('Count all factors:  y=+1 (odd), y=-1 (even), Count unique factors: x=+1 (odd), x=-1 (even)', fontsize=10)
        plt1.suptitle('Parity random walk of prime factorization', fontsize=25,y=0.96)
        plt1.gca().set_aspect('equal', adjustable='box')
        plt1.savefig('Random Walk' + str("%05d" % (q+1)) +'.png', dpi=300, bbox_inches='tight')

Berichten: 210

Re: DNA van de natuurlijke getallen

OOOVincentOOO

Ik ben het volledig eens met uw bericht van 19 feb 2021...... ook met uw prachtige nieuwe definitie !
Als U mij toelaat te behoren tot de mensen die U niet raar vinden .... integendeel mateloos boeiend, en met een oneindig brede scoop !

Ik ben maar een simpel ingenieurke met on-aflatende interesse in wiskunde en wetenschap.
Meer geboeid door het "ongewone" dan door het "gewone".

Enkele van mijn vragen en creaties die zich opbouwden in mijn 70 j leven .... werp ik nu te grabbel op het wetenschapsforum.

Vele reacties op mijn wiskundige topics stellen mij helaas teleur.
Als U als tussendoortje eens mijn topic "x^n als functie van combinaties" zou willen bekijken ... zou ik mij zeer vereerd voelen.

Mijn respect!

Gebruikersavatar
Berichten: 714

Re: DNA van de natuurlijke getallen

Ik heb nog een serie laten lopen tot: 100.000.000. Dat is binnen een paar uurtjes klaar. Misschien ergens komende dagen proberen tot 500.000.000 te gaan.

Het vorige filmpje heb ik offline gehaald het stoorde mij dat er een bugje zat in de counter.



IK heb nog wat verder gestudeerd, volgens mij is de betreffende serie nog een groot open vraagstuk. Zie:

https://en.wikipedia.org/wiki/Parity_pr ... ve_theory)

Maar dat is ingewikkelde wiskunde wat ik niet begrijp.

Code: Selecteer alles

import numpy as np
import matplotlib.pyplot as plt1
from sympy.ntheory import factorint
from matplotlib.ticker import (MultipleLocator, FormatStrFormatter,
                               AutoMinorLocator)

%matplotlib widget

fig, ax1a = plt1.subplots(1, figsize=(16, 8))
ax1a.clear()

#Number of numbers to factorize
p=50000

#maximum plotpoints in graph, recommended <2.000.000
s=2000000

if (s>=p):
    s=p

modu=int(p/s)

#Set counter zero and create zero arrays plot data
c=0
xcs=np.zeros(s+1)
ycs=np.zeros(s+1)
xs=np.zeros(s+1)
ys=np.zeros(s+1)

#Images to save in walk (parital walk, red), images=0 no partial random walks
images=5

#Set cumulative biffer value to 0
xm=0
ym=0

#Spacing tickmarks x and y axis
tick=2000

for n in range(p+1):
    
    #Prime Factors
    a=factorint(n)
    
    #Unique Prime Factors
    pf=list(a)

    #All Exponents
    exp=list(a.values())
    
    #Count all Prime Factors (including duplicates) if even -1 odd +1
    if np.sum(exp)%2==0:
        yn=-1
    else:
        yn=1
    
    #Add results to array, including cumulative steps
    ym=ym+yn

    #Count all unique Prime Factors (including duplicates) if even -1 odd +1
    pf=np.size(pf)
    if pf%2==0:
        xn=-1
    else:
        xn=1

    #Add results to array, including cumulative steps
    xm=xm+xn 

    #Add results to shortened table with maximum of s elements
    if (n%modu==0):
        xcs[c]=xm
        ycs[c]=ym

        xs[c]=xn
        ys[c]=yn

        c=c+1
        
        
#Plot total random walk
ax1a.plot(xcs,ycs, marker='', color='black', linestyle='-', markersize=0,linewidth=0.04)
ax1a.set_xlabel('$x$',fontsize=10)
ax1a.set_ylabel('$y$',fontsize=10)
ax1a.grid(b=True, which='major', color='#666666', linestyle='-', zorder=0)
ax1a.ticklabel_format(axis='x', style='sci', scilimits=None, useOffset=None, useLocale=None, useMathText=None)
ax1a.ticklabel_format(axis='y', style='sci', scilimits=None, useOffset=None, useLocale=None, useMathText=None)
ax1a.xaxis.set_major_locator(MultipleLocator(tick))
ax1a.yaxis.set_major_locator(MultipleLocator(tick))

plt1.title('Count all factors:  y=+1 (odd), y=-1 (even), Count unique factors: x=+1 (odd), x=-1 (even)', fontsize=10)
plt1.suptitle('Parity random walk of prime factorization', fontsize=25,y=0.96)
plt1.gca().set_aspect('equal', adjustable='box')
plt1.savefig('Random Walk00000.png', dpi=300, bbox_inches='tight')

if images>0:
    for q in range(images):

        count=int((q+1)*s/images)

        #print(count)    
        a=factorint(int(count*p/s))


        #Unique Prime Factors
        pf=np.char.array(np.array(list(a),dtype=str))

        #Exponents, create Latex string with primefactors and exponents
        exp=np.char.array(np.array(list(a.values()),dtype=str))
        fac='$' + (', '.join(pf+'^{' + exp + '}')) + '$'

        #Create graph label for last point partial random walk
        l='n= ' + str(int(count*p/s)) + '\nfactors: ' + str(fac) + '\nparity: x=' +  str(xs[(count)]) + ', y=' +  str(ys[(count)]) + '\ncumulative: x=' +  str(xcs[(count)]) + ', y=' +  str(ycs[(count)]) 

        #Plot black total walk and partial red 
        ax1a.clear()
        ax1a.plot(xcs,ycs, marker='', color='black', linestyle='-', markersize=0,linewidth=0.04)
        ax1a.plot(xcs[0:(count)],ycs[0:(count)], marker='', color='red', linestyle='-', markersize=0,linewidth=0.05)
        ax1a.plot(xcs[(count)],ycs[(count)], marker='o', color='red', linestyle='-', markersize=3,linewidth=0,label=l)

        ax1a.grid(b=True, which='major', color='#666666', linestyle='-', zorder=0)
        ax1a.xaxis.set_major_locator(MultipleLocator(tick))
        ax1a.yaxis.set_major_locator(MultipleLocator(tick))
        ax1a.ticklabel_format(axis='x', style='sci', scilimits=None, useOffset=None, useLocale=None, useMathText=None)
        ax1a.ticklabel_format(axis='y', style='sci', scilimits=None, useOffset=None, useLocale=None, useMathText=None)
        ax1a.legend(loc='upper left',fontsize=12,markerscale=1,frameon=False)
        ax1a.set_xlabel('$x$',fontsize=10)
        ax1a.set_ylabel('$y$',fontsize=10)

        plt1.title('Count all factors:  y=+1 (odd), y=-1 (even), Count unique factors: x=+1 (odd), x=-1 (even)', fontsize=10)
        plt1.suptitle('Parity random walk of prime factorization', fontsize=25,y=0.96)
        plt1.gca().set_aspect('equal', adjustable='box')
        plt1.savefig('Random Walk' + str("%05d" % (q+1)) +'.png', dpi=300, bbox_inches='tight')

Reageer