Browse Source

test

master
Raphael Roberts 7 years ago
parent
commit
924d094776
  1. 59
      multbase.py

59
multbase.py

@ -1,24 +1,43 @@
from functools import reduce
from functools import reduce,partial
from operator import mul from operator import mul
# from math import fmod
def _base(n,b): def _base(n,b):
out =[]
while n:
out.append(n%b)
n //= b
return out
out =[]
while n:
out.insert(0,n%b)
n //= b
return out
def _multbase(n,bases): def _multbase(n,bases):
out = []
if functools.reduce(mul,bases) < n:
raise ValueError("Not enough bases/not big enough")
for base in reversed(bases):
out.append(n%bases)
n //= base
if not n:
return out
def base(n,base_arg):
try:
return _multbase(n,base_arg
except ValueError:
return _base(n,base_arg)
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
Loading…
Cancel
Save