# finite fields

Published articles for finite fields.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## A parlor trick for SET

DevFeed: [A parlor trick for SET](<https://devfeed.tech/articles/a-parlor-trick-for-set-40420.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2018/03/25/a-parlor-trick-for-set/>)

Published: 2018-03-25T09:51:34Z

Content type: article

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [math](<https://devfeed.tech/topics/math.md>), [color](<https://devfeed.tech/topics/color.md>)

Tags: [color](<https://devfeed.tech/tags/color.md>), [finite-fields](<https://devfeed.tech/tags/finite-fields.md>), [game](<https://devfeed.tech/tags/game.md>), [invariant](<https://devfeed.tech/tags/invariant.md>), [linear-algebra](<https://devfeed.tech/tags/linear-algebra.md>), [math](<https://devfeed.tech/tags/math.md>), [mathematics](<https://devfeed.tech/tags/mathematics.md>), [set](<https://devfeed.tech/tags/set.md>), [technical](<https://devfeed.tech/tags/technical.md>)

### AI overview

This mathematical article presents a parlor trick for the card game SET. By modeling cards as vectors in the finite vector space F₃⁴, it explains why the remaining visible board uniquely determines the final undealt card when all previously claimed sets were valid.

### Source excerpt

Tai-Danae Bradley is one of the hosts of PBS Infinite Series, a delightful series of vignettes into fun parts of math. The video below is about the same of SET, a favorite among mathematicians. Specifically, Tai-Danae explains how SET cards lie in (using more technical jargon) a vector space over a finite field, and that valid sets correspond to lines. If you don't immediately know how this would work, watch the video.

## The Welch-Berlekamp Algorithm for Correcting Errors in Data

DevFeed: [The Welch-Berlekamp Algorithm for Correcting Errors in Data](<https://devfeed.tech/articles/the-welch-berlekamp-algorithm-for-correcting-errors-in-data-40387.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2015/09/07/welch-berlekamp/>)

Published: 2015-09-07T11:02:00Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Algorithm](<https://devfeed.tech/topics/algorithm.md>), [Code](<https://devfeed.tech/topics/code.md>), [data](<https://devfeed.tech/topics/data.md>)

Tags: [berlekamp-welsh](<https://devfeed.tech/tags/berlekamp-welsh.md>), [code](<https://devfeed.tech/tags/code.md>), [error-correcting-codes](<https://devfeed.tech/tags/error-correcting-codes.md>), [error-correction](<https://devfeed.tech/tags/error-correction.md>), [finite-fields](<https://devfeed.tech/tags/finite-fields.md>), [graphics](<https://devfeed.tech/tags/graphics.md>), [image-analysis](<https://devfeed.tech/tags/image-analysis.md>), [mathematics](<https://devfeed.tech/tags/mathematics.md>), [polynomial-interpolation](<https://devfeed.tech/tags/polynomial-interpolation.md>), [polynomials](<https://devfeed.tech/tags/polynomials.md>), [programming](<https://devfeed.tech/tags/programming.md>), [python](<https://devfeed.tech/tags/python.md>), [reed-solomon-codes](<https://devfeed.tech/tags/reed-solomon-codes.md>), [resilience](<https://devfeed.tech/tags/resilience.md>)

### AI overview

This tutorial explains the intuition behind Reed-Solomon error-correcting codes and implements them using polynomial-based encoding. It describes how adding redundant points can provide resilience to corrupted data while limiting the extra information required.

### Source excerpt

In this post we'll implement Reed-Solomon error-correcting codes and use them to play with codes. In our last post we defined Reed-Solomon codes rigorously, but in this post we'll focus on intuition and code. As usual the code and data used in this post is available on this blog's Github page. The main intuition behind Reed-Solomon codes (and basically all the historically major codes) is Error correction is about adding redundancy, and polynomials are a really efficient way to do that.

## Hamming's Code

DevFeed: [Hamming's Code](<https://devfeed.tech/articles/hamming-s-code-40378.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2015/03/02/hammings-code/>)

Published: 2015-03-02T09:00:00Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Code](<https://devfeed.tech/topics/code.md>), [Encoding](<https://devfeed.tech/topics/encoding.md>), [digital](<https://devfeed.tech/topics/digital.md>)

Tags: [coding-theory](<https://devfeed.tech/tags/coding-theory.md>), [compression](<https://devfeed.tech/tags/compression.md>), [computing](<https://devfeed.tech/tags/computing.md>), [encoding](<https://devfeed.tech/tags/encoding.md>), [error](<https://devfeed.tech/tags/error.md>), [errors](<https://devfeed.tech/tags/errors.md>), [finite-fields](<https://devfeed.tech/tags/finite-fields.md>), [hamming](<https://devfeed.tech/tags/hamming.md>), [hamming-code](<https://devfeed.tech/tags/hamming-code.md>), [hypercube](<https://devfeed.tech/tags/hypercube.md>), [information-theory](<https://devfeed.tech/tags/information-theory.md>), [linear-algebra](<https://devfeed.tech/tags/linear-algebra.md>), [linear-codes](<https://devfeed.tech/tags/linear-codes.md>), [np-hard](<https://devfeed.tech/tags/np-hard.md>), [reed-solomon-codes](<https://devfeed.tech/tags/reed-solomon-codes.md>), [solved](<https://devfeed.tech/tags/solved.md>), [transmission](<https://devfeed.tech/tags/transmission.md>)

### AI overview

This tutorial introduces Hamming codes as efficiently computable encoding schemes for detecting and correcting errors caused by noise during digital transmission. It defines a code as a subset of binary strings and relates codewords to an injective encoding function.

### Source excerpt

Or how to detect and correct errors Last time we made a quick tour through the main theorems of Claude Shannon, which essentially solved the following two problems about communicating over a digital channel. What is the best encoding for information when you are guaranteed that your communication channel is error free? Are there any encoding schemes that can recover from random noise introduced during transmission? The answers to these questions were purely mathematical theorems, of course.

## Connecting Elliptic Curves with Finite Fields

DevFeed: [Connecting Elliptic Curves with Finite Fields](<https://devfeed.tech/articles/connecting-elliptic-curves-with-finite-fields-40352.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2014/03/19/connecting-elliptic-curves-with-finite-fields-a-reprise/>)

Published: 2014-03-19T10:00:05Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Mathematics](<https://devfeed.tech/topics/mathematics.md>), [Algorithm](<https://devfeed.tech/topics/algorithm.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [arithmetic](<https://devfeed.tech/tags/arithmetic.md>), [code](<https://devfeed.tech/tags/code.md>), [elliptic-curves](<https://devfeed.tech/tags/elliptic-curves.md>), [fields](<https://devfeed.tech/tags/fields.md>), [finite-fields](<https://devfeed.tech/tags/finite-fields.md>), [mathematics](<https://devfeed.tech/tags/mathematics.md>)

### AI overview

A tutorial connecting elliptic-curve arithmetic over rational numbers with finite-field arithmetic. It combines previously developed programs and discusses the mathematical background, point addition, finite-field representations, and subtle limitations when applying the code across finite fields.

### Source excerpt

So here we are. We've studied the general properties of elliptic curves, written a program for elliptic curve arithmetic over the rational numbers, and taken a long detour to get some familiarity with finite fields (the mathematical background and a program that implements arbitrary finite field arithmetic). And now we want to get back on track and hook our elliptic curve program up with our finite field program to make everything work.

## Programming with Finite Fields

DevFeed: [Programming with Finite Fields](<https://devfeed.tech/articles/programming-with-finite-fields-40350.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2014/03/13/programming-with-finite-fields/>)

Published: 2014-03-13T10:00:11Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Programming](<https://devfeed.tech/topics/programming.md>), [math](<https://devfeed.tech/topics/math.md>), [Python](<https://devfeed.tech/topics/python.md>), [Code](<https://devfeed.tech/topics/code.md>), [Programming language](<https://devfeed.tech/topics/programming-language.md>)

Tags: [algorithms](<https://devfeed.tech/tags/algorithms.md>), [classes](<https://devfeed.tech/tags/classes.md>), [code](<https://devfeed.tech/tags/code.md>), [decorators](<https://devfeed.tech/tags/decorators.md>), [division-algorithm](<https://devfeed.tech/tags/division-algorithm.md>), [elliptic-curves](<https://devfeed.tech/tags/elliptic-curves.md>), [euclidean-algorithm](<https://devfeed.tech/tags/euclidean-algorithm.md>), [euclidean-domain](<https://devfeed.tech/tags/euclidean-domain.md>), [factoring](<https://devfeed.tech/tags/factoring.md>), [field-characteristic](<https://devfeed.tech/tags/field-characteristic.md>), [finite-fields](<https://devfeed.tech/tags/finite-fields.md>), [gcd](<https://devfeed.tech/tags/gcd.md>), [math](<https://devfeed.tech/tags/math.md>), [operator-overloading](<https://devfeed.tech/tags/operator-overloading.md>), [polynomial-ring](<https://devfeed.tech/tags/polynomial-ring.md>), [programming](<https://devfeed.tech/tags/programming.md>), [programming-language](<https://devfeed.tech/tags/programming-language.md>), [python](<https://devfeed.tech/tags/python.md>), [randomized-algorithm](<https://devfeed.tech/tags/randomized-algorithm.md>), [typecasting](<https://devfeed.tech/tags/typecasting.md>)

### AI overview

This tutorial explains how to implement number types in Python for arithmetic over finite fields. It introduces integers modulo a prime as a finite field and lays groundwork for later elliptic-curve arithmetic.

### Source excerpt

Back when I was first exposed to programming language design, I decided it would be really cool if there were a language that let you define your own number types and then do all your programming within those number types. And since I get excited about math, I think of really exotic number types (Boolean rings, Gaussian integers, Octonions, oh my!). I imagined it would be a language feature, so I could do something like this:

## (Finite) Fields -- A Primer

DevFeed: [(Finite) Fields -- A Primer](<https://devfeed.tech/articles/finite-fields-a-primer-40348.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2014/02/26/finite-fields-a-primer/>)

Published: 2014-02-26T10:00:01Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Mathematics](<https://devfeed.tech/topics/mathematics.md>), [Math and Logic](<https://devfeed.tech/topics/math-and-logic.md>)

Tags: [complex-numbers](<https://devfeed.tech/tags/complex-numbers.md>), [cryptography](<https://devfeed.tech/tags/cryptography.md>), [euclidean-domains](<https://devfeed.tech/tags/euclidean-domains.md>), [field](<https://devfeed.tech/tags/field.md>), [field-characteristic](<https://devfeed.tech/tags/field-characteristic.md>), [finite-fields](<https://devfeed.tech/tags/finite-fields.md>), [groups](<https://devfeed.tech/tags/groups.md>), [ideals](<https://devfeed.tech/tags/ideals.md>), [mathematics](<https://devfeed.tech/tags/mathematics.md>), [monoids](<https://devfeed.tech/tags/monoids.md>), [operations](<https://devfeed.tech/tags/operations.md>), [polynomial-ring](<https://devfeed.tech/tags/polynomial-ring.md>), [vector-spaces](<https://devfeed.tech/tags/vector-spaces.md>)

### AI overview

This primer introduces fields as commutative rings with 0 and 1 in which every nonzero element has a multiplicative inverse. It defines the field axioms, places fields within related algebraic structures, and raises the question of finite fields.

### Source excerpt

So far on this blog we've given some introductory notes on a few kinds of algebraic structures in mathematics (most notably groups and rings, but also monoids). Fields are the next natural step in the progression. If the reader is comfortable with rings, then a field is extremely simple to describe: they're just commutative rings with 0 and 1, where every nonzero element has a multiplicative inverse. We'll give a list of all of the properties that go into this "simple" definition in a moment, but an even more simple way to describe a field is as a place where "arithmetic makes sense.

## Sums of k Powers

DevFeed: [Sums of k Powers](<https://devfeed.tech/articles/sums-of-k-powers-40216.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2011/07/01/sums-of-k-powers/>)

Published: 2011-07-01T12:52:29Z

Content type: article

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [polynomials](<https://devfeed.tech/topics/polynomials.md>), [context](<https://devfeed.tech/topics/context.md>)

Tags: [complex-numbers](<https://devfeed.tech/tags/complex-numbers.md>), [factoring](<https://devfeed.tech/tags/factoring.md>), [finite-fields](<https://devfeed.tech/tags/finite-fields.md>), [induction](<https://devfeed.tech/tags/induction.md>), [polynomial-ring](<https://devfeed.tech/tags/polynomial-ring.md>), [polynomials](<https://devfeed.tech/tags/polynomials.md>)

### AI overview

The article proves the geometric-series identity for sums of powers using base-k notation, polynomial factorization, and mathematical induction. It also explains extensions of the identity to fields such as the complex numbers and finite fields.

### Source excerpt

Problem: Prove that for all $ n,k \in \mathbb{N}, k > 1$, we have $$\sum \limits_{i=0}^{n} k^i = \frac{k^{n+1}-1}{k-1}$$ Solution: Representing the numbers in base $ k$, we have that each term of the sum is all 0's except for a 1 in the $ i$th place. Hence, the sum of all terms is the $ n$-digit number comprised of all 1's. Multiplying by $ k-1$ gives us the $ n$-digit number where every digit is $ k-1$.