Wie rechnet man mit Modulo in der Informatik ?

3 Antworten

Modulo ist der Rest der ganzzahligen Division. Wenn Du A durch B teilst, ergibt sich ein Vielfaches V und ein Rest M. Um diesen Rest geht es.

Oder etwas mathematischer:

Aus M = A mod B [z.B. 1 = 6 mod 5]

folgt umgekehrt (B * V) + M = A [z.B. 5*v + 1 = 6]

Oder anders gefragt: Ermittle die Zahl V, für die

B*V =< A < B*(V+1)

Das geht leicht z.B. als Excel-Formel: V = Ganzzahl(B/A)

Dann ist M = A - (B*V)

Oder als Algorithmus:

So lange A-B > 0 wiederhole {
  A = A-B
}
M = A

So wie es die Mathematik vorschreibt:

  1. Die Modulo-Division ist nur für Ganzzahlen definiert. Fließkommazahlen können ja beliebig viele Nachkommastellen bilden und haben …
  2. Es werden zwei Ganzzahlen geteilt und es gibt entweder einen ganzzahligen Rest oder keinen Rest. In letzterem Fall ist das Ergebnis 0, ansonsten sind alle möglichen Ergebnisse denkbar …

Modulo ist Restrechnung. Du machst eine ganz normale Division mit Rest, und das Ergebnis is dann allerdings nur der Rest

Beispiel: 1 / 5 = 0 Rest 1 => 1 mod 5 = 1

also wäre dann : fünf ++ % sechs = 1 => 1*5= 5 => ergebnis ?

0
@TiMaus

Ich habe absolut keine Ahnung, was du mit dieser Zeile aussagen willst ...

1
@TiMaus

Das Modulozeichen ist nur %, nicht ++% - deswegen war ich verwirrt.

Wie oben in meinem Beispiel geschrieben:

5 / 6 = 0 Rest 5 => 5 % 6 = 5

0
@DoTheBounce

In z.B Java ist, wenn die Variable a den Wert 5 hat:

a++%6 = 5,

aber:

++a%6 = 0

weil bei a++ der Wert erst NACH der Operation erhöht wird.

0
@Oubyi

Das weiß ich, aber in so ziemlich jeder Programmiersprache wird 5++ und ++5 einen Fehler liefern.

0
@DoTheBounce

NEIN!
Zumindest in JAVA ist das KEIN Fehler, sondern eine sehr häufig genutzte Funktion, um den Wert einer Variablen um 1 zu erhöhen, und soweit ich weiß auch in C++ und C# (bin da aber nicht sicher).
Also kann auf jeden Fall nicht davon die Rede sein, dass das in ziemlich jeder Programmiersprache ein Fehler wäre.
Und die Progrmmzeile:
b = a++%6;
liefert für b den Wert 5, wenn a=6 ist und
b = ++a%6;
liefert für b den Wert 0.

(Getestet!)

0
@Oubyi

KORREKTUR!

Sorry, ich hatte nicht verstanden, dass Du speziell
5++
gemeint hast.
Ist mir erst gerade aufgegangen.
Mit einem Litteral macht das natürlich wirklich keinen Sinn
und ist ein Fehler.
Also ignoriere bitte meine vorangegangenen Kommentar.

0

Wie löse ich die Javaaufgabe für den goldenen Schnitt?

Hallo liebe Community,

ich habe folgendes Problem: Ich muss eine Javaaufgabe lösen, welche diesen mit konvergenz berechnet. Die vorgegeben Formel lautet wie folgt: g = 1 + 1/g = 1+1/1+1/g = ... Für g wird quasi immer 1+1/g eingesetzt. Mir wird ein Parameter übergeben, welcher bestimmt, wie oft die Abfolge berechnet werden soll. Bei meinem Programm kommt es aber immer wieder zu minimalsten Abweichungen bei der 3.-5. Nachkommastelle und ich weiß nicht wie ich diese Abweichungen beseitigen kann.

Hier noch der bisherige Code:

public class GoldenRatio {

    public static double result;
    public static double result2;
public static double calculate(int n) {
    
    if(n==0){
        return 0;
    }
    for(int i=0;i<=n;i++){
        result = 1+ 1/result;
    }
    return result;
}

}

Ich hoffe ihr könnt mir da irgendwie weiterhelfen.

Viele Grüße Dubsepp

...zur Frage

Wie kann ich meine Freunde mit Tricks austricksen?

Also hier hab ich ein paar Beispiele was ich damit meine: Zu deinem Freund müsstest du sagen: Sag Nabel Jetzt sag dreimal Nabel Buchstabiere es zweimal Und jetzt sag es noch zweimal Mit was ist du deine Suppe ? Theoretisch würde er dann Gabel sagen Noch eins : Du sagst du zu deinem Freund : Gibt es eine größere Zahl als 1? Gibt es eine größere Zahl als 10? Gibt es eine größere Zahl als 20? Gibt es eine größere Zahl als 100? Gibt es eine größere Zahl als 500? Gibt es eine größere Zahl als 100.00? Gibt es eine größere Zahl als Millionen? Gibt es eine größere Zahl als Milliarden ? Dann würde er halt die ganze Zeit ja sagen und am Ende fragst du dann: Gibt es einen größeren dummkopf als du? Und theoretisch würde er dann nein sagen 😂 Also meine Frage ist ob ihr auch solche "Tricks" kennt! Würde mich über hilfreivhe antworten freuen Gruß, Mandy

...zur Frage

Was braucht man zum Schreiben eines Java-Programm ohne Entwicklungsumgebung?

Hallo,

Was braucht man dafür? Um ein Java Programm ohne Entwicklungsumgebung zu schreiben? Welche Befehle muss man in die Kommandozeile schreiben? Und welche Zwischenprodukte gibt es vom Quellcode bis zum Prozess, wenn man ohne Entwicklungsumgebung arbeitet?

Danke.

...zur Frage

Wie funktioniert Math.random() in Java?

Math.random() erzeugt eine "zufällige" Zahl zwischen 0 und 1. Aber wie genau wird diese erzeugt. Habe dazu im Internet noch nichts gefunden.

Ich wäre über einen Link dankbar, in dem der Algorithmus erklärt wird, bzw. wie man den Wert vorhersagen kann.

...zur Frage

Kleiner, oder größer als?

Tagchen Leute, mal ne Frage auf welche Zahl zeigt nochmal das < Zeichen, die größere oder kleiner Zahl ?

...zur Frage

Punkt vor strich Rechnung klammer?

Kann mir jemand sagen wenn zum Beispiel diese Regeln minus und plus Rechnung was man als erstes rechnet und welche Zahl wird negativ Beispiel -8.6+0.5 gleich was rechnet man als erstes was verändert sich?

...zur Frage

Was möchtest Du wissen?