Depends on how many different veneers are available 

I'm thinking there should me a multiple of 4 in the answer however, I think the answer may turn out to be 64.
I could be wrong of course![]()
EDIT: How about invariants for R? Can you think of one?
#!/usr/bin/python
# -*- coding: utf-8 -*-
def rotate(s):
tmp = s[3] + s[0:3]
r=""
for i in range(0,4):
r= r + (str((int(tmp[i]) + 1)%4))
return r
combs = []
poss = ["0","1","2","3"]
for i in poss:
for j in poss:
for k in poss:
for l in poss:
s = i+j+k+l
combs.append(s)
unique = []
while len(combs) > 0:
c = combs[0]
unique.append(c)
for i in range(0,4):
try:
combs.remove(c)
except ValueError:
()
c = rotate(c)
print unique
print len(unique)
Nice program, I can sort of convert that to C++ in my head
You'll never be a games programmer though if you use text representations of your data![]()
Clearly for the 2 sided table we have 2 possibilities (00 and 01), can we come up with a formula for an N sided table? You could modify that program to be recursive on N, or go the whole hog and use Lisp
We have 2, ???, 70, ... so far.
We could then probably use that sequence site to check which sequence it is and find the mathworld page that references it.