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.

 

(7476 Hits)

 

  verzeichnung     ctools     desktop_lock     bww     weihnachtskalender     farbspectrum     send_get_file     picturerotate     sql     balanced2     filetools     zauber     fpc_depencies     mastermind     bezier     3d_puzzle     4_wins     gedanken_leser     fakenet     openglsphere     proto     greenfoot     parken     fir_iir     td     simpleray     binomial     maw     dcf77     rubik_cube     schachprobleme     io_serializer     fingerspeed     pentago     copycommander     rollenspiel     netzwerkprotokol     wuerfel     gefangenen_dilemma     picking     partikelengine     transparenz     winkonfig     torus_chess     fouriersynthese     euler     dxtools     mandelbrot     feder_masse     zufall     digiman     balanced     sudoku     hex     nsudoku     klab     puzzle     gorilla     induktion     c_libs     screensaveblocker     passbildcreator     atmegaboard     piemenue     button_tool     serial     calender     cubemap     proof2e1     sortieren2     imageinspector     turing_maschine     perlin_noise     screeny     ae20125     stm     vokabel     crc     cleanup     pointer     8x8x8     tbitstream     delforlaz     gebmanager     numeric_instability     textfilter     codeviewer     stereoprojektion     attributgrammatik     network_listener     loop     ascii     generische_liste     steganographie     xml     tg12864b     hough_transformation     cpu_load     projizierte_schatten     trio     bmp_font     wecker     wii_whiteboard     binaeruhr     hoertest     diffusionsfilter     funkuhr     bignumber     alt_f2     opengl_spriteengine     network_bandwidth_limiter     simple_cad     baum     tippsy3     picam     hilbert     iq_block     trackball     ym1602c     shannon_fano_coding     exp_func     weihnachtsstern     dithering_filtering     2048     matrix     uuart     codecounter     qprogrammer     ccm     knack     dcommenter     clear_engine     fourier     funplay2     episodenmanager     suchen_dialog     ntools