Talk:Euclidean algorithm/Archive 4

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia
Archive 1 Archive 2 Archive 3 Archive 4

Background and Description sections

I'd like to suggest that these sections be very substantially condensed, with redundant and trivial issues removed. I think the visual graphics are already giving most of the explanation, so maybe these can stay. Anyone want to jump in here and take a knife to the thing? Grandma (talk) 22:53, 7 December 2014 (UTC)

I also feel that the "worked example" in this section can be deleted. I removed it, then restored it, thinking that we might discuss. Grandma (talk) 23:18, 7 December 2014 (UTC)

I agree. Moreover these sections are unnecessarily too technical. I have added a lacking content to section "Description". This is together very elementary, and contains the proof of the validity of all variants of the algorithm and the proof of existence of greater common divisors. Clearly, the remainder of the article requires to be edited accordingly, and I intend to do this in may next edits.
For this rewriting, I intend to include pseudo-code in the explicit description of the algorithm (presently wrongly called "Procedure"). In fact, an algorithm requires, as a theorem, to be stated in a self contained way, and the standard way to do that is just pseudo-code. Moreover, a short description through pseudo-code is much easier to understand than a lengthy description with imprecise words. D.Lazard (talk) 11:25, 9 December 2014 (UTC)
Another thing to recognize (perhaps obviously): There is substantial overlap between the tutorial material in this article and that found in Greatest common divisor.Grandma (talk) 14:18, 9 December 2014 (UTC)

Lead material (again)

This version of the lead is not convenient as

  • It does not summarize the content of the article
  • Half of it is about history, and should reduced to a single sentence, keeping the remainder for history section
  • The second paragraph is misplaced in the lead and gives undue weight to a variant that is important only from a historical point of view.
  • The musical application is too minor to appear in the lead, and even in the body (if somebody disagree, I may give arguments against mentioning it)
  • On the contrary, many important applications are lacking

I'll try to improve it, and I have linked to the present version, for the case where some part of the material that I'll remove will be deserve to be reinserted elsewhere. D.Lazard (talk) 16:55, 12 December 2014 (UTC)

Request for comments

A large editing work on this article has been reverted [1] after a discussion in Wikipedia:Featured article review#Euclidean algorithm. The question is: which version should be the basis for further editing work, the reverted one or the present one? In a further post, I will detail the motivations of the editing work that has been reverted. D.Lazard (talk) 09:25, 19 December 2014 (UTC)

Motivation for editing this article

The editing work has been started after the opening of the featured article review and a discussion in Wikipedia talk:WikiProject Mathematics#Euclidean algorithm. In this discussion, most editors agreed that, although FA this article is not a featured article. I have stated some issues that I was seeing in this article:

