Sıkıştırma algoritmasının bir parçası olarak, JPEG standardı bir matrisin dönüşümlü yöndeki antidiagonal boyunca bir vektöre ayrılmasını sağlar:
Senin görevin bir matris (mutlaka kare değil) almak ve onu kontrolsüz biçimde iade etmektir. Örnek olarak:
[1 2 3 4
5 6 7 8
9 1 2 3]
vermeli
[1, 2, 5, 9, 6, 3, 4, 7, 1, 2, 8, 3]
kurallar
Matris öğelerinin, değerinden daha küçük tamsayılar olduğunu varsayabilirsiniz 10
.
STDIN (veya en yakın alternatif), komut satırı argümanı veya işlev argümanı yoluyla giriş alarak ve sonucu STDOUT (veya en yakın alternatif), fonksiyon dönüş değeri veya function (out) parametresi ile çıktı alarak bir program veya işlev yazabilirsiniz.
Giriş matrisi herhangi bir uygun, açık, iç içe liste veya dize biçiminde veya her iki matris boyutuyla birlikte düz bir liste halinde verilebilir. (Ya da elbette, eğer dilinizde varsa, bir matris türü olarak.)
Çıktı vektörü herhangi bir uygun, açık, düz bir liste veya dize formatında olabilir.
Standart kod-golf kuralları geçerlidir.
Test Kılıfları
[[1]] => [1]
[[1 2] [3 1]] => [1 2 3 1]
[[1 2 3 1]] => [1 2 3 1]
[[1 2 3] [5 6 4] [9 7 8] [1 2 3]] => [1 2 5 9 6 3 4 7 1 2 8 3]
[[1 2 3 4] [5 6 7 8] [9 1 2 3]] => [1 2 5 9 6 3 4 7 1 2 8 3]
[[1 2 6 3 1 2] [5 9 4 7 8 3]] => [1 2 5 9 6 3 4 7 1 2 8 3]
[[1 2 5 9 6 3 4 7 1 2 8 3]] => [1 2 5 9 6 3 4 7 1 2 8 3]
[[1] [2] [5] [9] [6] [3] [4] [7] [1] [2] [8] [3]] => [1 2 5 9 6 3 4 7 1 2 8 3]
İlgili Zorluklar
- Zikzaklaştırılmış bir matris (biraz daha zor ters dönüşüm) yeniden yapılandırın
- Köşegenleri döndür