Ruby, 58 bayt
Bu, Helyum Nuclei'nin C cevabını yayınlamadaki algoritmanın basit bir uygulamasıdır .
g=->m,n{n>m ?g[n,m]:m*~m*n*~n/4+n*((2*m-n)*(4*n*n-1)-3)/6}
Bu formülün neden çalıştığını sınırlı bir başarı ile araştırıyordum. Dik dikdörtgenlerin sayısının eşit olduğunu (m+1)*m/2 * (n+1)*n/2
, köşeli dikdörtgenlerin sayısının biraz daha zor olduğunu onaylamak kolaydır .
Neil etti teyit için m==n
bir in eğik dikdörtgenler sayısı o n*n
meydanda olduğunu (4*n**4-n*n-3*n)/6
ve bu zaman m>n
ek bir eklemem gerekiyor (m-n)(n*(4*n*n-1)/3)
(ilgili OEIS A000447 ), bu açıklamaz olsa bu iki formüller nereden geldiğini. Cevabın bir kısmını buldum.
Çünkü m==n
, ızgaranın içindeki şekli bir Aztek elmasıdır .
Bir Aztec elmas dikdörtgenler sayısı büyük dikdörtgen sayısının toplamı, (a bulunan dördüncü elmas için yapmak üst üste biner 5x5
ızgara, 2x8
, 4x6
, 6x4
, ve 8x2
eksi dikdörtgenler sayısı) sayılır iki kez (sayısı önceki Aztek elmasındaki dikdörtgenler ).
Buradaki formül (daha sonra eklenecek TeX):
# superimposed rectangles, 2x(2n-2), 4*(2n-4), ...
f = lambda n: sum( (2*k)*(2*k+1)/2 * (2*n-2*k)*(2*n-2*k+1)/2 for k in range(1, n) )
aztec_rect = f(n) - f(n-1)
Wolfram Alpha, kapalı forma göre f
IS 1/30*(n-1)*n*(4*n**3+14*n**2+19*n+9)
ve kapalı formda aztec_rect
Neil keşfetti OLDUĞU GİBİ, 1/6*n*(n-1)*(4*n**2+4*n+3) == 1/6*(4*n**4-n**2-3*n)
.
Neden keşfetmek için henüz (m-n)(n*(4*n*n-1)/3)
ben bir tanım çünkü olduğundan şüpheleniyorsanız olsa eserlerini A000447 olduğunu binomial(2*n+1, 3)
. Seni haberdar edeceğim.
Güncelleme: Uzatılmış bir Aztek elmasındaki dikdörtgen sayısının işlevinin , elmas eksi içindeki m>n
bindirilmiş 2k*2(n-k)
dikdörtgen sayısı ile ilişkili olduğuna inanmak için nedenlerim var F(m-1,n-1)
. Onlara sahipken daha fazla sonuç.
Güncelleme: Farklı bir rota denedim ve çoğunlukla açıklanabilen ancak henüz anlamadığım bir terimi olan genişletilmiş Aztek elmasları için başka bir formül kullandım. Huzzah! : D
def f(m,n):
if n > m:
return f(n,m)
if n == 0:
return 0
else:
return(m-n+1)*(4*n**4-n*n-3*n)/6-f(m-1,n-1)+(m-n)*2+(m-n)*(n-2)-(m-n-1)*f(n-1,n-1)
Bu son formülün hızlıca çözülmesi:
(m-n+1)*(4*n**4-n*n-3*n)/6
n
yapıdaki üst üste bindirilmiş Aztek elmaslarının sayısıdır f(n,n) = (4*n**4-n*n-3*n)/6
. f(7,3)
5 Aztec elmas için boyut üst üste olan 3
ise, f(3,3)
sadece 1 elmas sahiptir.
-f(m-1,n-1)
yinelenen dikdörtgenlerin bir kısmını üst üste bindirilmiş elmasların ortasından çıkarır.
+(m-n)*2
Her bir ekstra elmas için 2 ekstra 2
- (2n-1)
dikdörtgen.
+(m-n)*(n-2)
İlave hesapları n
-by- n
fazladan her elmas için meydanda.
-(m-n-1)*f(n-1,n-1)
Bu yeni şaşırtıcı terimdir. Görünüşe göre sayımdaki bazı fazladan kareleri hesaba katmadım, fakat uzatılmış elmasın neresinde olduklarını bulamadım.
Not: ne zaman m==n
, m-n-1 = -1
bu son terimin sayıma kareler eklediği anlamına gelir . Normal formülümde bir şeyler eksik olabilir. Tam açıklama, bu sadece işe yeni başlamış olan bu formülün daha önceki bir taslağı için bir yama olması demekti. Açıkçası, neler olup bittiğini araştırmaya ihtiyacım var ve formülümün içinde bazı böcekler olabilir. Seni haberdar edeceğim.
Russell, Gary ve Weisstein, Eric W. "Aztek Elmas." MathWorld'den - Bir Wolfram Web Kaynağı. http://mathworld.wolfram.com/AztecDiamond.html