Kurz mal Modulo erklärt

Ihr seid keine Mathematiker und fragt euch was soll dieses komische aber anscheinend nützliche Prozentzeichen (%) in manchen Funktionen. Das Ding nennt sich Modulo. Ihr könnt euch jetzt ganz einfach bei Wikipedia die mathematische Erklärung reinziehen oder ich erkläre auch das kurz im Streetstyle for Everybody.

Das Ding ist ziemlich einfach:
Wir gehen mal die Zahlen 5 und 3 durch:

5%1 = 0
5%2 = 1
5%3 = 2
5%4 = 1
5%5 = 0

7%1 = 0
7%2 = 1
7%3 = 1
7%4 = 3
7%5 = 2
7%6 = 1
7%7 = 0

Na, Muster erkannt?

Falls noch nicht löse ich es jetzt anhand der Zahl 7 auf.

7%1 = 0  weil 7 = ((1*7 = 7) + 0) also ist Rest 0
7%2 = 1  weil 7 = ((2*3 = 6) + 1) also ist  Rest 1
7%3 = 1  weil 7 = ((3*2 = 6) + 1) also ist  Rest 1
7%4 = 3  weil 7 = ((4*1 = 4) + 3) also ist  Rest 3
7%5 = 2  weil 7 = ((5*1 = 5) + 2) also ist  Rest 2
7%6 = 1  weil 7 = ((6*1 = 6) + 1) also ist  Rest 1
7%7 = 0  weil 7 = ((7*1 = 7) + 0) also ist  Rest 0

Nun kann man sich in der Programmierung einige Eigenschaft zu nutze machen. Wie zum Beispiel ob die Zahl gerade oder ungerade ist. Dafür setzten wir die Zahl zu Modulo 2 und erhalten bei einer ungerade stets 1 und bei einer gerade immer die 0. Beispiele gefällig:

1%2 = 1 weil ((2*0 = 0) + 1) also ist Rest 1
2%2 = 0 weil ((2*1 = 2) + 0) also ist Rest 0
3%2 = 1 weil ((2*1 = 1) + 1) also ist Rest 1
4%2 = 0 weil ((2*2 = 2) + 0) also ist Rest 0
5%2 = 1 weil ((2*2 = 1) + 1) also ist Rest 1
6%2 = 0 weil ((2*3 = 0) + 0) also ist Rest 0

Oder ein kleines JavaScript Programm:

btn = document.createElement("BUTTON");
btn.innerHTML = "Das Alphabet";
btn.setAttribute("id","klicki-klicki")
document.body.appendChild(btn);

const letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
let letterIndex = 0;

document.getElementById("klicki-klicki").onclick = function() {
	console.log(letters[letterIndex++ % letters.length])
}

In diesem Programm hilft und das Modulo nach Erreichung des letzten Buchstabens wieder bei A anzufangen. Weil letters[23*1 = 23 REST 0]


Leave a Comment

Your email address will not be published. Required fields are marked *

*

*

Empfholende Artikel


HTML Boilerplate / Scaffold / Vorlage

February 13, 2021

Um schnell mal etwas auszuprobieren, kann es sein das man ein HTML Grundgerüst benötigt. Vielleicht geht es euch ähnlich wie mir. Ich bin faul uns suche dann im anderen Projekten schnell das Gerüst. Was aber immer mit nicht ganz ohne Aufwendung dann einzufügen ist. Man muss hier und dort noch was löschen bzw. korrigieren. Aus […]

Docker auf Ubuntu 18.04 installieren

February 13, 2021

Docker auf einem frischen Ubunto 18.04 installieren geht in wenigen Schritten. Mit frischem meine ich ein System wo noch keine ältere Dockerversion vorher lief. Wir holen jetzt paar Pakete die wir für die Docker Installation brauchen rein. Nun fügen wir den GPG Key/Schlüssel für das offizielle Docker Repository hinzu. (ist ein freies Kryptographiesystem) Jetzt fügen […]

Git – Neuen Branch verwerfen / löschen

February 10, 2021

Es kommt vor, dass man ein Feature für ein Projekt entwickeln soll und man zuerst ausprobiert was so geht. Ihr arbeitet an einem Remote Repository und entwickelt lokal. Dann schnell mal ein composer update und die composer.lock ist geändert. Ihr wollt am liebsten den ganzen Branch verwerfen und zum Step zurück wo ihr angefangen habt. […]

Tailwind CSS – Ein kurzer Einstieg

January 8, 2021

Seit Jahren nutze ich Bootstrap. Ich dachte nicht mal im Traum dran, dass es etwas Besseres im Punkto Websitedesign geben wird. Es ist einfach, praktisch und man kann relative schnell ansprechende bzw. aufgeräumtes Designs umsetzen. Allerdings hatte Bootstrap für mich immer einen bitteren Beigeschmack. Ein Gedanke den ich nie zulassen wollte. Und zwar: Bootstrap sieht […]

Alpine.js – Ein kurzer Einstieg

January 2, 2021

Nicht alle Webprojekte müssen zwangsläufig darauf hinauslaufen sie mit Javascript Frameworks wie Vue JS, React oder Angular umzusetzen. In den Jahren 2015 bis 2020 war das schon ein spürbarer Trend. Man betrachtet nicht mehr den Overhead von Frameworks bei kleinen Projekten sondern wie schnell man ohne lange Nachzudenken Projekte bauen kann. Allerdings fällt dieser Ansatz […]

Problem mit dem Composer update/install und der PHP Version

November 30, 2020

Erst vor kurzem habe ich für eine Agentur eine Laravel Anwendung gebaut. Ich habe sie lokal entwickelt und nachdem sie fertig und getestet war dem Kunden vorgestellt. Da ich noch keine Servercredentials von der Agentur hatte, habe ich das Projekt in mein GitHub gelegt und auf meinen Server geclont und dort die Anwendung konfiguriert (Datenbank […]