I oppose to close the FAR. The article is full of unresolved issues. Here are some of the main ones.
  • Before my today edit, the article did not mention one of the most important applications (important, at least, by the computer time devoted to it), the reduction of fractions. I have added it in the lead, but it deserves a section.
  • Section "Bezout's identity" presents a method for computing it. I do not know if it is WP:OR, but I am sure that nobody uses it, as extended Euclidean algorithm is much more efficient and easier to use.
  • In the applications, the distinction is unclear between the applications of Euclidean algorithm and those of extended Euclidean algorithm. Extended Euclidean algorithm is introduced only after using it several times (such as in "Bézout's identity" section).
  • The section on polynomial Euclidean algorithm is very poor (compare with sections "Univariate polynomials with coefficients in a field" and "Pseudo-remainder sequences" of Polynomial greatest common divisor. It is not even said that polynomial Euclidean algorithm is fundamental for testing multiple roots and polynomial factorization. Undue weight is given to Sturm chains, that are not an application of Euclidean algorithm, but a variant of it (this is not said).
  • The section "Generalizations to other mathematical structures" contains a confusing description of Gröbner bases. It says that it is a Generalization of Euclidean algorithm, which is historically wrong, as the connection between them has been discovered 7 years after the introduction of Gröbner bases. The important fact is not even given, namely that the polynomial Euclidean algorithm and Gaussian elimination are two special cases of Gröbner basis computations.
This only some of the many issues of this article. Considering them as minor would give a bad opinion of our community to external people. D.Lazard (talk) 19:17, 7 December 2014 (UTC)

The two latter items were not yet considered when the revert occurred, as they concern sections occurring at the end of the article, and the other sections have many other issues. I list now the main ones:

  • Hatnote: Polynomial Euclidean algorithm, although mentioned, is not the subject of the article. It seems therefore necessary to disambiguate between these two Euclidean algorithms in the hatnote.
  • Lead: see above #Lead material and #Lead material (again)
  • Section "Background": the material in this section is not necessary for the next sections, as its consists in results whose proofs involve Euclidean algorithm. Thus this section is unnecessarily WP:TECHNICAL. I have removed it in my edits, after having moved its content as consequences of Euclidean algorithm. See also #Background and Description sections
  • Section "description": Euclidean division is presented after using it. Except at the end, in a subsection called "Implementations", the section does not contains any formal definition of the algorithm (an algorithm, as a theorem, must be stated independently of the comments about it, and this statement passes generally through pseudo-code.) The description contains a lot of indexes, which make the explanations confusing and WP:TECHNICAL. The proof is old fashioned and unnecessarily long. The description of the algorithm through pseudo-code is called "implementation", which it is not at all.
  • Section "Matrix method": It is not a different algorithm, but a different way to present it. As far as I know, its main usage is for fast GCD algorithms, which, presently are not presented in the article. Thus, in my edits, I have removed it. However this may discussed.
  • Section "Multiplicative inverses and the RSA algorithm". This section begins with off-topic and too technical material. It gives WP:Undue weight to RSA (the https connexion to WP uses at least two protocols involving modular inverses: RSA and ECDH) and unduly low weight to multiplicative inverse.
  • Section "Algorithmic efficiency": This is a WP:OR name for "computational complexity". "Efficiency" has a different meaning and relies to actual implementations. The article does not mention the complexity result which is the most used in recent articles: The best known complexity for GCD computations is O(M(n) log n), where M(n) is the complexity of the multiplication, and the possibility of removing the log factor is an open problem.
  • Section "Stern–Brocot tree": The relation with Euclidean algorithm is unclear in the main article, while the definition and the proof, that Calkin–Wilf tree is a tree, relies immediately to Euclidean allgorithm.
  • Sections "Continued fractions" and "Rational and real numbers": They have the same subject and must be merged (the revert occurred before this edit). These are not applications of Euclidean algorithm, but generalizations.

In almost every section that I have not cited, editing is needed to clarify the relationship with Euclidean algorithm (rather than with GCD) and to remove off-topic unnecessary comments. This is what was tried in the reverted edits. D.Lazard (talk) 11:16, 19 December 2014 (UTC)

  • Comment: (only here for the RFC) I never looked up the Grandma article, because frankly, the situation with the current version involves so many variables. I cannot offhand get a grip on the whole article, but offer the following, FWIW. I wash my hands of most of the purely algorithmic and mathematical aspects, and try to concentrate on aspects that might be expected to impact the readers' interests.
    • The lede as it stands contains valid text that I think could stand a bit of editing of minor priority. However, most of it isn't lede and should immediately be placed into at least one section on its own, called say, Basic concepts and significance. It should start where "The Euclidean algorithm is based... " appears at present. It is not necessary to clutter the lede with a description of the algorithm; the function of a good lede is to enable the reader to decide whether to move on, and in an article of this type the first 50 words or so are plenty, more or less as they stand.
    • Whether to split that introductory Basic concepts and significance section into as many as four sections (say, Description , Origin, Applications and Efficiency, is largely a matter of taste; I would prefer something of the type, but would not insist.
    • Nearly every section in Mathematical applications deals with a topic that has its own main article, and only a few of them mention the main article and some of them could well be pruned, as they contain material that, if it is not already in the main article, could better be presented there.
    • The structure of the article, concerning such items as sequence of topics, really needs careful attention. Perhaps some reconstruction is in order.
    • If those most intimately concerned with the topic feel that some of the topics do not belong in this article but in the respective main articles, then the most practical option would be to create a section called something like "Related topics" that contains a list of annotated links to the main articles such as (hypothetically) "Calkin–Wilf tree relies on Euclidean algorithm for proof of its status" or "Continued fractions amount to a generalisation..." etc
  • That is about as much as I can find to say at present, but if my assistance would be helpful in particular connections, please let me know. JonRichfield (talk) 11:29, 20 December 2014 (UTC)
  • The lead is not just supposed to be a short blurb for readers to determine if they want to read further. It is actually supposed to be a capsule version of the article, defining and giving context to the subject, and summarizing the main points of the article, which seems to be exactly what your proposed first section would do. See WP:LEAD. So for an article of this length, a longish lead is completely appropriate. So I strongly disagree with this proposal to put the lead of the article into a separate section. Sławomir Biały (talk) 12:52, 20 December 2014 (UTC)
@Sławomir Biały that doesn't even begin to make sense. Who says we need a lede at all? You referred me to WP:LEAD; note that its heading stresses: "...Use common sense in applying it; it will have occasional exceptions..." It is quite permissible to have the first section of an article start after the title with no "lede". What you describe is what we call an Introduction and there is no reason to omit labelling it "introduction" so that users know what it is intended function is. Some articles, either incompetently designed, or of trivial length, may have no sections or section headings at all and amount to 100% lede, but those we can ignore here, as I trust you agree. Any of our thousands of pages of drivel on backyard rock bands could open with a lede of arbitrary length, and no one the poorer for it. Conversely, especially for large, technical, or obscure bodies of subject matter, it can be useful for readers who encounter links to unfamiliar terms, to see as a subheading an explanation that fits into a popup when their mouse cursor stops and hovers over a link to that article. Anything that does not fit into such a popup is a liability. Anyone who is equipped to recognise and read the article does not need a lede at all, and certainly would not want to wade through a long one; if he feels a need to read the Introduction, he may happily do so, but he can do that more comfortably if it is labelled "Introduction", rather than not labelled "lede". However a say, ten to one-hundred word subheading, a lede, that makes it comprehensibly plain what the subject is about, without repeating material that is supposed to be dealt with coherently in the body of the text (for example in the Introduction) could very well serve a function for any reader at any level without getting into anyone's way,either wasting much time or causing confusion, and the more compact it is, the better it performs its function. "In mathematics, the Euclidean algorithm is a method for computing the greatest common divisor of a set of numbers. It is named after the ancient Greek mathematician Euclid, whose description is oldest extant mention of the algorithm." would be an adequate lede; everything else; explanations, perspectives, applications, and generalisations would be appropriate only in the introduction or even the body of the article. The reader who wondered what it it was about would immediately say: "Oh, THAT!" and pass on, or "Hmm? How does that work?" and read on. What better service could a lede perform? Anyone editing material at the level of this article should be able to assess such requirements in the light of the recommendation of standard WP guidelines, particularly when they are accompanied by caveats urging common sense.JonRichfield (talk) 19:18, 20 December 2014 (UTC)
Well, Wikipedia articles generally are supposed to have leads, and to be written according to our manual of style. Featured articles, in particular, should to adhere to these guidelines (although some small leeway is of course admitted where appropriate). I should think at the very least that the first paragraphs of WP:LEAD are, in broad terms, rather clear on what our mandate should be. The lead needs to summarize all of the aspects of the article. It is not just a first-reaction "Oh that". This is the function of the first few sentences, as discussed in the WP:BEGIN of the guideline on article leads. Sławomir Biały (talk) 02:25, 21 December 2014 (UTC)
Even if we were to take that assertion literally and as an imperative without exception or appeal, which is not the case, please observe that "In mathematics, the Euclidean algorithm is a method for computing the greatest common divisor of a set of numbers. It is named after the ancient Greek mathematician Euclid, whose description is oldest extant mention of the algorithm." is indeed a lede that summarises the article and lends it perspective. It does not describe the algorithm nor discuss its generalisations, because those are details, neither essential to the browser nor the searcher. Furthermore, it is a lede that is likely to be read and understood by every reader who wants to know what the article is about, and without wasting time or bandwidth. Stuffing the lede with the introduction to a long and complex article serves nobody's purposes. It wastes the time of the uninterested, and does no favour to the interested, who immediately can tell from a compact lede of a short, definitive sentence or two, whether to bother with the introduction or not. Why should a lede be cumbered with useless repetition of material out of context that appears in proper context inside the article? JonRichfield (talk) 06:44, 21 December 2014 (UTC)
But no, it clearly doesn't summarize the article. There are significant aspects of the article that are obviously not mentioned in what you have proposed as the "lead". Also, it fails to define the GCD (MOS:INTRO). Sławomir Biały (talk) 12:52, 21 December 2014 (UTC)
  • Support broadly supportive of the revert to the pre-grandma version. The lead benefits from a the expanded explanation of the GCD which helps its accessibility. There were some rather grand claims in the Grandma version lead. Hopefully it won't be to hand to reinsert Lazard's changes. I have a slight preference for saying what the GCD is in the very first line, as in G's version. It so easy to loose the attention of mathematics beginners that I don't like them to get to the end of the first paragraph with some things still unknown.--Salix alba (talk): 12:09, 20 December 2014 (UTC)
  • Support reversion to pre-grandma and piecemeal examination of Lazard's changes to reinstate those of his improvements that are still relevant. The grandma lead is fluffy name-dropping without much content, full of inanity like "GCD is useful in CS because it's used as an introductory example". I much prefer a lead that actually attempts to describe the algorithm in simplified terms and describe rather than merely naming the more important of the applications. —David Eppstein (talk) 07:05, 21 December 2014 (UTC)

Discussion

  • Comment. I cannot speak for the individual edits. Quite a lot went on between the original FA article (which was substantially similar to the article that found its way to FAR), and the latest non-reverted revision of the article. But the net effect of those edits was a substantially poorer lead and introductory sections. The lead conveyed almost no information, failed to summarize the article except in a very insubstantial way, with much of it written in poor English besides. The old background section, which contained a clear and well-written discussion of the GCD, was replaced by mathematicism that did a very poor job of explaining things.
Let us not forget how we arrived at this situation. Largely because of the comments at the FAR, Grandma (who I think was actually just a troll stalking me) made a series of ill-advised edits to the lead and earlier sections of the article. (She herself uses the metaphor of a hatchet or knife somewhere in this regard). But no clear reason was ever given for these massive article changes, that represented yet a further departure from the style of the original featured article, which was already the result of substantial community effort and review.
It is also almost certain that Professor Lazard made beneficial edits along the way, while doing his best to mitigate the damage caused by Grandma, and I apologize for any undue conflict. But, on balance, the extent of the negative changes was too great to attempt to disentangle the good from the bad. I think Lazard's suggestions at this point pertain mostly to technical matters latter in the article, and I have no objection to (re-)instituting those changes, provided that meets with everyone's approval. Sławomir Biały (talk) 18:26, 19 December 2014 (UTC)
  • Comment in response to a request on my talk page. I have now seen functional versions of both lines of editing. I repeat that I am not a mathematician and it seems to me that at least some of the correspondents here are. Most of the material under discussion does not require advanced mathematical education to appreciate, but OTOH, it is not easy for a non-mathematician to achieve a functional perspective of material with so many ramifications of significance. Otherwise I would happily volunteer to climb in and do some spadework on what looks like some very competent material. As things stand however, I am only willing to participate in roles that the mathematicians here present would accept, such as editing text and sequence of topics for clarity and readability. That would require firstly that other editors would cooperate; I certainly don't have time to spare for wikilawyering or trolling. If it suits enough of the participants I could say, have a go at the first few sections and see whether I succeed in producing something that everyone else would either accept as produced, or routinely edit. If desired, I could do it in the Talk page instead of in the live article. Could the rest of the participants please comment before I waste my time and theirs. JonRichfield (talk) 19:48, 20 December 2014 (UTC)
  • Question. Although I like the pre-grandma version better (see above) I just found and fixed a serious mathematical error in its lead. It describes an algorithm that repeatedly replaces one number by the *difference* with the other number, and then later says that Lamé proved that this algorithm is efficient. It is not efficient. The efficient one (which we describe in the text of the article) repeatedly replaces one number by its *remainder* when divided by the other number. Note that this error was in our FA-labeled article for years, fixed in Feb. 2011, and reintroduced by Slawekb in this diff labeled "Put back FAC lead" — so much for the quality of a FA review. Anyway, my question is, should we describe both of these variants in the lead, as we do now? I suspect the subtractive one is Euclid's (I am home now and my copies of Euclid are in the office so I can't easily check) so if we replace it by the remainder variant we would need to be more careful when we say that this algorithm was described by Euclid. I am leaning towards the way I've currently left it (as it was for most of 2011–2014): describing the subtractive algorithm, but then when we talk about efficiency saying it can be sped up by using remainders. One reason is that I think subtraction is easier for novices to understand. However, the rest of the article should be checked to make sure it is in harmony with the lead, whichever way we decide. —David Eppstein (talk) 07:32, 21 December 2014 (UTC)
You don't need your copies of Euclid in order to check. Look at this. Michael Hardy (talk) 21:20, 21 December 2014 (UTC)
Ok, thanks. The more specific link is [2] and it's definitely the subtraction version. —David Eppstein (talk) 22:18, 21 December 2014 (UTC)
  • Opinion in response to a request on my talk page. There are many differences between the two versions, and I don't know which are the contentious ones. So I will confine my comment to the way the article starts. The "reverted version" says, in its first paragraph, everything that most readers will want to know about the subject, while the "current version" does not. Maproom (talk) 09:48, 24 December 2014 (UTC)
    • All of that information was only a little farther down, in the later paragraphs of the lead, but I moved it earlier per your feedback. —David Eppstein (talk) 19:18, 24 December 2014 (UTC)

Question

Why in the quote by Donald Knuth two "[]"?. Mr. Vladimirovic (talk) 05:16, 8 August 2015 (UTC)

The brackets indicate something phrased differently from what Knuth actually said but added to make the quote make sense. —David Eppstein (talk) 06:06, 8 August 2015 (UTC)
This usage is explained at WP:MOSQUOTE. Sławomir
Biały
12:30, 8 August 2015 (UTC)

Thank you. Mr. Vladimirovic (talk) 05:07, 9 August 2015 (UTC)

Math formatting

I was tempted to undo this recent revert as I think that the {{math}} formatting is an improvement over straight wiki-text both in its appearance and in how well it matches the <math> equations. However, in order to be effective, the formatting needs to be applied consistently throughout the article, and it wasn't even done to all of the formulas within a single section. @Cedar101:: Would you be interested in making the same changes more globally? Or, if others (including 86.187.176.209) object to the math templates, here would be a good place to discuss it. —David Eppstein (talk) 18:42, 5 January 2016 (UTC)

Undo the revert. I support the edit with {{math}} as an improvement even if nothing further is done by Cedar101. It's an edit in the right direction. Glrx (talk) 01:33, 8 January 2016 (UTC)

Alt text

I agree with commenting out the alt text, as it damages the view for users not using a text-reader, and are (with one exception) less understandable than the LaTeX text itself.

In addition, I find no consensus on the talk page for the requirement for the alt text.

I realize the problem for users with text-readers, but damaging the article for others is not the way to solve the problem. "<" math alt= text ">" is not properly implemented on Wikipedia, and should not be used. Yet. In addition, I do not understand most of the alt descriptions. As a mathematician of at least 45 years standing, that suggests a problem with the alt text. I find the LaTex more understandable, and I suspect a text-reader with spoken punctuation would also find the LaTeX more understandable than the alt text given here. — Arthur Rubin (talk) 07:38, 29 August 2014 (UTC)

I disagree.
I do not understand the claim that alt text is not properly implemented on WP. As I understand it, alt text is not a problem for the standard display that WP uses, but it is a problem for those who use MathJax because MathJax messes up. I'm not sure, but I have the impression that MathJax used to handle alt text without trouble but was broken in a new release.
Instead of fixing MathJax (or using other tools), the workaround has been to comment out or even delete the alt text. If alt text broke everything, then I would not have a problem commenting it out or even removing it. That does not seem to be the case here.
I have almost no understanding of WP's legal obligations to accomodate those with disabilities, but I believe that there is such a duty. Deleting existing accomodations for the benefit of able MathJax users would fly in the face of such a duty.
Independently, if the alt descriptions are inadequate, then they should be fixed. My disagreement is not with the adequacy of the alt text. Presumably even text that was an exceptionally good description of the math would confuse MathJax. If the text were perfect, would you still advocate that it be commented out?
Glrx (talk) 17:31, 1 September 2014 (UTC)
@Girx: If it worked properly in MathJax (and it's not correct to say that it was an error in MathJax; it was a change in Wikimedia rendering, probably related to Parsoid, which passes the wrong information to MathJax. It should be fixed sometime, but, considering that math is not yet working properly in Flow, I wouldn't hold my breath), I would be in favor of quoting it in a way that could be easily restored. But
is worse than having no alt tag at all in a reasonable implementation, which would puts the TeX into the alt tag. I don't know if that is done.
As a further aside, I don't know if anyone on the Wikimedia "improvement" team has access to screen readers. You might want to check with them and ask them make sure none of these "improvements" damage screen readers more than they damage the use by visually-oriented users. — Arthur Rubin (talk) 00:07, 4 September 2014 (UTC)
Anyone interested in testing the new Math accessibilty features build into the new Math rendering mode based on this article. See http://mathosphere.wmflabs.org:8080/wiki/Main_Page --Physikerwelt (talk) 08:50, 18 January 2016 (UTC)

The RSA Section is Confused and Confusing

The section "Multiplicative inverses and the RSA algorithm" starts out with a long paragraph defining what a finite field is, but then in the third paragraph admits that RSA does not use finite fields, but claims that it uses rings. Actually, it doesn't really use rings either, it just uses finite abelian groups.

The Extended Euclidean Algorithm is used during RSA key generation to (1) verify that a component (call it e) of one of the keys is a member of the multiplicative group of integers modulo (p-1)·(q-1) where p and q are primes; and to (2) find the inverse of e in that group, which will be a component of the other key. See https://en.wikipedia.org/wiki/RSA_%28cryptosystem%29#Key_generation

LaQuilla (talk) 10:31, 6 December 2014 (UTC)

I agree. This is better explained (in my opinion) in Extended Euclidean algorithm. However the problem addressed here is the problem of "modular multiplicative inverse". This is not just a problem of group theory, as addition is used by the algorithm for computing the inverse.
The section has other issues: modular inverses are computed in many other widely used cryptographic schemes, such as ECDHE, which is used in the secure connexions to Wikipedia. Also RSA is not specifically used in e-commerce, it is used is almost all secure web connections, such as (again) secure connexions to Wikipedia.
Thus the section has not only to be rewritten, but also to be renamed "Modular inverse". D.Lazard (talk) 11:38, 6 December 2014 (UTC)

There is a more straightforward way to describe the calculation of multiplicative inverses in finite fields and the methods extension to rings. LACornell (talk) 15:54, 29 July 2016 (UTC)

Invitation to discourse on alternative formulations of some sections and related algorithms.

I have ways of describing some of the applications here that are different than these relying more heavily and more transparently on abstract algebra. Also I have a factorization method algorithm that has the Euclidean Algorithm as its starting point which I think deserve a page of its own linked to this one. Can anyone speak to these things? LACornell (talk) 15:49, 29 July 2016 (UTC)

Whether something is appropriate for inclusion here depends on whether it is covered by third-party reliable sources, typically peer-reviewed publications from established mathematics journals, or textbooks on the subject published by recognized scientific publishing houses. Generally speaking, we should not include anything that is exclusively self-published or original. The same holds for whether it is appropriate to have a separate article on a topic. Sławomir Biały (talk) 17:15, 29 July 2016 (UTC)

Proof of worst case

Under the subsection "worst case" under the the section "efficiency" an argument is given that the Fibonacci numbers Fk+1 and Fk+2 are the smallest numbers that take k steps. However, the author never defines what it means for a pair to be smallest. Given the argument about bounding the number of steps that follows, it seems that the implicit definition being used is (a, b) is "smaller" than (c, d) if b < d and (presumably) if b = d a < c. However, this makes the induction argument unclear. If we are just trying to get b to be small, how do we know that we can you use the induction hypothesis on the M-1 step where b = q1 r0 + r1. Couldn't we have r0 be bigger than FM, but b be smaller than FM+1? — Preceding unsigned comment added by Narjul (talkcontribs) 16:18, 30 January 2017 (UTC)

"Smallest" has to be taken in its strongest meaning. That is: if the pair a > b requires n steps for the Euclidean algorithm, then we have both aFn+2 and bFn+1. Proof: Let a = bq + r be the first division step. As the pair q > r requires n − 1 steps, the induction hypothesis is bFn + 1 and rFn. Then a = bq + rb + rFn + 1 + Fn = Fn+2, qed. I have edited the article for clarifying this point (and simplifying the proof). D.Lazard (talk) 17:46, 30 January 2017 (UTC)