def other(c1,c2):
s=set()
s.add('R')
s.add('G')
s.add('B')
s.remove(c1)
s.remove(c2)
return list(s)[0]
def triangle(row):
n=len(row)
if n==1:
return row[0]
for _ in range(1,n):
s=""
for i in range(len(row)-1):
if row[i]==row[i+1]:
s+=row[i]
else:
s+=other(row[i],row[i+1])
row=s[:]
return s[0]
from itertools import product
for n in range(1, 6):
r = ""
for p in product("RGB", repeat=n):
s = ''.join(p)
t = triangle(s)
r += t
from math import comb
# for n in range(1, 15):
# row = []
# for k in range(n + 1):
# r = comb(n, k) % 3
# row.append(str(r))
# print(n, "===>", ' '.join(row))
from math import isqrt
def f(m, k):
if m<3 and k<3: return comb(m, k)%3
c, a = divmod(m, 3)
d, b = divmod(k, 3)
return f(c, d)*f(a, b)%3
def tri(n):
if n == 0:
return 0
m = n
ans = []
b = 1
while m > 0:
q, r = divmod(m, 3)
ans.append(r)
m = q
print(ans[::1])
k = len(ans)
s = 0
for i in range(k):
s = (s + f(k, i) * ans[i]) % 3
return s
def to_base3(n):
if n == 0:
return [0]
m = n
ans = []
b = 1
while m > 0:
q, r = divmod(m, 3)
ans.append(r)
m = q
return ans[::-1]
print(tri(1247))
for n in range(20):
s = ''.join(map(str, to_base3(n)))
print(s)
# Chai Wah Wu (OEIS)
def solve(n):
k=(n+1)*2
m = isqrt(k)
r = m - (k<=m*(m+1))
ans = f(r, n-comb(r+1, 2))
return ans
s = 0
tri = []
for k in range(10):
row = []
for j in range(k + 1):
r = solve(s)
row.append(str(r))
s += 1
print(' '.join(row))
To embed this program on your website, copy the following code and paste it into your website's HTML: