Diskussion:Russische Bauernmultiplikation

Letzter Kommentar: vor 1 Jahr von 77.6.56.38 in Abschnitt Papyrus Rhind

Tietel des Artikels Bearbeiten

Ich denke der Artikel sollte in Verdopplungs-Halbierungs Methode umbenannt werden. 1. ist dieser Begiff wertefrei. 2. wird er auch in der Literatur verwendet u.a. in: Gorski, Hans-Joachim: Leitfaden Arithmetik, Vieweg & Sohn Verlag Wiesbaden 2004.

Des Weiteren wird im Artikel behauptet, dass die Methode in Russland bis in die Neuzeit verwednet wird. Hierfür sollte eine Quelle geannt werden. Andernfalls bin ich dafür diese Bemerkung zu entfernen. (nicht signierter Beitrag von M.didaktik (Diskussion | Beiträge) 16:24, 21. Jan. 2011 (CET)) Beantworten

Python statt Pseudocode Bearbeiten

Ich habe den Pythoncode erneut eingefügt. Das Argument "zu wenig bekannt" überzeugt mich nicht. Dann wird es vielleicht durch solche Beispiele bekannter. Meiner Meinung nach kann jeder, der auch nur eine einzige Programmiersprache beherrscht, diesen Code sofort verstehen und in seine Lieblingssprache umsetzen (wer keine Programmiersprache beherrscht, versteht auch keinen Pseudocode). Er enthält an zwei Stellen evtl. notwendige Kommentare (Modulo und ganzzahlige Division). Darüber hinaus ist in der Pythonversion klarer, was Übergabeparameter und was Rückgabewert sein soll, was man beim Pseudocode aus den Namen der Variablen raten muss. Der Unterschied zwischen Zuweisung (=) und Vergleich (==) ist deutlicher. Die Blockung ist durch Einrückung klarer. Die Variable Ergebnis sollte mit 0 initialisiert sein. Python wird oft zu Recht als "Pseudocode that runs" beschrieben. --Rat 1. Jul 2005 22:04 (CEST)


Hallo Rat,

kurz zur Erklärung:

Punkt 1: Es ist wohl nicht Aufgabe der Wikipedia, eine Programmiersprache die (zumindest gegenwärtig) eher eine Randerscheinung ist, bekannter zu machen, sondern es geht darum Inhalte (hier die Bauernmultiplikation) verständlicher zu machen. An BASIC und Pascal werden sich selbst Nichtprogrammierer noch erinnern, weil es mal in der schule vorkam und nicht allzuweit vom mathematischen Formalismus entfernt ist.

Punkt 2: Das Fragment soll ausdrücklich nicht den vollständigen Code darstellen, denn es gibt hier in der Wikipedia Beispiele (z.B. Polynomdivision), bei denen zwei Rückgabewerte auftreten - wie soll das übersichtlich in einer kompletten Funktion sichtbar gemacht werden? Dann gibt es Beispiele (z.B. Bairstow-Verfahren) bei denen nur der Iterationsalgorithmus gezeigt wird, aber nicht die Abbruchbedingungen oder die Übergabe einer variablen Anzahl von Koeffizienten - das ist unnätig und lenkt vom wesentlichen ab.

Ich möchte Dich daher bitten, den reduzierten, BASIC-ähnlichen Pseudocode wiederherzustellen und Phython evtl. als Link auf Deiner Homepage wiederzugeben. Ralf Pfeifer 1. Jul 2005 22:15 (CEST)

Ich werde deshalb keinen Edit-War beginnen, das ist mir die Sache nicht wert. Wenn du also (im Gegensatz zu mir) der Überzeugung bist, dass dein Basic-ähnlicher Pseudocode lesbarer oder vorteilhafter ist als der (lauffähige) Python-Code, dann mach ein Revert. --Rat 1. Jul 2005 22:30 (CEST)
Ich stimme eher Ralf zu, da wir in der Schule Python benutzen. Nur als Anmerkung.
Ich bin auch für die Verwendung von Python: Erstens ist das Codebeispiel selbst für Programmierneulinge leicht zu lesen, zweitens kann man das Beispiel verstehen, wenn man nur irgendeine Programmiersprache beherrscht. Ich selbst z. B. kann kein Python, jedoch andere Programmiersprachen (Java/PHP) und fühle mich absolut in der Lage, den Pythoncode so anzupassen, dass er auch in meiner Wunschsprache läuft. Ich hätte mich oft über echte Codebeispiele gefreut (die man auch schnell mal testen kann) - und hier ist eins.
Python selbst ist übrigens gar nicht so eine Nischensprache: Riesen wie Google benutzen Python für Ihre Websites, aber über solche Fakten kann sich ja jeder selbst informieren.--MichaelWhi 16:50, 19. Feb 2006 (CET)
Ich konnte den Code lesen, da ich den Algorthmus kannte. Das Problem bei dem Python Code ist, dass das Ende einer Kontrollstruktur nicht gut erkennbar ist. Falls also benötigt, hier eine java/php version - wobei ich nicht weiss wie dort lshift und rshift gemacht werden. -- 80.255.97.36 13:47, 29. Jun. 2007 (CEST)Beantworten
int rusMultiplikation(int a, int b){
   //liefert das Produkt zweier natürlicher Zahlen a und b
   int ergebnis = 0;
   while (a > 0){
       int rest = a % 2;     // Modulo
       if (rest == 1){
          ergebnis = ergebnis + b;
          a = a - 1;
       }
       b = b + b;             // Verdopplung (lshift)
       a = a / 2;            // Halbieren ohne Rest (rshift)
   }
   return ergebnis;
 }

Mathematische Begründung Bearbeiten

Existiert für diese Art der Multiplikation eine mathematisch-wissenschaftliche Begründung (o.ä.)? Wenn ja, sollte sie doch in den Artikel eingearbeitet werden. --Ĝù sprich mit mir! 15:16, 27. Jun 2006 (CEST)

steht im Artikel erledigtErledigt --Fritzbruno (Diskussion) 17:38, 14. Sep. 2013 (CEST)Beantworten

Papyrus Rhind Bearbeiten

Wird im Papyrus Rhind nun die RB oder die Duplation, wie dort behauptet, demonstriert? Das ist schließlich nicht dasselbe, und es ist unwahrscheinlich, daß beide Verfahren im selben Dokument angewendet werden. --77.6.56.38 02:41, 15. Jun. 2022 (CEST)Beantworten