You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
950 B
43 lines
950 B
from functools import reduce,partial
|
|
from operator import mul
|
|
# from math import fmod
|
|
def _base(n,b):
|
|
out =[]
|
|
while n:
|
|
out.insert(0,n%b)
|
|
n //= b
|
|
return out
|
|
|
|
def _multbase(n,bases):
|
|
if reduce(mul,bases) < n:
|
|
raise ValueError("Not enough bases/not big enough")
|
|
|
|
for base in reversed(bases):
|
|
out.insert(0,n%bases)
|
|
n //= base
|
|
if not n:
|
|
return out
|
|
def _fbase(n,b,se = 2**-64):
|
|
out = []
|
|
if b < 1:
|
|
b = 1/b
|
|
op = out.append
|
|
else:
|
|
op = partial(out.insert,0)
|
|
print(b)
|
|
r = 1
|
|
while n > r != 0:
|
|
r = int(n%b)
|
|
op(r)
|
|
n = (n-r)/b
|
|
return out
|
|
def _fmultbase(n,b,se = 0.01):
|
|
out = []
|
|
if reduce(mul,bases) < n:
|
|
raise ValueError("Not enough bases/not big enough")
|
|
for base in reversed(bases):
|
|
out.insert(0,n%base)
|
|
n /= base
|
|
if n < se or n == 0:
|
|
return out
|
|
#test
|