Mathematics libraries with example executables
Project description
PyPI grscheller.boring-math
Daddy's boring math library.
- Functions of a mathematical nature
- Project name suggested by my then 13 year old daughter Mary
- Example of a Python package with both libraries and executables
- For detailed API documentation click here.
Overview
Here are the modules which make up the grscheller.boring_math package.
Integer Math Module
Combinatorics
- Function comb(n: int, m: int) -> int
- returns C(n,m) - the number of n items taken m at a time
- contains two additional default parameters that can be adjusted
- factorsNumerator = 66
- factorsDenonator = 4
- actually comb(n, m, 1, 1) runs faster for reasonably small n and m
- better choice for inner loops and printable results
- about 3 times slower than C based math.comb(n, m)
- these default paramenters are better for larger results
- goal is for it to work reasonably well after math.comb bogs down
- suspect it will really shine for pypy when it supports Python 3.11
Fibonacci Sequences
- Function fibonacci(f0: int=0, f1: int=1) -> Iterator
- return an iterator for a Fibonacci sequence
- defaults to
0, 1, 1, 2, 3, 5, 8, ...
Number theory
-
Function gcd(fst: int, snd: int) -> int
- takes two integers, returns greatest common divisor (gcd)
- where
gcd >= 0
gcd(0,0)
returns0
but in this case the gcd does not exist
-
Function lcm(fst: int, snd: int) -> int
- takes two integers, returns least common multiple (lcm)
-
Function primes(start: int=2, end_before: int=100) -> Iterator
- takes two integers, returns least common multiple (lcm)
Pythagorean Triples
The values a, b, c > 0
represent integer sides of a right triangle.
- Function pythag3(a_max: int=3, all_max: int|None=None) -> Iterator
- Return an interator of tuples of Pythagorean Tiples
- Side
a <= a_max
and sidesa, b, c <= all_max
- Iterator finds all primative pythagorean triples up to a given a_max
Recursive Functions
- Function ackermann(m: int, n: int) -> int
- Ackermann's function is a doublely recursively defined function
- An example of a computable but not primitive recursive function
- Becomes numerically intractable after m=4
Integer Math CLI Module
Ackermann's Function
- Function ackerman_cli(fst: int, snd: int) -> None
- entry point for program ackermann
- Ackermann's function is defined recursively by
ackermann(0,n) = n+1
ackermann(m,0) = ackermann(m-1,1)
ackermann(m,n) = ackermann(m-1,ackermann(m, n-1))
forn,m > 0
- Usage:
ackerman m n
Pythagorean Triple Function
- entry point for program pythag3
- A Pythagorean triple is a 3-tuple of integers
(a, b, c)
such thata*a + b*b = c*c
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]
- one argument outputs all triples with
a <= n
- two arguments outputs all triples with
a <= n
anda, b, c <= m
- one argument outputs all triples with
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
File details
Details for the file grscheller_boring_math-0.1.2.tar.gz
.
File metadata
- Download URL: grscheller_boring_math-0.1.2.tar.gz
- Upload date:
- Size: 13.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.31.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ee4db325ee5fabb60ee3010edfb210f3340e73826d8e9b9c910cab5ace62f22c |
|
MD5 | 4d497c60dedf219ef3bfca2d5c05909e |
|
BLAKE2b-256 | fd164459717a372a14bae006d793ccdc2d6d2b32fd40af77c234a6a5f7168242 |
File details
Details for the file grscheller_boring_math-0.1.2-py3-none-any.whl
.
File metadata
- Download URL: grscheller_boring_math-0.1.2-py3-none-any.whl
- Upload date:
- Size: 12.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.31.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0b3f36b8543b8b789b17ffaa62b0278ce713d4a337192905a748e733dbbe6662 |
|
MD5 | b17efe31c57dd79895713a3b8111aa98 |
|
BLAKE2b-256 | 2c8c6dba3ea64164bff7f9cd83358d7c5fa04d4ba55ea883362e1ccb380f8af7 |