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.

 

(7504 Hits)

 

  gefangenen_dilemma     info     verzeichnung     wireworld     nsudoku     turing_maschine     simple_cad     opengltruetypefont     fouriersynthese     einstein     kollision     sudoku     bww     lzw     calender     iq_block     delforlaz     picturerotate     tankplan     euler     puzzle     boxmuller     numeric_instability     td     kwirk     tetris     partikelengine     calc     balanced     5ermedian     bmp_font     bezier     race_condition     parken     textfilter     file_transfer     cubemap     greenfoot     piemenue     hoertest     pentago     digiman     ae20125     farbspectrum     alt_f2     imageinspector     send_get_file     mauskoordinaten     projizierte_schatten     kartei     proto     weihnachtskalender     basic     picking     stereoprojektion     bignumber     3d_puzzle     wuerfel     screeny     ccm     shannon_fano_coding     picam     clear_engine     button_tool     mandelbrot     uuart     pointer     desktop_lock     codecounter     pingpong     hilbert     loop     dithering_mask     torus_chess     winkonfig     mastermind     xml     sql     gebmanager     baum     ym1602c     c_libs     vedische_multiplication     anty_krypt     matrix     weihnachtsstern     2048     address_db     tipp_it     io_serializer     openglsphere     vokabel     klab     suchen_dialog     trackball     opengl_graphikengine     labyrintcreator     stm     textur_filterung     rsa     trio     galton_brett     dxtools     qprogrammer     schachprobleme     binomial     gorilla     wuerfelzauber     multilanguage     graphen_algos     opengl_spriteengine     passbildcreator     fpc_depencies     8x8x8     wecker     fourier     diffusionsfilter     tbitstream     ntools     4_wins     filetools     clickomania     c_depencies     fir_iir     gedanken_leser     maw     l_system     raetsel     crc     steganographie     balanced2     sirpinksy