Français
Experimente

Ackermann-Funktion A(3,6) comme Benchmark

 

p.specht

Wilhelm Friedrich Ackermann (* 1896 dans Schönebecke (Herscheid); † 1962 dans Lüdenscheid) était un Allemand Mathematiker, qui avec seiner Funktion 1926 une These seines Lehrers David Hilbert trop le cas brachte, derzufolge alle berechenbaren Funktionen aussi rekursiv berechenbar seien. Ackermann's Funktion wurde 1955 de qui Ungarin Rózsa Péter vereinfacht.

Pour Benchmark-Timingzwecke wird üblicherweise A(3,6) herangezogen.
' (D) Demoware, 2013-03 de C pour XProfan-11 by K. Orkenzieher
' Beweist aussi, qui quelque chose Rekursion aussi dans XProfan funktioniert.
' source (Orig.): https://www.xgc.com/benchmarks/ackermann_c.htm
' Updated May 11, 2005. Copyright (C-Version): XGC Software
' Begleittext des C-Vorbildes:
'   Ackermann's function "is à example of a recursive function which
'   is not primitive recursive". It is interesting à partir de le point of
'   view of benchmarking because il "grows faster than any primitive
'   recursive function" and gives us a lot of nested function calls
'   for little effort.
'   It is defined as follows:
'   A(0, n) = n+1
'   A(m, 0) = A(m-1, 1)
'   A(m, n) = A(m-1, A(m, n-1))
'   We use A(3,6) as le benchmark. This used to take long enough to
'   confirm le execution time with a stopwatch. Nowadays that's out
'   of le question. The value of A(4,2) has 19729 digits!
'   A (3,6) gives us 172233 calls, with a nesting depth of 511.
'
var m&=3
var n&=6
Déclarer à l'!,t1&,t2&
Windowtitle "Ackermann-Péter A("+str$(m&)+»+str$(n&)+")-Benchmark"
CLS
t1&=&gettickcount
ans! = A(m&,n&)
t2&=&gettickcount
imprimer " Ergebnis: ";format$("%g",à l'!)
cas (m&=3) and (n&=6) and (à l'!<>509) :imprimer "Resultat ";ans!;" faux,  509 muss rauskommen!"
cas (m&=3) and (n&=7) and (à l'!<>1021):imprimer "Resultat ";ans!;" faux, 1021 muss rauskommen!"
imprimer format$(" Benchmark-Zeit = %g Sekunden",(t2&-t1&)/1000)
waitinput
Fin

proc A

    parameters m&,n&

    si m&=0

        return n&+1

    elseif n&=0

        return A(m&-1,1)

    d'autre

        return A(m&-1,A(m&,n&-1))

    endif

endproc


P.S.: mon Lappi (Zweikerner 1.86 GHz) liefert:
A(2,200)=403: Interpreter 7,305 sec, Compiler 1,264 sec;
A(3,6)=509: Interpreter 14.445 sec, Compiler 2.663 sec; nProc: 0.002 sec
A(3,7)=1021: Interpreter 61.976 sec, Compiler 11.123 sec; nProc: 0.015 sec
A(3,8)=2045: Interpreter 261.45 sec, Compiler 45.864 sec; nProc: 0.062 sec
A(3,9)=4093: Interpreter et Compiler brechen à cause de trop hoher Rekursionstiefe ab; nProc: 0,265 sec
A(3,10)=8189: nP: 1,092 sec
A(3,11)=16381: nP: 4,212 sec
A(3,12)=32765: nP: 17,019 sec
A(3,13)=65533: nP: 67,47 sec
A(3,n)=2^(n+3)-3
A(4,1)=65533 : nP: 66,737 sec
A(4,2)=2^65536−3 ... pas ermitelt
 
XProfan 11
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
09.05.2021  
 




p.specht

Ackermann-Funktion quelque chose flotter
-------------------------------------------
là vous sur Long-Integers défini ist, fonctionne cela dans XProfan-11 droite vite dans den Überlaufbereich (Kennzeichen: Les chiffres sont négative). avec cela letzteres pas so vite passiert, ici une définition sur ganzzahllige Float-Variablen.
attention: Ackermann(4,2) führt selbst sur Supercomputern ins "Nirwana"...
Titre de la fenêtre "Ackermann-Funktion, sur FLoats definiert"
'par qui ungar. Mathematikerin Roza Peters beschleunigte Version
set("decimals",0):CLS:declare i!,j!

whileloop 0,5:i!=&Boucle

    whileloop 0,6:j!=&Boucle

        imprimer " ACKERMANN(";i!;»;j!;") = ";ACK(i!,j!)

    endwhile

endwhile

imprimer "---"
waitinput
FIN

Proc ACK :parameters m!,n!:declare à l'!

    si nearly(m!,0,5):à l'!=n!+1

    elseif nearly(n!,0,5):à l'!=ACK(m!-1,1)

        d'autre :à l'!=ACK(m!-1,ack(m!,n!-1))

    endif

    return à l'!

endproc

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



Zum Experiment


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

1.565 Views

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

Themeninformationen

cet Thema hat 1 participant:

p.specht (2x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie