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.

 

(7497 Hits)

 

  dcommenter     turing_maschine     tclockex     quadtree     lzw     tetris     delforlaz     wireworld     mastermind     feder_masse     balanced2     gpu_info     projizierte_schatten     kollision     wuerfel     openglsphere     network_listener     pingpong     anty_krypt     bww     partikelengine     4_wins     pi     zufall     calender     picking     einstein     dcf77     hex     funkuhr     alt_f2     opengl_spriteengine     kwirk     button_tool     trackball     sortieren2     heapsim     laufschrift     io_serializer     shannon_fano_coding     4_gewinnt     ae20125     bmp_font     tg12864b     3d_puzzle     screeny     baum     clear_engine     simple_cad     textur_filterung     parken     gebmanager     gefangenen_dilemma     wii_headtrack     proto     fir_iir     fouriersynthese     trio     bezier     mandelbrot     iq_block     cleanup     cpu_load     serial     wii_whiteboard     klab     boxmuller     info     diffusionsfilter     clickomania     textfilter     fpc_depencies     race_condition     episodenmanager     wecker     sql     loop     kartei     multilanguage     knack     steganographie     newton     torus_chess     screensaveblocker     ccm     bigprim     winkonfig     transparenz     greenfoot     passbildcreator     socket     bignumber     numeric_instability     desktop_lock     codecounter     generische_liste     tankplan     wuerfelzauber     network_bandwidth_limiter     binomial     sudoku     opengl_graphikengine     copycommander     filetools     ym1602c     fourier     imageinspector     rubik_cube     c_depencies     l_system     galton_brett     qprogrammer     rubik_cube2     vokabel     attributgrammatik     reihen     xml     matrix     5ermedian     mauskoordinaten     balanced     binaeruhr     verzeichnung     fakenet     funplay2     simple_font     file_transfer     hough_transformation     weihnachtsstern     8x8x8     gorilla     pointer     address_db     ntools     piemenue     digiman     2048     picam     updater     tbitstream     farbspectrum     c_libs     sfxr     project_collector     td     dxtools     puzzle     hoertest     gedanken_leser     fingerspeed     suchen_dialog     pwm     crc     stm     nsudoku     netzwerkprotokol