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.

 

(7487 Hits)

 

  fakenet     attributgrammatik     4_wins     library     rent_it     trackball     proto     textfilter     kwirk     copycommander     wireworld     fir_iir     nsudoku     turing_maschine     network_listener     parken     transparenz     ccm     8x8x8     ctools     balanced     simple_cad     matrix     pi     projizierte_schatten     screensaveblocker     dxtools     ascii     wuerfelzauber     pingpong     klab     mauskoordinaten     picam     fourier     multilanguage     opengl_graphikengine     summe_n     fpc_depencies     torus_chess     steganographie     ym1602c     dcf77     mandelbrot     filetools     lzw     bmp_font     puzzle     network_bandwidth_limiter     calender     hoertest     pathfinder     balanced2     piemenue     zauber     5ermedian     proof2e1     loop     passbildcreator     c_libs     rsa     hex     send_get_file     basic     4_gewinnt     gedanken_leser     minipaint     generische_liste     euler     crc     exp_func     iq_block     tetris     stm     tbitstream     schachprobleme     bezier     codecounter     greenfoot     picking     mastermind     graphen_algos     verzeichnung     cpu_load     clear_engine     fouriersynthese     cleanup     gebmanager     wecker     hilbert     io_serializer     sql     ntools     3d_puzzle     ae20125     tg12864b     td     vokabel     sortieren2     openglsphere     serial     induktion     pointer     anty_krypt     wuerfel     partikelengine     farbspectrum     diffusionsfilter     binomial     button_tool     gorilla     maw     desktop_lock     wii_whiteboard     episodenmanager     cubemap     alt_f2     shannon_fano_coding     feder_masse     qprogrammer     winkonfig     bww     sudoku