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)

 

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