( Sonsuz kumpikleri ve kumpillerinin kimlik öğelerini bulma ile ilgili sorular vardır .)
Negatif olmayan tamsayıların bir matrisi göz önüne alındığında, aynı boyutlarda bir matris döndürün , ancak devrildi :
- Matris 4'ten büyük bir değer içermiyorsa, döndürün.
- 3'ten büyük olan her "hücre" 4 ile azalır ve varsa doğrudan komşu hücrelerin tümü (yukarıda, aşağıda, solda ve sağda) artar.
- GOTO 1.
Örnekler:
0 1 0 0 2 0
2 4 0 -> 3 0 1
0 0 3 0 1 3
1 2 3 2 3 4 2 5 1 4 1 2 0 3 3 0 3 3 0 3 3
4 5 6 -> 2 4 4 -> 4 2 3 -> 0 5 4 -> 3 2 1 -> 3 3 1 -> 3 3 2
7 8 9 5 7 7 2 6 5 4 3 2 0 5 3 1 1 4 1 2 0
(Yalnızca nihai sonucu döndürmeniz gerekir. Oraya ulaştığınız yol, burada gösterilen yoldan farklı olabilir: Devirme işlemlerini hangi sırayla gerçekleştirdiğiniz önemli değildir, hepsi aynı sonuca götürür.)
Daha derin bir açıklama ve bazı motivasyon için bkz bu Numberphile videoyu veya Wikipedia article Abelyen sandpile modeli .
Kurallar:
- Giriş ve çıkışları standart yollardan herhangi biriyle
- Loopholes yasaktır
- Giriş ve çıkış:
- iç içe bir liste:
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
- basit bir liste:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
ve şekil - bir tür yerli matris türü
- bir dize, ör.
1 2 3\n4 5 6\n7 8 9
- veya kendi dilinizde başka ne çalışıyorsa.
- iç içe bir liste:
- Giriş ve çıkış aynı biçimde olmalıdır
- Giriş, burada gösterilenlerden daha büyük sayılar içerebilir, ancak boyut dilinizin sınırlarına bağlı olabilir (varsa MAXINT eşdeğeri)
- Matris herhangi bir şekle sahip olabilir (örneğin 1x1, 2x2, 3x3, 4x4, 2x7, 11x3, ...)
- Şeklin 0xN veya Nx0 olduğu durumda işlem yapmanız gerekmez.
testcases
[[2, 5, 4], [8, 6, 4], [1, 2, 3]] -> [[3, 3, 0], [1, 2, 2], [1, 3, 2]]
[[0, 0, 2], [1, 3, 3], [0, 0, 0]] -> [[0, 0, 2], [1, 3, 3], [0, 0, 0]]
[[9, 9, 9], [9, 9, 9], [9, 9, 9]] -> [[1, 3, 1], [3, 1, 3], [1, 3, 1]]
[[4, 5], [2, 3]] -> [[2, 3], [0, 1]]
[[2, 3, 5], [2, 2, 0]] -> [[3, 0, 2], [2, 3, 1]]
[[7]] -> [[3]]
Bu codegolf , en kısa kod (dil başına) kazanıyor.