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.

 

(7492 Hits)

 

  ccm     dcf77     dxtools     graphen_algos     laufschrift     verzeichnung     mauskoordinaten     baum     sudoku     fpc_depencies     torus_chess     gedanken_leser     stereoprojektion     bignumber     fourier     sortieren2     delforlaz     bww     zufall     balanced2     anty_krypt     steganographie     klab     labyrintcreator     fakenet     uuart     picturerotate     simple_cad     wii_headtrack     tg12864b     address_db     tclockex     crc     piemenue     bezier     puzzle     binaeruhr     pwm     clear_engine     iq_block     pointer     desktop_lock     wuerfelzauber     picam     file_transfer     sql     atmegaboard     turing_maschine     openglsphere     button_tool     ntools     io_serializer     galton_brett     trackball     bmp_font     race_condition     copycommander     episodenmanager     greenfoot     3d_puzzle     wuerfel     calender     numeric_instability     pingpong     pentago     mastermind     c_depencies     mandelbrot     hough_transformation     partikelengine     screeny     hex     network_listener     nsudoku     balanced     opengl_spriteengine     stm     picking     matrix     proto     updater     cubemap     cleanup     imageinspector     lzw     suchen_dialog     passbildcreator     dcommenter     quadtree     netzwerkprotokol     cpu_load     loop     alt_f2     reihen     filetools     wecker     4_wins     vokabel     gebmanager     schachprobleme     waage     winkonfig     dithering_mask     l_system     feder_masse     projizierte_schatten     transparenz     2048     socket     codecounter     tetris     sprite_engine     wireworld     weihnachtsstern     parken     jazzball     newton     gorilla     c_libs     info     td     serial     diffusionsfilter     qprogrammer     farbspectrum     ae20125     shannon_fano_coding     multilanguage     wii_whiteboard     rubik_cube     textfilter     ym1602c     fir_iir     fouriersynthese