Guest User

Untitled

a guest
Jan 22nd, 2018
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.76 KB | None | 0 0
  1. #!/usr/bin/env python
  2. # encoding: utf-8
  3. """
  4. k_adic.py
  5. """
  6.  
  7. import sys
  8. import os
  9.  
  10. alphabet = lambda n: chr(ord('A') + n - 1)
  11. ALPHABET_LEN = ord('Z') - ord('A') + 1 # 26
  12.  
  13. def k_adic(number, get_digits=alphabet, base=ALPHABET_LEN):
  14. """
  15. k-adic notation A.K.A. Bijective numeration
  16. """
  17.  
  18. result = ''
  19. while number > 0:
  20. number, remainder = divmod(number, base) # 여기까지는 보통의 진법 변환과 같지만,
  21. if remainder == 0: # 나머지의 범위가 1~base(26)이 되도록 조정합니다.
  22. number -= 1 # 나머지가 26이 되었으므로, 피제수도 1을 빼줍니다.
  23. remainder = base
  24. result = get_digits(remainder) + result
  25. return result
Add Comment
Please, Sign In to add comment