The main principle is to inductively construct an ("n" + 2)-digit Gray code formula_33 given an "n"-digit Gray code "G" in such a way that the balanced property is preserved. To do this, we consider partitions of formula_34 into an even number "L" of non-empty blocks of the form  where formula_36, and formula_37). This partition induces an formula_38-digit Gray code given by  If we define the "transition multiplicities" formula_43 to be the number of times the digit in position "i" changes between consecutive blocks in a partition, then for the ("n" + 2)-digit Gray code induced by this partition the transition spectrum formula_44 is  The delicate part of this construction is to find an adequate partitioning of a balanced "n"-digit Gray code such that the code induced by it remains balanced, but for this only the transition multiplicities matter; joining two consecutive blocks over a digit formula_4 transition and splitting another block at another digit formula_4 transition produces a different Gray code with exactly the same transition spectrum formula_44, so one may for example designate the first formula_49 transitions at digit formula_4 as those that fall between two blocks. Uniform codes can be found when formula_51 and formula_52, and this construction can be extended to the "R"-ary case as well. Monotonic codes are useful in the theory of interconnection networks, especially for minimizing dilation for linear arrays of processors. If we define the "weight" of a binary string to be the number of 1s in the string, then although we clearly cannot have a Gray code with strictly increasing weight, we may want to approximate this by having the code run through two adjacent weights before reaching the next one. We can formalize the concept of monotone Gray codes as follows: consider the partition of the hypercube formula_53 into "levels" of vertices that have equal weight, i.e.  for formula_55. These levels satisfy formula_56. Let formula_57 be the subgraph of formula_58 induced by formula_59, and let formula_60 be the edges in formula_57. A monotonic Gray code is then a Hamiltonian path in formula_58 such that whenever formula_63 comes before formula_64 in the path, then formula_65. An elegant construction of monotonic "n"-digit Gray codes for any "n" is based on the idea of recursively building subpaths formula_66 of length formula_67 having edges in formula_68.