- n次元ベクトル空間に
次元のグラスマン代数標準基底がある
- その基底を(),(1),(2),...,(n),(1,2),(1,3),...,(n-1,n),...,...,(1,2,...,n)とする
- 今、基底同士のウェッジ積には、「同じ要素を含んでいれば0」というルールと、「(1,4,3) = (-1) (1,3,4)というルール(要素の入れ替えの回数だけ(-1)を掛ける」というルールがある
- これをRでやってみる
my.sign <- function(x){
if(length(x)==0){
return(1)
}
r <- rank(x)
s.m <- diag(rep(1,length(r)))
det(s.m[r,])
}
my.ext.elem <- function(x,k){
sort.x <- sort(x)
if(prod(diff(sort.x))==0){
return(list(c(),0))
}
s <- my.sign(x)
return(list(sort.x,k*s))
}
n <- 10
for(i in 1:8){
s <- sample(1:n,5,replace=TRUE)
print("----")
print(s)
k <- runif(1)
print(k)
print(my.ext.elem(s,k))
}
[1] "----"
[1] 10 7 1 10 3
[1] 0.4968481
[[1]]
NULL
[[2]]
[1] 0
[1] "----"
[1] 2 5 9 3 8
[1] 0.1717271
[[1]]
[1] 2 3 5 8 9
[[2]]
[1] -0.1717271
[1] "----"
[1] 10 5 1 10 5
[1] 0.6563333
[[1]]
NULL
[[2]]
[1] 0
[1] "----"
[1] 9 4 9 9 5
[1] 0.008575734
[[1]]
NULL
[[2]]
[1] 0
[1] "----"
[1] 8 9 2 9 9
[1] 0.9588244
[[1]]
NULL
[[2]]
[1] 0
[1] "----"
[1] 1 7 6 4 2
[1] 0.3508445
[[1]]
[1] 1 2 4 6 7
[[2]]
[1] 0.3508445
[1] "----"
[1] 4 2 4 10 8
[1] 0.8382979
[[1]]
NULL
[[2]]
[1] 0
[1] "----"
[1] 6 3 4 9 9
[1] 0.4041948
[[1]]
NULL
[[2]]
[1] 0