N boyutlu bir hiper küpün her bir öğe türünün (tepe noktası, kenar, yüz vb.) Sayısını çıkaran bir işlev veya program yazın.
Örnek olarak, 3 boyutlu küp 1 hücreye (yani 1 3 boyutlu küp), 6 yüze (yani 6 2 boyutlu küp), 12 kenara (yani 12 2 boyutlu küp) ve 8 köşeye (yani 8 0 boyutlu) sahiptir küpler).
Hypercube öğeleri hakkında daha fazla bilgiyi burada bulabilirsiniz
Aşağıdaki OEIS dizisine de göz atabilirsiniz .
Giriş
Kodunuz hiper küpün boyutu olan 0'a eşit veya daha büyük bir tamsayı girdi olarak (STDIN veya bir işlev parametresi veya benzeri şeyler ile) alır.
Kodunuz, bellek ve zaman sorunlarını göz ardı ederek teorik olarak herhangi bir giriş> = 0 için çalışmalıdır (yani, giriş büyükse hız ve potansiyel yığın taşmaları cevabınız için bir sorun değildir). Test senaryoları olarak verilen girdiler 12'nin üzerinde olmayacaktır.
Çıktı
"En yüksek boyut" öğesinden başlayarak hiper küpün tüm öğelerinin bir listesini çıkarırsınız. Örneğin, bir küp için (giriş = 3) listenin çıktısını alırsınız [1,6,12,8]
(1 hücre, 6 yüz, 12 kenar, 8 köşe).
Çıktıdaki listenin biçimi, liste gibi göründüğü sürece nispeten ücretsizdir.
Sonucu STDOUT'a gönderebilir veya bir işlevden döndürebilirsiniz.
Test senaryoları
Input = 0
Output = [1]
Input = 1
Output = [1,2]
Input = 3
Output = [1,6,12,8]
Input = 10
Output = [1, 20, 180, 960, 3360, 8064, 13440, 15360, 11520, 5120, 1024]
Input = 12
Output = [1, 24, 264, 1760, 7920, 25344, 59136, 101376, 126720, 112640, 67584, 24576, 4096]
puanlama
Bu kod golf , bu yüzden bayttaki en kısa cevap kazanır.