In Picture-Hanging Puzzles a famous puzzle, and some of its generalisations are solved using a words over a free group.
This project offers primitives which enable a developer to express words over free groups and operate on these words in similiar ways as expressed in the article.
Wikipedia has a nice article on free groups.
In mathematics, a group G is called free if there is a subset S of G such that any element of G can be written in one and only one way as a product of finitely many elements of S and their inverses (disregarding trivial variations). Apart from the existence of inverses no other relation exists between the generators of a free group.
Python is used in this project. Make sure that python is able to find
the project. I usually add the current directory to the
with the following command.
> export PYTHONPATH=.
Execute the following command to run all tests in the project
> python picture/test/test_all.py
To solve a picture hanging puzzle with n pins run
> bin/picture-hanging n