Libraries of a mathematical nature with example executables.
Project description
PyPI grscheller.boring-math Project
Daddy's boring math library.
- Python package of modules of a mathematical nature
- Project name suggested by my then 13 year old daughter Mary
- See grscheller.boring-math project on PyPI
- See Detailed API documentation on gh-pages
- See Source code on GitHub
Here are the modules and executables which make up the PyPI grscheller.boring_math package.
Library Modules
- Integer Math Module
- Number Theory
- Function gcd(int, int) -> int
- greatest common divisor of two integers
- always returns a non-negative number greater than 0
- Function lcm(int, int) -> int
- least common multiple of two integers
- always returns a non-negative number greater than 0
- Function coprime(int, int) -> Tuple(int, int)
- make 2 integers coprime by dividing out gcd
- preserves signs of original numbers
- Function iSqrt(int) -> int
- integer square root
- same as math.isqrt
- Function isSqr(int) -> bool
- returns true if integer argument is a perfect square
- Function primes(start: int, end_before: int) -> Iterator
- uses Sieve of Eratosthenes algorithm
- Function gcd(int, int) -> int
- Combinatorics
- Function comb(n: int, m: int) -> int
- returns number of combinations of n items taken m at a time
- pure integer implementation of math.comb
- Function comb(n: int, m: int) -> int
- Fibonacci Sequences
- Function fibonacci(f0: int=0, f1: int=1) -> Iterator
- returns a Fibonacci sequence iterator
f(n) = f(n-1) + f(n-2)
f(0) = f0
andf(1) = f1
- defaults to
0, 1, 1, 2, 3, 5, 8, 13, ...
- Function fibonacci(f0: int=0, f1: int=1) -> Iterator
- Number Theory
- Pythagorean Triple Module
- Pythagorean Triple Class
- Method Pythag3.triples(
a_start: int
,a_max: int
,max: int
) -> Iterator- Returns an iterator of tuples of primitive Pythagorean triples
- A Pythagorean triple is a tuple in positive integers (a, b, c)
- such that
a**2 + b**2 = c**2
a, b, c
represent integer sides of a right triangle- a Pythagorean triple is primitive if gcd of
a, b, c
is1
- such that
- Iterator finds all primitive Pythagorean Triples such that
0 < a_start <= a < b < c <= max
wherea <= a_max
- if
max = 0
find all theoretically possible triples witha <= a_max
- Method Pythag3.triples(
- Pythagorean Triple Class
- Recursive Function Module
- Ackermann's Function
- Function ackermann(m: int, n: int) -> int
- an example of a total computable function that is not primitive recursive
- becomes numerically intractable after m=4
- see CLI section below for mathematical definition
- Function ackermann(m: int, n: int) -> int
- Ackermann's Function
CLI Applications
Implemented in an OS and package build tool independent way via the project.scripts section of pyproject.toml.
Ackermann's function CLI scripts
Ackermann, a student of Hilbert, discovered early examples of totally computable functions that are not primitively recursive.
A fairly standard definition of the Ackermann function is
recursively defined for m,n >= 0
by
ackermann(0,n) = n+1
ackermann(m,0) = ackermann(m-1,1)
ackermann(m,n) = ackermann(m-1, ackermann(m, n-1))
- CLI script ackerman_list
- Given two non-negative integers, evaluates Ackermann's function
- Implements the recursion via a Python array
- Usage:
ackerman_list m n
Pythagorean triple CLI script
Geometrically, a Pythagorean triangle is a right triangle with with positive integer sides.
- CLI script pythag3
- A Pythagorean triple is a 3-tuple of integers
(a, b, c)
such thata**2 + b**2 = c**2
wherea,b,c > 0
andgcd(a,b,c) = 1
- The integers
a, b, c
represent the sides of a right triangle - Usage:
pythag3 [m [n [max]]
- 3 arguments print all triples with m <= a <= n and a < b < c <= max
- 2 arguments print all triples with m <= a <= n
- 1 argument prints all triples with a <= m
- 0 arguments print all triples with 3 <= a <= 100
- A Pythagorean triple is a 3-tuple of integers
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for grscheller_boring_math-0.4.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5b9b4518a62262221e10e655675a91a5ac3ad427d313d22ea059e006abb79e1d |
|
MD5 | 9a78a284eee77829034c96a00727d632 |
|
BLAKE2b-256 | bcc5cec2297bf649501c492e033d36cbef5d8dbdca26e32a2c99e0041a6953c6 |
Close
Hashes for grscheller_boring_math-0.4.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1e4324df8bd6e90d5bd136b91f3cb5226552ab4cac2942264d4b3b1265180a54 |
|
MD5 | 942700c590e2985d065f958a710183b3 |
|
BLAKE2b-256 | 6660a3475c897905b33fc817b249ce1abc7cdfd97cbd9dd5eac0e47c68b7dee9 |