Español
Experimente

Probabilistischer Miller-Rabin Primzahlentest

 

p.specht

Leidlich erprobt a ca. N = 92,000,000 y todavía algo langsam, como en reinem XProfan-11. Eingabe de -1 stößt incluso einzuprogrammierende Gruppenausgabe a (Mit -2 Yo mich a el Gültigkeitsgrenze herangetastet).
Título de la ventana "Statistischer Miller-Rabin Primzahltest"
' (CL) CopyLeft 2018-05 P.Pájaro carpintero, Wien; Ohne jede Gewähr!
Windowstyle 24:font 2:set("decimals",17)
Declarar w$,x!,y!,m!,n!

Repeat

    imprimir "\n Primzahltest [Gruppe = -1]: ";
    input w$ :caso w$="-2":w$="90000103"'todavía korrekt
    'Testprime "10,000,007" no mehr erkannt!

    if w$>90000103

        imprimir " *** ZUVERLÄSSIGKEIT sinkt de 90,000,000 ! ***"
        sound 100,100':continue

    endif

    caso w$="-1":Romper
    n!=val(w$)
    locate %csrlin-1,50:imprimir " MillerRabin_7: ";
    imprimir if(MillerRabin(n!),"PRIMZAHL","NICHT prim.")

Until %key=27

Cls:set("decimals",0)
declarar Anz&,Von!,Bis!,Lauf!
Von!=90000000'
Bis!=90000500'a ca. 90,000,000
caso Bis!>100000000:imprimir "\n Lange Dauer esperar! \n"
Lauf!=Von!+(remodf(de!,2)=0)

REPEAT

    if MillerRabin(Lauf!)

        imprimir Lauf!,
        inc Anz&

    endif

    Lauf!=Lauf!+2

UNTIL Lauf!>(Bis!+1)

imprimir "\n Anzahl: ",Anz&
'Check: 2871 Primes de 20000 a 50000
'Check: 764 Primes de 520000 a 530000
'Check: 658 Primes de 5020000 a 5030000
'Check: 577 Primes de 50020000 a 50030000
beep:sound 2000,200
waitinput
End

proc MillerRabin :parámetros n!

    caso n!<2:volver 0
    caso n!<>intf(n!):volver 0
    caso n!<4:volver 1
    casenot remodf(n!,2):volver 0
    declarar s&,d!,x!,res&
    s&=0
    d!=n!-1

    whilenot remodf(d!,2)

        d!=d!/2
        inc s&

    endwhile

    res&=1

    WHILELOOP 7

        x! = modpotf(2+intf(rnd()*(n!-3)),d!,n!)
        Case (x!=1) O (x!=n!-1):continue

        whileloop s&-1,1,-1

            x!=remodf(sqr(x!),n!)

            if x!=1:res&=0:Romper:endif

                if x!=n!-1:res&=2:Romper:endif

                endwhile

                caso res&=0:romper

                if res&=2:res&=1:continue:endif

                    caso x!=n!-1:continue
                    res&=0

                ENDWHILE

                volver res&

            ENDPROC

            Proc modpotf :parámetros x!,y!,m!

                var pot! = 1

                mientras que y!>0

                    if remodf(y!,2)=1

                        pot!=remodf(pot!*x!,m!)
                        y!=y!-1

                    más

                        x!=remodf(sqr(x!),m!)
                        y!=y!/2

                    endif

                endwhile

                volver pot!

            ENDPROC

            proc floor :parámetros x!

                caso abs(x!)<(10^-35):volver 0
                caso x!>0:volver intf(x!)
                volver (abs(x!-intf(x!)) < 10^-35)-intf(abs(x!-1))

            ENDPROC

            proc remodf :parámetros x!,y!

                ' Q: https://de.wikipedia.org/wiki/Modulo , como en ADA
                caso abs(x!)<(10^-35):volver 0
                caso abs(y!)<(10^-35):volver x!
                volver ((x!>0)-(x!<0))*abs(x!-y!*floor(x!/y!))

            ENDPROC

            proc frac :parámetros x!

                var s!=(x!>0)-(x!<0)
                x!=abs(x!)
                x!=x!-round(x!,0)
                caso x!<0:x!=1+x!
                volver s!*x!

            ENDPROC

            proc intf :parámetros x!

                var s!=(x!>0)-(x!<0)
                x!=abs(x!)
                x!=x!-frac(x!)
                volver s!*x!

            ENDPROC

 
XProfan 11
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
27.05.2021  
 



Zum Experiment


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

996 Views

Untitledvor 0 min.
Ernst21.07.2021
Uwe ''Pascal'' Niemeier13.06.2021
Thomas Zielinski07.06.2021
Michael W.07.06.2021
Más...

Themeninformationen

Dieses Thema ha 1 subscriber:

p.specht (1x)


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie