Größter gemeinsamer Divisor mit Java

Größter gemeinsamer Divisor mit Java
„Der größte gemeinsame Divisor, abgekürzte GCD, ist auch als der höchste gemeinsame Faktor bekannt, der abkürzte H.C.F.”

Bedeutung des größten gemeinsamen Divisors

Ein Divisor ist eine ganze Zahl (Ganzzahl), die ohne einen Rest in eine andere ganze Zahl eingeht. Der größte gemeinsame Divisor wird am besten mit einer Illustration erklärt. Die folgende Tabelle zeigt zwei Zahlen: 60 und 108, wobei alle ihre Divisoren größer als 1.

Es gibt Divisoren in der Tabelle, die 60 und 108 nicht gemeinsam sind. 2 ist jedoch ein gemeinsamer Teil der Nummern 60 und 108, aber es ist nicht der größte Teil des Divisors, der bei 60 und 108 gemeinsam ist. Divisor 3 wird ähnlich beschrieben. Durch die Inspektion des Tisches ist der größte Divisor, der sowohl 60 als auch 108 gemeinsam ist. Kein Divisor über 12 ist sowohl in 60 als auch 108 üblich. Also ist 12 der größte gemeinsame Divisor für 60 und 108.

Ziel dieses Artikels ist es zu erklären, wie der größte gemeinsame Divisor durch Subtraktion oder durch Teilung erhalten kann. mit der Programmierung in Java.

GCD durch Subtraktion

Durch Inspektion aus der obigen Tabelle ist die GCD für 60 und 108 12. Dies bedeutet, dass das Ergebnis 60 wird, wenn 12 wiederholt hinzugefügt wird, ist das kleinere beider Zahlen, wenn beide Zahlen kleiner sind. Wenn die Zugabe von 12 fortgesetzt wird, wird das Ergebnis 108, je größer beider Zahlen. Das ist:

12 + 12 +12 +12 + 12 = 60

12 + 12 +12 +12 + 12 = 60 + 12 + 12 + 12 + 12 = 108

Das ist:

60 + 12 + 12 + 12 + 12 = 108

Was bedeutet:

60 + 48 = 108

Wenn die Zugabe von GCD zu beiden Zahlen führen kann, kann möglicherweise eine Form der kontinuierlichen Subtraktion nach unten zum GCD führen. Dies ist eine Tatsache, wie aus den folgenden Schritten dargestellt, beginnend mit der Differenz von 108 und 60:

108 - 60 = 48
60 - 48 = 12
48 - 12 = 36
36 - 12 = 24
24 - 12 = 12
12 - 12 = 0

Zwischen 60 und 108 ist 108 die größere Zahl. Danach wird die Differenz der resultierenden Differenz (48 für den ersten Schritt) und der Subtrahend (60 für den ersten Schritt) wiederholt erhalten, bis die Antwort Null ist. In den Schritten wird die kleinere Zahl von der größeren Zahl abgezogen. Im letzten Schritt sind die Minuend und der Subtrahend gleich. Der gleiche Wert ist der größte gemeinsame Divisor.

Lassen Sie die Zahlen, deren GCD erforderlich ist, a und b sein. Wenn diese Zahlen keine GCD mehr als 1 haben, bedeutet dies, dass ihr größter gemeinsamer Divisor 1 ist. In der Programmierung ist die zeitliche Komplexität, um die GCD durch Subtraktion zu finden, O (A+B). Wenn a 1 und b 5 sind, sind die Schritte ohne Programmierung:

5 - 1 = 4
4 - 1 = 3
3 - 1 = 2
2 - 1 = 1
1 - 1 = 0

Der GCD hier ist 1. Hier gibt es fünf Schritte und nicht sechs Schritte von (a + b). Bei der Programmierung wird jedoch die maximal mögliche Anzahl von Codevorgängen als Zeitkomplexität angenommen.

Codierung von GCD durch Subtraktion

Die Klasse und Methode für den größten gemeinsamen Divisor durch Subtraktion in Java sind:

Klasse GCDs
int gcds (int a, int b)
if (a == b)
Rückkehr a;
if (a> b)
Return GCDs (A-B, B);
Return GCDs (a, b-a);

