{
  "aliases": null,
  "backlinks": [
    {
      "field": "defines",
      "target": "HJW1KSQZWA"
    }
  ],
  "body": "\n## Summary\n\nBerlekamp's algorithm factors square-free polynomials over a [[finite field|0ZXZ82FTX2]] by linear algebra.\nIt finds the polynomials $g$ of degree less than $\\deg f$ with $g^q \\equiv g$ modulo $f$.\nThey form a vector space whose dimension is the number of irreducible factors of $f$.\nGreatest common divisors of $f$ with $g - s$ for constants $s$ then split $f$.\nIt is deterministic, and it was the main method of [[factorization over finite fields|XNE7F0BAGE]] until the randomised Cantor–Zassenhaus algorithm of 1981.\n\n## Explanations\n\n### L1 human\n\nThe algorithm turns factoring into solving a system of linear equations over the finite field.\nEach solution $g$ of the system acts like a test that sorts the irreducible factors of $f$ into groups.\nFor example, over $\\F_5$ the polynomial $x^2 + 1$ splits as $(x - 2)(x - 3)$, and the algorithm finds this by computing $\\gcd(x^2 + 1, x - s)$ for $s \\in \\F_5$.\nThe [[definition|HJW1KSQZWA]] gives the steps.\n",
  "commit": "547b6eddb8f2feb8d579f2d633d22a27b7e132fc",
  "front": {
    "kind": "concept",
    "msc": [
      "11T06",
      "11Y16",
      "68W30"
    ],
    "name": "Berlekamp's algorithm",
    "same_as": {
      "wikidata": "Q821001",
      "wikipedia": "Berlekamp's algorithm"
    },
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/Berlekamp%27s_algorithm"
      }
    ],
    "tag": "EM8MFGFAGN"
  },
  "kind": "concept",
  "link": "https://math2.tamnd.com/node/EM8MFGFAGN/",
  "links": null,
  "markdown": "https://math2.tamnd.com/node/EM8MFGFAGN.md",
  "msc": [
    "11T06",
    "11Y16",
    "68W30"
  ],
  "name": "Berlekamp's algorithm",
  "prov": null,
  "role": "",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/EM8/EM8MFGFAGN.md",
  "status": null,
  "tag": "EM8MFGFAGN",
  "uri": "m2://EM8MFGFAGN",
  "url": "https://math2.tamnd.com/wiki/berlekamps-algorithm/",
  "writing": {
    "tag": "EM8MFGFAGN",
    "kind": "concept",
    "level": "W0",
    "next": [
      {
        "what": "an inventory row",
        "note": "the row of the inventory that the node accounts for",
        "have": 0,
        "want": 1
      },
      {
        "what": "a source with a locator",
        "have": 0,
        "want": 1
      }
    ]
  }
}
