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.

 

(7499 Hits)

 

  ym1602c     send_get_file     wireworld     wii_whiteboard     turing_maschine     delforlaz     ntools     hough_transformation     sql     alt_f2     parken     weihnachtsstern     td     feder_masse     sudoku     binomial     project_collector     einstein     simple_cad     clear_engine     info     iq_block     openglsphere     transparenz     4_wins     serial     jazzball     projizierte_schatten     qprogrammer     4_gewinnt     5ermedian     verzeichnung     copycommander     bezier     maw     bignumber     pi     bmp_font     kartei     dithering_mask     network_listener     network_bandwidth_limiter     mastermind     bww     fourier     gebmanager     netzwerkprotokol     knack     balanced2     binaeruhr     clickomania     mandelbrot     imageinspector     shannon_fano_coding     file_transfer     minipaint     filetools     suchen_dialog     8x8x8     diffusionsfilter     winkonfig     boxmuller     screensaveblocker     ctools     quadtree     anty_krypt     textur_filterung     ccm     torus_chess     fouriersynthese     button_tool     codecounter     tankplan     fir_iir     graphen_algos     picam     tetris     hoertest     io_serializer     vokabel     tg12864b     wuerfel     proto     hex     wuerfelzauber     stm     2048     dxtools     c_libs     matrix     library     nsudoku     labyrintcreator     fpc_depencies     dcommenter     puzzle     episodenmanager     lzw     3d_puzzle     attributgrammatik     klab     newton     balanced     trackball     pointer     greenfoot     picking     tippsy3     partikelengine     cpu_load     fakenet     funkuhr     tipp_it     farbspectrum     tbitstream     io_adapter     screeny     steganographie     generische_liste     ae20125     stereoprojektion     dithering_filtering     dcf77     calender     numeric_instability     gorilla     heapsim     weihnachtskalender     wecker     piemenue     textfilter     passbildcreator     schachprobleme     desktop_lock     crc     sortieren2