Es beginnt mit einer Erklärung für den letzten mathematischen Schritt, wenn beide resultierenden Zahlen gleich sind. Die nächsten beiden Aussagen subtrahieren die kleinere Zahl von der größeren Zahl rekursiv. Eine Java -Hauptklasse und eine Java -Hauptmethode, um zur obigen Klasse zu gehen, lautet:

Hauptklasse Haupt
public static void main (String args [])
Gcds obj = new gcds ();
int ret = obj.GCDs (108, 60);
System.aus.println (ret);

Die Ausgabe ist 12.

GCD von Division

Die obige Tabelle wird hier wiederholt, um eine einfache Referenz zu erhalten:

Die beiden Zahlen, deren GCD benötigt wird, sind 60 und 108, wobei 108 die größere Zahl sind. Die obige Erklärung für die Subtraktion begann mit:

12 + 12 +12 +12 + 12 = 60

12 + 12 +12 +12 + 12 = 60 + 12 + 12 + 12 + 12 = 108

Das ist:

60 + 12 + 12 + 12 + 12 = 108

Was bedeutet:

60 + 48 = 108

Modulo Division ist eine Abteilung, in der die Antwort der gesamte Teil des Quotienten ist und der Rest ebenfalls berücksichtigt wird. Betrachten Sie den Rest, wenn Sie 108 durch 60 Teilen und Reste der resultierenden Quoten und deren entsprechenden Divisors teilen.

108 % 60 = 48 (i.E 1 R 48)
60 % 48 = 12 (i.E 1 R 48)
48 % 12 = 0 (i.e 4 r 0)

Die Modulabteilung endet, wenn der Rest 0 ist. Der GCD ist der Teil des letzten Schritts. Aus der anderen Methode oben war bereits bekannt, dass der größte gemeinsame Divisor 12 ist.

108 Mod 60 ist nicht Null. Wenn die GCD zwischen 60 und 108 durch Subtraktion gefunden werden müsste, wäre der erste Unterschied für die GCD zwischen 60 und 108 48, und es kann gezeigt werden, dass die GCD zwischen 60 und 108 12 ist. 60 Mod 48 ist nicht Null. Wenn die GCD zwischen 60 und 48 (der vorherige Rest) durch Subtraktion festgestellt werden müsste, wäre der erste Unterschied für die GCD zwischen 60 und 48 12, und es kann gezeigt werden, dass der GCD zwischen 60 und 48 12 ist. 48 Mod 12 ist Null und hat 0 Reste. Wenn die GCD zwischen 48 und 12 durch Subtraktion gefunden werden müsste, wäre der erste Unterschied für die GCD zwischen 48 und 12 36. 36 ist nicht die GCD zwischen 48 und 12; 36 ist jedoch ein Vielfaches von 12, das die GCD ist.

Mithilfe von Mitteln kann der Leser mit den oben genannten Schritten beweisen, dass die GCD für 60 und 48 ebenfalls 12 beträgt. und die GCD für 48 und 12 ist noch 12.

Betrachten Sie ein anderes Beispiel, um die GCD nach Division zu finden. Das Problem ist jetzt: die GCD nach Division für die Zahlen 18 und 30 zu finden.

Lösung:

30 % 18 = 12 (i.e. 1 R 12)
18 % 12 = 6 (i.e. 1 R 6)
12 % 6 = 0 (i.e. 2 r 0)

Die GCD ist 6, gelesen aus der letzten Zeile, wo der Modul 0 ist.

30 Mod 18 ist nicht Null. Wenn die GCD zwischen 30 und 18 durch Subtraktion gefunden werden müsste, wäre der erste Unterschied für die GCD zwischen 30 und 18 12, und es kann gezeigt werden, dass die GCD zwischen 30 und 18 6 beträgt. 18 Mod 12 ist nicht Null. Wenn die GCD zwischen 18 und 12 durch Subtraktion gefunden werden müsste, wäre der erste Unterschied für die GCD zwischen 18 und 12 6, und es kann gezeigt werden, dass die GCD zwischen 18 und 12 6 beträgt. 12 Mod 6 ist Null. Wenn die GCD zwischen 12 und 6 durch Subtraktion gefunden werden müsste, wäre der erste Unterschied für die GCD zwischen 12 und 6 6, und es kann gezeigt werden, dass die GCD zwischen 12 und 6 6 beträgt. 6 ist auch ein Vielfaches von 6 selbst, das die GCD ist.

