Integer sequence generation and related conditional tests.
Project description
interator
Module for integer sequence generation and related conditional tests.
Installation
Use the package manager pip to install interator.
pip install interator
Contents
Fibonacci Sequence
Function | Description |
---|---|
fibonacci_stream(start=(0,1)) |
Yield the next Fibonacci number starting with F(0) |
negafibonacci_stream(start=(0,1)) |
Yield the next Fibonacci number in the negative index starting with F(0) |
nth_fibonacci(n, start=(0, 1)) |
Given an index n, find F(n) |
lucas_stream(P = 2, Q = -1, start=(0, 1)) |
Yield the next number in the in the (P,-Q)-Lucas sequence starting with U0(P,Q) |
is_fibonacci(n, start=(0,1)) |
Determine if n is within the Fibonacci sequence |
is_lucas(n, P = 2, Q = -1, start=(0, 1)) |
Determine if n is within the (P,-Q)-Lucas sequence |
Generalizations
By default, fibonacci_stream
, negafibonacci_stream
, nth_fibonacci
, and is_fibonacci
work with the Fibonacci numbers, and lucas_stream
and is_lucas
work with the Pell numbers. However, by changing start
, any generalization of these sequences can be generated. Here are some common examples:
import interator
stop = 10
numbers = {'Lucas' : (2, 1),
'Tribonacci' : (0, 0, 1),
'Tetranacci' : (0, 0, 0, 1)}
for name, start in numbers.items():
print('%s numbers:' % name)
for i, n in enumerate(interator.fibonacci_stream(start=start)):
print(n, end = ' ')
if i == stop:
print('\n')
break
Please note the Lucas numbers should not be confused with the Lucas sequence. The Lucas numbers are a specific example of the Lucas sequence.
Prime Numbers
Functions | Description |
---|---|
prime_stream() |
Yield the next prime number starting with 2 |
composite_stream() |
Yield the next composite number starting with 1 |
is_prime() |
Test the primality of n by checking potential prime factors |
miller_rabin(n, k = 8) |
Perform the Miller-Rabin Primality Test on n |
is_composite(n) |
Test if n is a composite number by checking potential prime factors |
Polygonal Numbers
Functions | Description |
---|---|
polygonal_stream(s) |
Yield the next s-gonal number starting with 1 |
is_polygonal(n, s) |
Test if n is an s-gonal number |
Licensing
This project is licensed under the MIT License.
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.