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.

42 lines
950 B

7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
  1. from functools import reduce,partial
  2. from operator import mul
  3. # from math import fmod
  4. def _base(n,b):
  5. out =[]
  6. while n:
  7. out.insert(0,n%b)
  8. n //= b
  9. return out
  10. def _multbase(n,bases):
  11. if reduce(mul,bases) < n:
  12. raise ValueError("Not enough bases/not big enough")
  13. for base in reversed(bases):
  14. out.insert(0,n%bases)
  15. n //= base
  16. if not n:
  17. return out
  18. def _fbase(n,b,se = 2**-64):
  19. out = []
  20. if b < 1:
  21. b = 1/b
  22. op = out.append
  23. else:
  24. op = partial(out.insert,0)
  25. print(b)
  26. r = 1
  27. while n > r != 0:
  28. r = int(n%b)
  29. op(r)
  30. n = (n-r)/b
  31. return out
  32. def _fmultbase(n,b,se = 0.01):
  33. out = []
  34. if reduce(mul,bases) < n:
  35. raise ValueError("Not enough bases/not big enough")
  36. for base in reversed(bases):
  37. out.insert(0,n%base)
  38. n /= base
  39. if n < se or n == 0:
  40. return out
  41. #test