Bitte um Hilfe (Euklidischer Algorithmus)

Alt 20.11.2008, 15:53   # 1
shader
 
Benutzerbild von shader
 
Registriert seit: 26.11.2007
Ort: Halle S.
Beiträge: 1.176
Ein wunderschönes Hallo.

Ich weiß nach der Schule hat man kein Bock mehr auf Mathe. Mal zu meinem Problem, befassen uns grad mit Formeln in Programmieren. Und da hat der Lehrer gesagt, wer den oben genannten Algorithmus programmiert bekommt ne 1. Ich will jetzt natürlich nich einen von euch den Code, sondern nur eine allgemeine Formel des Algorithmuses. Wer kann mir helfen, finde nischt richtiges.


Vielen lieben Dank.
  Mit Zitat antworten
Alt 20.11.2008, 15:56   # 2
abduladarula
 
Benutzerbild von abduladarula
 
Registriert seit: 14.02.2008
Ort: Harem ;)
Beiträge: 904
vllt hilft dir das weiter:

http://de.wikipedia.org/wiki/Euklidischer_Algorithmus
  Mit Zitat antworten
Alt 20.11.2008, 16:00   # 3
RealMario_MayhemFan
Review-Redakteur
 
Benutzerbild von RealMario_MayhemFan
 
Registriert seit: 21.05.2008
Ort: Wien
Beiträge: 4.039
was willst du eigentlich genau? ne erklärung, was das ding macht oder wie dus programmierst? allgemeine formeln und pseudocode findest doch überall im netz?
  Mit Zitat antworten
Alt 20.11.2008, 16:01   # 4
Der_Assissane
 
Benutzerbild von Der_Assissane
 
Registriert seit: 06.02.2008
Ort: München
Beiträge: 859
hab mal bissl gesucht vllt hilfts dir ja weiter, kp obs des richtige is

http://www.linux-related.de/index.ht...alg_euklid.htm
http://www.qsl.net/dg1xpz/programm/tp/euklid.html
http://board.raidrush.ws/archive/t-268584.html
  Mit Zitat antworten
Alt 20.11.2008, 16:03   # 5
shader
Threadstarter
 
Benutzerbild von shader
 
Registriert seit: 26.11.2007
Ort: Halle S.
Beiträge: 1.176
Zitat:
was willst du eigentlich genau? ne erklärung, was das ding macht oder wie dus programmierst? allgemeine formeln und pseudocode findest doch überall im netz?
Ne einfach nur die Formel, reicht mir.


Den Link von wikipedi hab ich schon gehabt, aber irgendwie is mir nicht ersichtlich wie die Formel ist.
  Mit Zitat antworten
Alt 20.11.2008, 16:16   # 6
RealMario_MayhemFan
Review-Redakteur
 
Benutzerbild von RealMario_MayhemFan
 
Registriert seit: 21.05.2008
Ort: Wien
Beiträge: 4.039
Zitat:
Zitat von shader Beitrag anzeigen
Ne einfach nur die Formel, reicht mir.


Den Link von wikipedi hab ich schon gehabt, aber irgendwie is mir nicht ersichtlich wie die Formel ist.
schau dir mal abduladarulas (wahnsinnsname!!) wiki-link an - unter pseudocode

du hast da zwei zahlen, und willst den größten gemeinsamen teiler
nehmen wir einfach mal 20 und 80 als beispiel

wiki schreibts so:
Zitat:
EUCLID_OLD(a,b)
1 wenn a = 0
2 dann return b
3 sonst solange b ≠ 0
4 wenn a > b
5 dann a a6465c0244621c63e7e1e96eb55aad7a a - b
6 sonst b a6465c0244621c63e7e1e96eb55aad7a b - a
7 return a
bedeutet also:
a=80
b=20

du ziehst von der größeren zahl so lange die kleinere ab, bis die größere zahl 0 WÄRE
das, was vor diesem endergebnis (also null) rauskommt, ist dann dein teiler

also
80-20=60
60-20=40
40-20=20 (20=ergebnis)
20-20=0 (0=abbruch)

