- こちらから
- 3次元格子の隣の話
- 3次元格子の「直」の隣と「ナナメ」の隣の数の和が18であるという。
- 一般化しよう
- 1辺の長さがLのとき、格子点の数は、1次元だとL+1、2次元だと、n次元だと。
- ある点の周辺を考える。
- 自身の周囲は、L=3なので、周囲の全格子点の数は
- このL=3のn次元立方格子の点を、中央にある自身からの距離で分類する
- 自身である点の数、nによらず1個。距離は0。
- 隣接点(距離1の点。1次元的隣の点)、1次元なら2個、2次元なら4個、3次元なら、6個、n次元なら2n個。
- 普通の斜めの位置の点(距離の点。2次元的に出現する隣の点)、1次元なら0個、2次元なら4個、3次元なら、12個、n(n>1)次元なら4n個。
- ちなみに3次元空間の「直」の隣と「ナナメ」の隣の数の和は18=(3次元空間の1次元的隣の点〜6)+(3次元空間の2次元的隣の点〜12)。
- 3次元的な隣の点(3次元になって初めて生じる「隣」の点)は、距離がで、3以上次元空間にある。その数は1次元で0個、2次元で0個、3次元で8個。n次元で?
- こう考える。
- が自身とその「隣」の数
-
- 格子をその辺をたどって巡り、その道のりを距離とするとき、「隣」までの距離は、0,1,2,...,n。
- ユークリッドな距離は
- 距離がiの点の数が
ns<-1:10
for(n in ns){
N<-3^n
Tonari<-rep(0,n+1)
for(i in 0:n){
Tonari[i+1]<-choose(n,i)*2^i
}
tmp<-paste("n=",n)
print(tmp)
print("距離別の隣数")
print(Tonari)
tmp<-paste("その和=",sum(Tonari))
print(tmp)
tmp<-paste("3^n=",N)
print(tmp)
}
<||
>|r|
[1] "n= 1"
[1] "距離別の隣数"
[1] 1 2
[1] "その和= 3"
[1] "3^n= 3"
[1] "n= 2"
[1] "距離別の隣数"
[1] 1 4 4
[1] "その和= 9"
[1] "3^n= 9"
[1] "n= 3"
[1] "距離別の隣数"
[1] 1 6 12 8
[1] "その和= 27"
[1] "3^n= 27"
[1] "n= 4"
[1] "距離別の隣数"
[1] 1 8 24 32 16
[1] "その和= 81"
[1] "3^n= 81"
[1] "n= 5"
[1] "距離別の隣数"
[1] 1 10 40 80 80 32
[1] "その和= 243"
[1] "3^n= 243"
[1] "n= 6"
[1] "距離別の隣数"
[1] 1 12 60 160 240 192 64
[1] "その和= 729"
[1] "3^n= 729"
[1] "n= 7"
[1] "距離別の隣数"
[1] 1 14 84 280 560 672 448 128
[1] "その和= 2187"
[1] "3^n= 2187"
[1] "n= 8"
[1] "距離別の隣数"
[1] 1 16 112 448 1120 1792 1792 1024 256
[1] "その和= 6561"
[1] "3^n= 6561"
[1] "n= 9"
[1] "距離別の隣数"
[1] 1 18 144 672 2016 4032 5376 4608 2304 512
[1] "その和= 19683"
[1] "3^n= 19683"
[1] "n= 10"
[1] "距離別の隣数"
[1] 1 20 180 960 3360 8064 13440 15360 11520 5120 1024
[1] "その和= 59049"
[1] "3^n= 59049"