zur Startseite zum Inhalt zur Navigation

Gedanken_leser

 

Zugegeben der Name ist etwas irreführend, aber unter 
diesem Namen habe ich das Programm kennengelernt.

Worum es geht.

Der User denkt sich 5 Ganzzahlen aus. Verrechnet 
diese mittels + , - so das er Jede Zahl einmal 
benutzt hat. Dann gibt er die 5 Zahlen und das 
Ergebnis ein. Das Programm berechnet dann die 
Benutzen Rechenoperationen.

Im Prinzip total sinnlos also das Programm.

Es geht hierbei aber weniger um die Funktion ( Auch 
wenn das Programm fast Perfekt funktioniert ), sondern 
mehr darum das ich hier mal zeigen will wie man 
generell mit unterschiedlichen Programmen das Selbe 
erreichen kann.

Implementiert sind 3 Verfahren, jeweils mittels einem 
Berechne Button.

Berechne1 : Ermittlung des Ergebnis Iterativ

Berechne2 : Ermittlung durch Raten

Berechne3 : Ermittlung durch Rekursion

Leider ist Berechne2 nur dann sinnvoll wenn das 
Ergebnis tatsächlich berechenbar ist. ( wenn nicht 
Terminiert das Programm niemals ). Wenn das Ergebnis 
tatsächlich ermittelbar ist, dann ist Berechne2 
allerdings im Mittel deutlich schneller als die 
beiden anderen Verfahren.

Schaut euch also den Source an und überlegt selbst 
welche Variante ihr Vorziehen würdet.

Mir gefällt Berechne1 natürlich am Besten weil es am 
wenigsten Speicher benötigt und mir das auch als 1. 
eingefallen ist. Berechne3 ist aber genau so schnell, 
und mal abgesehen vom unnötigen Stack Aufbau auch 
gleichwertig.

Berechne2 ist Elegant, aber dank der nicht 
Terminieren Funktion ( die sich durch eine oberere 
Schranke ausbauen Liese [man könnte die versuche 
Zählen und nach maximal 2^5 = 32 versuchen, so lange 
brauchen die anderen Programme nämlich, abbrechen 
und als nicht gültige Lösung erkennen. Dies 
bedeutete aber das bei ungünstigen Fällen Korrekte 
Lösungen als nicht Korrekt erkannt würden.]) leider 
nicht unbedingt optimal.

 

( 145 Hits )

 

  alt_f2     knack     trio     ccm     cubemap     screensaveblocker     weihnachtsstern     baum     dxtools     einstein     rent_it     sudoku     gorilla     cpu_load     network_delay     clickomania     pingpong     tetris     induktion     sql     screeny     imageinspector     torus_chess     info     formelparser     partikelengine     proto     jazzball     textfilter     gefangenen_dilemma     graphen_algos     ntools     dithering_mask     rubik_cube     gedanken_leser     codeviewer     feder_masse     button_tool     fouriersynthese     numeric_instability     hex     reihen     library     tg12864b     atmegaboard     fpc_depencies     picturerotate     mandelbrot     picking     binomial     openglsphere     stereoprojektion     dcf77     sprite_engine     ascii     summe_n     filetools     xml     schachprobleme     l_system     zauber     mauskoordinaten     fakenet     bignumber     simpleray     balanced     io_serializer     affenpuzzle     exp_func     wecker     balanced2     send_get_file     weihnachtskalender     trackball     opengltruetypefont     wii_headtrack     cleanup     ae20125     copycommander     opengl_graphikengine     pentago     klab     loop     multilanguage     generische_liste     ym1602c     heapsim     minipaint     mastermind     file_transfer     hilbert     passbildcreator     simple_cad     farbspectrum     labyrintcreator     8x8x8     race_condition     uuart     tippsy3     kollision