Mithilfe von Mitteln kann der Leser mit den oben genannten Schritten beweisen, die angesichts der Tatsache, dass die GCD für 30 und 18 6 ist, die GCD für 18 und 12 auch 6 ist; und die GCD für 12 und 6 ist noch 6.

Betrachten Sie nun die GCD, die von 1 und 5 von Division erhalten wurde:

5 % 1 = 0 (i.e. 5 r 0)

Hier gibt es nur einen Schritt (eine Zeile). Um diesen Abschnitt zu beenden, beachten Sie, dass der Divisor in der letzten Zeile, wenn sie nach der Division nach GCD gesucht haben, die GCD ist.

Beachten Sie auch, dass:

GCD (A, B) = GCD (B, R)

wobei „A“ und „B“ zwei verschiedene ganze Zahlen sind und „R“ der Rest der Trennung zwischen A und „B."B" kann größer sein als "A" oder "A" kann größer sein als B. Dies bedeutet, dass der größte gemeinsame Divisor zwischen den beiden Zahlen der größte gemeinsame Divisor zwischen dem Divisor und dem Rest ist der größte gemeinsame Divisor und den Rest, wenn der Rest einer Abteilung nicht Null ist, der größte gemeinsame Divisor ist. Der Beweis für diese Aussage wurde oben dargestellt.

Dies kann direkt mit der Modulo -Division untergehen, wie oben erlebt, bis der Rest Null ist. Wenn der Rest Null ist, gilt diese sich wiederholende Regel nicht. Streng genommen spielt es in der Modulabteilung keine Rolle, ob „A“ größer ist als B oder B größer als „A“; Der Rest ist die gleiche positive Ganzzahl.

Codierung von GCD nach Division

Wenn der größte gemeinsame Teil der Trennung zwischen 60 und 108 mathematisch erforderlich ist, dann wären die Schritte

108 % 60 = 48 (i.E 1 R 48)
60 % 48 = 12 (i.E 1 R 48)
48 % 12 = 0 (i.e 4 r 0)

Beachten Sie, dass es die größere Zahl ist, die die kleinere Zahl dividiert. Die Java -Klasse und -Methode, um diese Abteilung zu tun, lautet:

Klasse GCDD
int gcdd (int a, int b)
if (a % b == 0)
Rückkehr B;
Return GCDD (b, A % b);

Die erste Aussage in der Methode berücksichtigt den letzten mathematischen Schritt. Die zweite Aussage führt die Modulo -Division durch. Beide Aussagen rufen die Methode rekursiv auf. Die zeitliche Komplexität für GCD nach Division ist O (log (a + b)). Eine gute Hauptklasse und die Hauptmethode für diesen Code sind:

Hauptklasse Haupt
public static void main (String args [])
Gcdd obj = new gcdd ();
int ret = obj.GCDD (108, 60);
System.aus.println (ret);

Die Ausgabe ist 12.

Abschluss

Der größte gemeinsame Divisor kann erhalten werden, indem zuerst die kleinere Zahl von der größeren Zahl subtrahiert und dann den MINUEND weiterhin von der Differenz oder Differenz zum Minuend abgezogen wird, je nachdem, welche Zahl größer ist.

Der größte gemeinsame Divisor kann auch erhalten werden, indem zuerst die größere Zahl durch die kleinere Zahl unter Verwendung der Modul -Abteilung geteilt wird. und dann weiterhin den Rest durch den Divisor oder den Divisor durch den Rest aufzuteilen, je nachdem, welcher, was einer größer ist, immer noch von der Modul -Division. Streng genommen spielt es in der Modulabteilung keine Rolle, ob „A“ größer ist als B oder B größer als „A“; Der Rest ist die gleiche positive Ganzzahl.

Dies geschieht programmatisch rekursiv.