Maxwell-Boltzmann-Verteilung in C++

C++ bietet einige statistische Verteilung an, aber eine wichtige Verteilung der statistischen Physik – die Maxwell-Boltzmann-Verteilung wird nicht angeboten (zumindest konnte ich sie nicht finden), also habe ich mir selbst einen Generator für diese Verteilung geschrieben. Der Algorithmus ist nur wenige Zeilen lang: man würfelt ein Koordinatenpaar (Energie und Verteilungsdichte) und schaut ob der Wert … Weiterlesen

Cache-Optimierung: Zeitliche und Räumliche Lokalität

Cache-Hierarchie.

Wenn man schnelle Programme schreiben möchte, so muss man auch die Funktionsweise der Hardware beachten, wie ich im Folgenden zeige werde. Nehmen wir an, es muss ein zweidimensionales Array vollständig durchlaufen werden. Dieser Fall trifft beispielsweise oft auf, wenn man Bildmanipulationen durchführt. Dazu ein minimales Beispiel. Es wird ein zweidimensionales Integer-Array erstellt und auf zwei … Weiterlesen

Pi mit Monte-Carlo-Simulation und Leibnitz-Formel berechnen

Ein Tausend zufällig verteilte Punkte.

Die Kreiszahl π≈3,14159 ist jedem bekannt, aber wie berechnet man sie? Viele Mathematiker haben sich damit beschäftigt und sehr viele interessante und mächtige Algorithmen entwickelt, so das mittlerweile über 5 Billionen Nachkommastellen von Pi bekannt sind. Am einfachsten bestimmt man die Kreiszahl nach ihrer Definition. Man nimmt also einen Kreis, misst seinen Durchmesser und seinen … Weiterlesen

C++ Teil 10 – Funktionen I

Funktionsaufbau

Inhalt Einleitung Funktionen erstellen Funktionsaufruf Wertübergabe Rückgabewert Ein Beispiel Übungsaufgaben Einleitung In diesem und in mindestens einem weiteren Teil dieser Artikelreihe werden wir uns mit Funktionen beschäftigen. Funktionen sind ein absolut grundlegendes Element einer (funktionaler) Programmiersprache. C++ ist zwar hauptsächlich eine objektorientierte Programmiersprache (dafür wurde sie schließlich entwickelt), aber im Gegensatz zu Java oder C# … Weiterlesen

C++: auto Schlüsselwort

auto keyword Beispiel

Der neue C++ Standard wird viele Neuerungen mit sich bringen und bereits jetzt unterstützen einige Compiler die neuen Konzepte. Eines der kleineren Neuerungen ist das Schlüsselwort auto. Es steht für einen unbekannten Datentyp, den der Compiler selbst bestimmt. Am einfachsten versteht man es anhand eines Beispiels. Führt man das Beispiel aus, so bekommt man folgende … Weiterlesen

C++ Teil 9 – Zeiger

Zeigeraddition

Das Konzept der Zeiger bzw. Pointer(eng. für Zeiger) ist für Anfänger wahrscheinlich der unbeliebteste und für einen Profi der mächtigste Bestandteil von C++. Viele Anfänger verstehen sie anfangs nicht und sogar Profis machen manchmal Fehler im Umgang mit ihnen. Nichtsdestotrotz sind Zeiger ein sehr wichtiges Thema, von dem sich kein C++ – Programmierer drücken kann. … Weiterlesen