Railway circuit

From Rosetta Code
Revision as of 15:58, 21 January 2016 by rosettacode>G.Brougnard (Trying to create a draft task)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Railway circuit is a draft programming task. It is not yet considered ready to be promoted as a complete task, for reasons that should be found in its talk page.

Given n sections of curve tracks, each one being an arc of 30° of radius R, the goal is to build and count all possible different railway circuits.

Constraints : - n = 12 + k*4 (k = 0, 1 , ...) - The circuit must be a closed, connected graph, and the last arc must joint the first one. - Duplicates, either by symmetry, translation, reflexion or rotation must be eliminated. - Path may overlap or cross each other. - All tracks must be used.

Illustrations : http://www.echolalie.org/echolisp/duplo.html

Task : Write a function which counts and displays all possible circuits Cn for n = 12, 16 , 20. Extra credit for n = 24, 28, ... 48 (no display, only counts). A circuit Cn will be displayed as a list, or sequence of n Right=1/Left=-1 turns.

Example : C12 = (1,1,1,1,1,1,1,1,1,1,1,1) or C12 = (-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1)

Extra :

  Suppose we have m = k*2 sections of straight tracks, each of length L. Such a circuit is denoted Cn,m . Count the number of circuits Cn,m  with n same as above and m = 2 to 8  .