hab jetzt nicht den ganzen wiki-link gelesen, aber irgendwo brauchst du eben ne abfrage, ob die größere zahl eh ein ganzes vielfaches der kleineren ist, sonst wirst nie auf null kommen. du könntest auch die abbruchbedingungen von "gleich null" auf "kleiner gleich null" setzen, dann umgehst du das problem. ist aber zumindest von diesem beispiel ne abweichung
__________________
enemy, enemy, enemy... ene-me... inner...me... inner me. enemy.

PS3-Spot Username/PSN-IDs
  Mit Zitat antworten
Alt 20.11.2008, 16:21   # 7
shader
Threadstarter
 
Benutzerbild von shader
 
Registriert seit: 26.11.2007
Ort: Halle S.
Beiträge: 1.176
Also wäre das hier die dazugehörige Formel,

ggT(a, b) = ggT(r0, r1) = ggT(r1, r2) = . . . = ggT(rn, 0) = rn.
  Mit Zitat antworten
Alt 20.11.2008, 16:24   # 8
shader
Threadstarter
 
Benutzerbild von shader
 
Registriert seit: 26.11.2007
Ort: Halle S.
Beiträge: 1.176
Also den Code hab ich ja schon Fertig, hab ich anhand von wiki schnell erstellt. Es war nur das Problem, das ich ne Formel brauch.
  Mit Zitat antworten
Alt 20.11.2008, 16:33   # 9
Atombender
 
Registriert seit: 26.01.2008
Beiträge: 200
Ich glaube Du hast ein grundlegendes Verständnisproblem was Algorithmen betrifft. Algorithmen lassen sich in den seltensten Fällen auf eine geschlossene mathematische Formel reduzieren.
  Mit Zitat antworten
Alt 20.11.2008, 16:41   # 10
RealMario_MayhemFan
Review-Redakteur
 
Benutzerbild von RealMario_MayhemFan
 
Registriert seit: 21.05.2008
Ort: Wien
Beiträge: 4.039
ich seh mich jetzt gar nicht mehr raus.

du sollst es programmieren, den code hast fertig - wofür brauchst die genaue formel?
Zitat:
Zitat von shader Beitrag anzeigen
Also wäre das hier die dazugehörige Formel,

ggT(a, b) = ggT(r0, r1) = ggT(r1, r2) = . . . = ggT(rn, 0) = rn.
das sind nur die zwischenschritte. ggT ist ne funktion, und für die funktion willst ne formel

und die wär
Zitat:
3d85d6a7225349baaf75e0e51fdb6934
wobei rechts deine abbruchbedingung ist. wird r(i+1) kleiner oder gleich null, ist das nicht mehr dein ergebnis, sondern das r(i+1), was du zuerst rausbekommen hast (also dein r(i))
__________________
enemy, enemy, enemy... ene-me... inner...me... inner me. enemy.

PS3-Spot Username/PSN-IDs
  Mit Zitat antworten
Alt 20.11.2008, 16:52   # 11
shader
Threadstarter
 
Benutzerbild von shader
 
Registriert seit: 26.11.2007
Ort: Halle S.
Beiträge: 1.176
Zitat:
Ich glaube Du hast ein grundlegendes Verständnisproblem was Algorithmen betrifft. Algorithmen lassen sich in den seltensten Fällen auf eine geschlossene mathematische Formel reduzieren.
Ich wollt einfach ne Definition, wie der Algo arbeitet bzw. angewendet werden kann.


Zitat:
du sollst es programmieren, den code hast fertig - wofür brauchst die genaue formel?
Zur Darstellung, sodass ich das auch meinen Mitschülern erklären oder erläutern kann.
Zitat:
3d85d6a7225349baaf75e0e51fdb6934
Genau das suche ich doch...
vielen Dank. Ps3Spot hat mich mal wieder glücklich gemacht
  Mit Zitat antworten
Alt 20.11.2008, 16:54   # 12
RealMario_MayhemFan
Review-Redakteur
 
Benutzerbild von RealMario_MayhemFan
 
Registriert seit: 21.05.2008
Ort: Wien
Beiträge: 4.039
hast die komplette antwort auf deine fragen in abduladarulas (hrhr) post gehabt....

abdula, komm, im chor:


Wir sind immer für Sie da,

Ihre better-life GmbH
  Mit Zitat antworten

Antwort
Themen-Optionen



Alle Zeitangaben in WEZ +2. Es ist jetzt 11:20 Uhr.