PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : An die Programmierer: Mathematik in Software (RAL guck rein:D)


Captain America
2002-04-22, 10:06:22
Hello fellow coders,

Damals, als ich noch die Syntax für eine For-Schleife nachschlagen musste, haben mir immer alle gesagt: "Du willst Programmieren? Na dann musst du aber gut in Mathematik sein Junger Mann!". Das war schon damals nicht so ganz einfach, in dem Fach bin ich immer Funkenschlagend auf der Felge gefahren, und eine 4 war schon ziemlich gut für mich.

Nicht dass ich total Banane bin, Grundrechenarten sind OK bei mir, aber Trigonometrie und so sind bei mir eher geduldet als Willkommen.

Mit der Zeit hab ich aber gemerkt, dass ich für's Programmieren eigentlich gar keine Mathematik im Grossen brauche, sondern eher Logik und die Fähigkeit komplexe Probleme in "manageable pieces" zu zerlegen.

Wie steht es mit euch? Braucht ihr Mathematik in eurer Software? Wenn ja, welcher Bereich der Mathematik / Software ist es? Ich als Internet / Datenbank-Fuzzi brauche eigentlich kaum was aus der Schule, für Internet reichen simple Berechnungen über Prozente und Mittelwerte, und für Database brauche ich auch kein tieferes Wissen über das Relational Model.

Vielleicht ist mein Horizont ja Begrenzt ?-), dann klärt mich auf.

grakaman
2002-04-22, 11:00:56
recht hast du, für webapplikationen brauchst das auch nicht bub. aber wenn du zb. grafik programmierst, dann sieht das schon wieder ganz anders aus. allerdings denke ich, dass alles lernbar ist, wenn man sich nur genügend damit auseinandersetzt und den willen zeigt.

RAL
2002-04-22, 11:18:18
Es gibt schon Bereiche, in denen man mit realtiv wenig Mathe auskommt, aber auch wieder welche, in denen man sie oft braucht oder in denen sie halt recht nützlich ist. Rekursion z.b. ist oft die weitaus eleganteste Methode eine Funktion hinzuschreiben (auch wenn sie oft nicht die effizienteste ist bez. Speicherplatz oder Zeit). Dann ist Komplexitätstheorie natürlich noch relativ wichtig. Dabei gehts dann darum abzuschätzen, wie aufwändig die Berechnung wird, wenn die Eingabeparamter grösser (oder mehr) werden, Sortieralgorithmen mit ihrer Komplexität z.b. sollte man schon grob kennen. Kleines Beispiel. Ich kann mich noch erinnern, wie ich mich mal vor Urzeiten an ein Backgammonprogramm gewagt hab. Als die ganze Bürokratie (Brett, Regeln, workflow) geproggt war, gings dann darum, dem Programm möglichst sinnvolle Züge abzugewinnen. Dazu musste ich Stellungsbewertungsfunktionen konstruieren. Das war dann so eine Sache, bei der es sehr nützlich war, ein bissel was Erfahrung mit mathe zu haben. Man hat eine ungefähre Vorstellung davon, was eine Funktion als Argumente kriegen soll, was hinten rauskommen soll und von welchem Typ die Funktion sein soll (polynomial, exponential, logarithmisch zB). Wenn man z.B meint, dass eine Funktion polynomial vom 2. Grad sein müsste, also von der Form

f(x) = a*x*x + b

dann gehts im nächsten Schritt darum, a und b zu bestimmen. Das ist einfache Schulmathematik.

Ob man nun z.B. weiss, wie man das Volumen einer Pyramide berechnet, ist wurscht. Sowas kann man ja inner Formelsammlung nachschlagen, aber so ganz grundsätzliche Dinge sollte man schon beherrschen.

Ich sag mal so, für die Standardaufgaben gibts eigentlich immer vorgekautes. Will man was sortieren, nimmt man halt quicksort, weils in den Bibliotheken zu finden ist. Quicksort z.B. hab ich schon in vielen Programmen (leicht) umwandeln müssen, damit ichs benutzen konnte, aber das geht nur, wenn man versteht, wie die Funktion arbeitet. Quicksort ist übrigens ein Standardbeispiel einer rekursiven Funktion. Wenn man aber plötzlich ein Programm schreiben soll, in dem man selber 'rechnen' muss, ist man erstmal aufgeschmissen, wenn man keinerlei Ahnung davon hat, wie man vorgehen sollte.

Wanginator
2002-04-22, 23:38:55
Mathematik ist eigentlich nur im geringen Maße erforderlich. Viel wichtiger ist, wie du schon sagtest, die Logik. Man muß nun mal fähig sein seine software logisch aufzubauen (also ob statement1 vor oder nach statement2 kommt, usw.).
Ansonsten benötigt man nicht mehr als reine algebra und die wichtigsten rechenarten. Zur Berechnung von komplizierteren Funktionenn und Vektoren, z.B. innerhalb einer 3D-Engine ist aber auch durchaus mehr erforderlich.

Nichtsdestotrotz ist auch Ordentlichkeit eine Tugend des Programmierens. Ich hasse es einfach, wenn Leute etwas schreiben und dann alles unstrukturiert und unkommentiert ist....*eg*

monstar-x
2002-04-23, 11:41:52
Also ein bischen braucht man schon für AS sonst geht da gar nichts, aber dafür gibts ja auch Software :)

greetz

BNO
2002-04-26, 19:55:34
Für die normalen Programmiersprachen braucht man eigentlich nur Grundrechenkenntnisse, wenn es aber in die erstellung von Grafikanwendungen oder 3D-Grafikanwendungen (Spiele) geht, dann muss man schon mit Vektoren usw. umgehen können. Ansonsten wird die ganze Api nix.