Integer sequence generation and related conditional tests.
Project description
interator
Module for integer sequence generation and related conditional tests.
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 |
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.
Source Distribution
interator-0.1.tar.gz
(2.3 kB
view hashes)