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)

 

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