다음은 일부 $ p $에 대해 $ p^2 $와 동일한 특정 대수 algebras의 차원을 계산하기 위해 Sage에서 작성한 코드입니다.'조합'을 사용하여 세 가지 이상의 조합 사용
def A_comb2rep(p):
bound = p*p
name_fund = []
name_comb = []
A = lambda i: WeylCharacterRing("A{0}".format(i))
for i in range(bound):
for k in range(1,bound+1):
fw = A(i+1).fundamental_weights()
if A(i+1)(k * fw[1]).degree() > bound:
break
else:
for v in fw:
if A(i+1)(k * v).degree() == bound:
name_fund.append([])
name_fund[len(name_fund)-1].append('A'+str(i+1)+'('+str(k)+'*'+str(v)+')')
for i in range(1,bound): # now onto combinations of two of the fws #####
fw = A(i+1).fundamental_weights()
for k in fw:
if A(i+1)(fw[1] + fw[2]).degree() > bound:
break
else:
for j in fw:
rep = A(i+1)(j+k)
deg = rep.degree()
if deg == bound:
name_comb.append([])
name_comb[len(name_comb)-1].append('A'+str(i+1)+'['+str(j)+'+'+str(k)+']')
return name_comb, name_fund
코드의 두 번째 절반은 두 가지 기본적인 가중치의 조합을 고려한 것입니다. 이제 iterables 모듈에서 combination
함수를 사용하여 3 개 이상의 기본 가중치의 조합에 대해이를 확장하는 방법에 대해 궁금합니다.
더 구체적으로 말하면, fw
의 3 요소를 합하여 코드하는 것이 어떻습니까? 나는 v = combinations(fw, 3)
이 v
$ {n \ choose 3} $ 트리플 조합에 포함될 것이라고 알고 있는데, fw
의 요소는 (1,1,1,0,0,0)
과 같은 튜플입니다. v
에있는 세 쌍의 각각을 어떻게 합치겠습니까? 이 질문이이 사이트에 부적절한 경우 사과드립니다.
큰 감사에서 트리플 금액의 목록 (실제로 반복자)를 포함 할 곳! 이것은 완벽하게 작동했습니다. – Moderat