Piramidin
İnşa etmeni istediğim piramit tamamen küplerden oluşuyor. 24 katmana sahiptir, ve N inci üst tabaka, N içeren 2 küp K kare ile bir N düzenlenmiş. Piramit şöyle gözüküyor:
Piramidi inşa etmek için bir küp kaynağa ihtiyacınız olacak. Buna benzer şekilde 70'e 70 karede düzenlenmiş 4900 küp verilir:
(Tamam, meydanın resminin tamamen gereksiz olduğunu itiraf ediyorum.)
1 2 + 2 2 + 3 2 + ... + 24 2 = 70 2'den beri, piramidi oluşturmak için tam olarak doğru küp sayısına sahipsiniz. Tek yapman gereken bana her küpün nereye gitmesi gerektiğini söylemek.
Senin görevin
Kare içindeki küpler ile piramitteki küpler arasında rastgele bir seçim yapmalısınız. (Cevabınız, kullandığınız 4900! Farklı tekliflerden hangisini kullandığınızı söylemesi iyi olurdu.)
Ardından, aşağıdakileri yapan bir işlev veya program yazın:
- Bir küpün 70'e 70 karedeki konumu göz önüne alındığında (bir çift koordinat olarak
(X,Y)
), - Konumunu piramitte çıkar (üçlü koordinat olarak
(A,B,C)
).
Giriş ve çıkış koordinatlarının tümü 0 indeksli veya 1 indeksli olabilir. 1 indeksli farz edersek, girişiniz (X,Y)
1 ile 70 arasında bir tam sayı (A,B,C)
olacaktır. Çıktınız bir tamsayı olacaktır; A
üstten sayma (1 ile 24 arasında) (B,C)
katman olmalı ve o kattaki o küpün koordinatları ( 1 ile 24 arasında) olmalıdır A
.
Örneğin:
- Piramidin üst küpünün koordinatları vardır
(1,1,1)
. - Piramidin bazın dört köşesi vardır koordinatları
(24,1,1)
,(24,1,24)
,(24,24,1)
ve(24,24,24)
. - Karenin köşelerini piramidin köşelerine yerleştirmeye karar verirseniz, girişte
(70,1)
çıktı verebilirsiniz(24,24,1)
.
(X,Y)
Girdi olarak yalnızca geçerli koordinatlar verileceğini varsayabilirsiniz . Doğruluk tamamen aşağıdaki kural tarafından belirlenir: iki farklı geçerli giriş her zaman iki farklı geçerli işlem vermelidir.
Bu kod-golf : en kısa kod kazanır.