Update
This commit is contained in:
parent
4533fde60c
commit
8fbedc9460
39 changed files with 1945 additions and 1823 deletions
|
@ -2,9 +2,11 @@
|
|||
|
||||
WIP kind of
|
||||
|
||||
{ There's most likely a lot of BS, math people pls send me corrections, thank u. ~drummyfish }
|
||||
|
||||
Numbers (from Latin *numerus* coming from a Greek word meaning "to distribute") are one of the most elementary [mathematical](math.md) objects, building stones serving most often as quantitative values (that is: telling count, size, length, order etc.), in higher math also used in much more [abstract](abstraction.md) ways which have only distant relationship to traditional counting. Examples of numbers are minus [one](one.md) half, [zero](zero.md), [pi](pi.md) or [i](i.md). Numbers constitute the basis and core of mathematics and as such they sit almost at the [lowest level](low_level.md) of it, i.e. most other things such as algebra, [functions](function.md) and [equations](equation.md) are built on top of numbers or require numbers to even be examined. In modern mathematics numbers themselves aren't on the absolute bottom of the foundations though, they are themselves built on top of [sets](set.md), as set theory is most commonly used as a basis of whole mathematics, however for many purposes this is just a formalism that's of practical interest only to some mathematicians -- on the other hand numbers just cannot be avoided anywhere, by a mathematician or just a common folk. The word *number* may be the first that comes to our mind when we say *mathematics*. The area of [number theory](number_theory.md) is particularly focused on examining numbers (though it's examining almost exclusively integer numbers because these seem to have the deepest pattern related e.g. to divisibility).
|
||||
|
||||
Let's not confuse numbers with digits or figures (numerals) -- a number is a purely abstract entity while digits serve as symbols for numbers so that we can write them down. One number may be written in many ways, using one of many [numeral systems](numeral_system.md) (Roman numerals, tally marks, Arabic numerals of different [bases](base.md) etc.), for example 4 stands for a number than can also be written as IV, four, 8/2, 16:4, 2^2, 4.00 or 0b100. There are also numbers which cannot exactly be captured within our traditional numeral systems, for some of them we have special symbols -- most famous example is of course [pi](pi.md) whose digits we cannot ever completely write down -- and there are even numbers for which we have no symbols at all, ones that are yet not well researched and are only described by equations to which they are the solution. Sure enough, a number by itself isn't too interesting and probably doesn't even make sense, it's only in context, when it's placed in relationship with other numbers (by ordering them, defining operations and properties based on those operations) that patterns and useful attributes emerge.
|
||||
Let's not [confuse](often_confused.md) numbers with digits or figures (numerals) -- a number is a purely abstract entity while digits serve as symbols for numbers so that we can write them down. One number may be written in many ways, using one of many [numeral systems](numeral_system.md) (Roman numerals, tally marks, Arabic numerals of different [bases](base.md) etc.), for example 4 stands for a number than can also be written as IV, four, 8/2, 16:4, 2^2, 4.00 or 0b100. There are also numbers which cannot exactly be captured within our traditional numeral systems, for some of them we have special symbols -- most famous example is of course [pi](pi.md) whose digits we cannot ever completely write down -- and there are even numbers for which we have no symbols at all, ones that are yet not well researched and are only described by equations to which they are the solution. Sure enough, a number by itself isn't too interesting and probably doesn't even make sense, it's only in context, when it's placed in relationship with other numbers (by ordering them, defining operations and properties based on those operations) that patterns and useful attributes emerge.
|
||||
|
||||
Humans first started to use positive natural numbers, i.e. 1, 2, 3 ..., so as to be able to trade, count enemies, days and so on -- since then they kept expanding the concept of a number with more [abstraction](abstraction.md) as they encountered more complex problems. First extension was to fractions, initially reciprocals of integers (like one half, one third, ...) and then general ones. Around 6th century BC Pythagoras showed that there even exist numbers that cannot be expressed as fractions ([irrational numbers](irrational_number.md), which in the beginning was a controversial discovery), expanding the set of known numbers further. A bit later negative numbers were discovered/invented, likely in China. Adoption of the number [zero](zero.md) also took some time, with it first just having a limited use as a mere placeholder digit. Since 16th century a highly abstract concept of [complex numbers](complex_number.md) started to appear, which was later (19th century) expanded further to [quaternions](quaternion.md). With more advancement in mathematics -- e.g. with the development of set theory -- more and more concepts of new kinds of numbers appeared and still appear to this day. Nowadays we have greatly abstract numbers, ones existing in many dimensions, capable of counting and measuring infinitely large and infinitely small entities, and it seems we still haven't nearly discovered everything there is to know about numbers.
|
||||
|
||||
|
@ -131,6 +133,7 @@ There are different types of numbers, in mathematics we classify them into [sets
|
|||
- **Qp: [p-adic numbers](p_adic_number.md)**: Alternative way of generalizing rational numbers; p-adics are quite mindblowing as they may have infinitely many digits to the left side (for which they are sometimes called *leftist numbers*), there are numbers that are their own squares without either being 1 or 0, they also contain negative numbers and fractions without having to add extra symbols. There are different kinds of p-adic number sets for different *p*s, e.g. 10-adic, 3-adic and so on (prime number *p*s are chosen for good properties). E.g. (10-adic) ...333.33, ...87187, ...11112 etc.
|
||||
- **H: [quaternions](quaternion.md)**: A sum of real number, imaginary number and two other kinds of numbers, forming a number in four dimensional space. E.g. 1 + i + j - k, 50 - 0.6k or 2i + 7j.
|
||||
- **C: [complex](complex_number.md)**: A sum of real and imaginary number, forming a number in two dimensional plane. E.g. 3 + 2i, 0.5 - 13i or 100i.
|
||||
- **complex integer**: Complex numbers with both real and imaginary component being integer. E.g. 13 - 2i, 44i or 0.
|
||||
- **[algebraic](algebraic_number.md)**: Are roots of one variable [polynomials](polynomial.md) with integer coefficients. E.g. 4/3, the [golden ratio](golden_ratio.md) or square root of two.
|
||||
- **[transcendental](transcendental_number.md)**: Aren't algebraic. E.g. [pi](pi.md), [sine](sin.md) of [e](e.md) or two to the power of square root of two.
|
||||
- **[imaginary](imaginary_number.md)**: Have the same properties as real numbers but lie in another dimension, on a line perpendicular to the real number line, going through 0 -- they are connected to real numbers by the fact that imaginary unit ([i](i.md)) squared equals minus one. E.g. 0, 3i or -i.
|
||||
|
@ -149,6 +152,8 @@ There are different types of numbers, in mathematics we classify them into [sets
|
|||
- **N: natural (without zero)**: "Caveman numbers", the kind of numbers people started to use first. E.g. 1, 10 or 945.
|
||||
- **[prime](prime.md)**: Are only divisible by 1 and themselves, excluding 1. E.g. 2, 7 or 809.
|
||||
- **composite**: Aren't primes, excluding 1. For example 4, 22 or 150.
|
||||
- **highly composite**: Composite numbers that have more divisors than any lower number. E.g. 4, 36 or 1260.
|
||||
- **[perfect](perfect_number.md)**: Equal to the sum of its divisors. E.g. 6, 28 or 8128.
|
||||
|
||||
One of the most interesting and mysterious number sets are the [prime numbers](prime.md), in fact many number theorists dedicate their whole careers solely to them. Primes are the kind of thing that's defined very simply but give rise to a whole universe of mysteries and whys, there are patterns that seem impossible to describe, conjectures that look impossible to prove and so on. Another similar type of numbers are the [perfect numbers](perfect_number.md).
|
||||
|
||||
|
@ -164,7 +169,7 @@ TODO: what is the best number? maybe top 10? would 10 be in top 10?
|
|||
|
||||
## Numbers In Programming/Computers
|
||||
|
||||
While mathematicians work mostly with infinite number sets, [programmers](programming.md) have to limit themselves to finite sets of numbers because computers have limited memory and can only store limited number of numeric values. Mathematicians are as precise with numbers as possible as they're interested in structures and patterns that numbers form, programmers just want to use numbers to solve problems, so they mostly use [approximations](approximation.md) -- for example programmers typically approximate real numbers with floating point numbers that are just a subset of rational numbers. This isn't really a problem though, computers can comfortably work with numbers large and precise enough for solving any practical problem -- a slight annoyance is that one has to be careful about such things as [underflows](underflow.md) and [overflows](overflow.md) (i.e. a value wrapping around from lowest to highest value and vice versa), limited precision resulting in error accumulation, unlinearization of linear systems and so on. Programmers also don't care about strictly respecting some properties that certain number sets must mathematically have, for example integers along with addition are mathematically a [group](group.md), however signed integers in [two's complement](twos_complement.md) aren't a group because the lowest value doesn't have an inverse element (e.g. on 8 bits the lowest value is -128 and highest 127, the lowest value is missing its partner). Programmers also allow "special" values to be parts of their number sets, especially e.g. with the common IEEE [floating point](float.md) types we see values like plus/minus [infinity](infinity.md), [negative zero](negative_zero.md) or [NaN](nan.md) ("not a number") which also break some mathematical properties but this really doesn't play much of a role in practical problems. Numbers in computers are represented in [binary](binary.md) and programmers themselves often prefer to write numbers in binary, hexadecimal or octal representation -- they also often meet powers of two rather than powers of ten (for example the data type limits are typically limited by some power of two). Famously programmers start counting from 0 (they go as far as using the term "zeroth") while mathematicians rather tend to start at 1. Just as mathematicians have different sets of numbers, programmers have an analogy in numeric [data types](data_type.md) -- a data type defines a set of values and operations that can be performed with them. The following are some of the common data types and representations of numbers in computers:
|
||||
While mathematicians work mostly with infinite number sets and all kind of "weird" hypothetical numbers like hyperreals and transcendentals, [programmers](programming.md) still mostly work with "normal", practical numbers and have to limit themselves to finite number sets because, of course, computers have limited memory and can only store limited number of numeric values -- computers typically work with [modulo](mod.md) arithmetic with some high power of two modulo, e.g. 2^32 or 2^64, which is a [good enough](good_enough.md) approximation of an infinite number set. Mathematicians are as precise with numbers as possible as they're interested in structures and patterns that numbers form, programmers just want to use numbers to solve problems, so they mostly use [approximations](approximation.md) where they can -- for example programmers normally approximate [real numbers](real_number.md) with [floating point](float.md) numbers that are really just a subset of rational numbers. This isn't really a problem though, computers can comfortably work with numbers large and precise enough for solving any practical problem -- a slight annoyance is that one has to be careful about such things as [underflows](underflow.md) and [overflows](overflow.md) (i.e. a value wrapping around from lowest to highest value and vice versa), limited and sometimes non-uniform precision resulting in [error](error.md) accumulation, unlinearization of linear systems and so on. Programmers also don't care about strictly respecting some properties that certain number sets must mathematically have, for example integers along with addition are mathematically a [group](group.md), however signed integers in [two's complement](twos_complement.md) aren't a group because the lowest value doesn't have an inverse element (e.g. on 8 bits the lowest value is -128 and highest 127, the lowest value is missing its partner). Programmers also allow "special" values to be parts of their number sets, especially e.g. with the common IEEE [floating point](float.md) types we see values like plus/minus [infinity](infinity.md), [negative zero](negative_zero.md) or [NaN](nan.md) ("not a number") which also break some mathematical properties and creates situations like having a number that says it's not a number, but again this really doesn't play much of a role in practical problems. Numbers in computers are represented in [binary](binary.md) and programmers themselves often prefer to write numbers in binary, hexadecimal or octal representation -- they also often meet powers of two rather than powers of ten or primes or other similar limits (for example the data type limits are typically limited by some power of two). Famously programmers start counting from 0 (they go as far as using the term "zeroth") while mathematicians rather tend to start at 1. Just as mathematicians have different sets of numbers, programmers have an analogy in numeric [data types](data_type.md) -- a data type defines a set of values and operations that can be performed with them. The following are some of the common data types and representations of numbers in computers:
|
||||
|
||||
- **numeric**: Anything considered a number. In very high level languages there may be just one generic "number" type that can store any kind of number, automatically choosing best representation for it etc.
|
||||
- **unsigned**: Don't allow negative values -- this is sufficient in many cases, simpler to implement and can offer higher range in the positive direction.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue