Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Cistercian Converter II: Cistercian To Integer by tokiojapan55
from itertools import product
PATTERN = [0, 48, 3, 9, 24, 56, 21, 53, 23, 55]
OPERATION = [(0, 4, -1, -1), (3, 4, -1, 1), (0, 0, 1, -1), (3, 0, 1, 1)]
def generate(number: int) -> list[list[str]]:
image = [[" 0"[c == 2] for c in range(5)] for _ in range(7)]
for c, (x, y, v, h) in zip(f'{number:04d}', OPERATION):
p = [list(f'{PATTERN[int(c)]:06b}'[a * 2:][:2][::h]) for a in range(3)][::v]
for a, b in product(range(3), range(2)):
image[y + a][x + b] = '0 '[p[a][b] == '0']
return image
cistercian = lambda image: next(filter(lambda n: generate(n) == image, range(10000)))
March 26, 2025