Matrislerle ilgili birkaç zorluk yazdım ve herkes için yaygın olan, matrisleri temsil ederken hem örneklerde hem de test durumlarında aşağıdaki gibi bir format kullanmamdır:
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
Bu muhtemelen birçok dilde hantal bir formattır.
Meydan okuma:
Üstte verilen forma girdi olarak (doğrudan bu yazıdan kopyala / yapıştır) bir matris alabilen bir program / fonksiyon yazın ve aşağıda gösterilen diğer üç geleneksel formatta da aynı matrisi çıktılayın .
Giriş biçimi:
Değişen sayıda boşlukla ayrılmış sayılar ve satırları temsil eden yeni satırlar (bkz. Test senaryoları).
- Sayılar arasındaki boşluk sayısının tutarlı olması garanti edilmez. Ancak, her sütundaki son basamağın hizalandığını varsayabilirsiniz (eğer bu işe yararsa).
- Hem tamsayılar hem de kayan noktalar olabilir ve pozitif, negatif veya sıfır olabilirler. Bir matris aynı anda tamsayı ve kayan sayı içermez .
- Negatif kayan reklamlar için eksi ve ondalık nokta da dahil olmak üzere hiçbir sayının 10 karakterden uzun olmadığını varsayabilirsiniz.
- Her satırda ve her sütunda aynı sayıda giriş olduğunu varsayabilirsiniz.
- Boş giriş matrisi olmayacaktır, ancak tek sayılar veya yalnızca bir satır veya sütuna sahip matrisler olabilir.
- Bu durumlarda test senaryolarında gösterilen çıktı biçimleri arasında seçim yapabilirsiniz
Programınız / işleviniz doğrudan bu gönderiden kopyalanır ve yorumlayıcıya yapıştırılırsa (STDIN veya işlev bağımsız değişkeni veya eşdeğeri bir şey) girdiyi işlemelidir. Matrisin önünde ve / veya sonrasında istediğiniz her şeye (parantez, tırnak işaretleri, parantez) sahip olabilirsiniz, ancak matrisi değiştirilemeyen bir karakter dizisi olarak düşünmelisiniz (satırsonlarını içerir).
Açıklığa kavuşturmak için: Fonksiyonunuzun / programınızın çağrıldığını f
ve matrisin:
1 -2
3 5
6 7
bu durumda matrise aşağıdaki gibi işlev bağımsız değişkenleri (ve sonsuz sayıda seçenek) verebilirsiniz:
f(1 -2
3 5
6 7)
f([1 -2
3 5
6 7])
f("""1 -2
3 5
6 7""")
Diliniz herhangi bir şekilde kopyala / yapıştırılan matrisi giriş olarak alamazsa, korkarım başka bir dil seçmeniz gerekir.
Çıktı biçimi:
Matrisi aşağıdaki üç formatta çıkarmalısınız (sıra önemli değildir):
[[16, 2, 3, 13], [5, 11, 10, 8], [9, 7, 6, 12], [4, 14, 15, 1]]
{{16, 2, 3, 13}, {5, 11, 10, 8}, {9, 7, 6, 12}, {4, 14, 15, 1}}
[16, 2, 3, 13; 5, 11, 10, 8; 9, 7, 6, 12; 4, 14, 15, 1]
- Üç çıktıyı istediğiniz gibi ayırabilirsiniz (örn. Yeni satır)
- Sayıları girdi ile aynı hassasiyeti kullanarak çıkarmalısınız (örneğin, ondalık sayısını veya kayan sayı olarak tam sayıları kesmemelisiniz).
- Alanlar zorunludur
-
Negatif sayılar için kullanmalısınız , değil_
veya benzer.
Test senaryoları:
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
----
[[16, 2, 3, 13], [5, 11, 10, 8], [9, 7, 6, 12], [4, 14, 15, 1]]
{{16, 2, 3, 13}, {5, 11, 10, 8}, {9, 7, 6, 12}, {4, 14, 15, 1}}
[16, 2, 3, 13; 5, 11, 10, 8; 9, 7, 6, 12; 4, 14, 15, 1]
0.14778 0.27114 0.24415
0.45997 0.12287 0.67470
0.28945 0.37928 0.51887
----
[[0.14778, 0.27114, 0.24415], [0.45997, 0.12287, 0.6747], [0.28945, 0.37928, 0.51887]]
{{0.14778, 0.27114, 0.24415}, {0.45997, 0.12287, 0.6747}, {0.28945, 0.37928, 0.51887}}
[0.14778, 0.27114, 0.24415; 0.45997, 0.12287, 0.6747; 0.28945, 0.37928, 0.51887]
-0.0398301 0.2403455 -0.2253368 0.3565870 0.0605803 0.0830780
-0.3254422 -0.1185191 -0.2989537 0.1647319 0.3621135 0.2018815
-0.0022281 -0.3362287 -0.3568447 0.4419063 0.3801872 -0.2847033
---
[[-0.0398301, 0.2403455, -0.2253368, 0.3565870, 0.0605803, 0.0830780], [-0.3254422, -0.1185191, -0.2989537, 0.1647319, 0.3621135, 0.2018815], [-0.0022281, -0.3362287, -0.3568447, 0.4419063, 0.3801872, -0.2847033],]
{{-0.0398301, 0.2403455, -0.2253368, 0.3565870, 0.0605803, 0.0830780}, {-0.3254422, -0.1185191, -0.2989537, 0.1647319, 0.3621135, 0.2018815}, {-0.0022281, -0.3362287, -0.3568447, 0.4419063, 0.3801872, -0.2847033},}
[-0.0398301, 0.2403455, -0.2253368, 0.3565870, 0.0605803, 0.0830780; -0.3254422, -0.1185191, -0.2989537, 0.1647319, 0.3621135, 0.2018815; -0.0022281, -0.3362287, -0.3568447, 0.4419063, 0.3801872, -0.2847033]
0 4 1 0
0 0 -6 0
0 1 4 -3
2 0 0 8
0 0 0 0
----
[[0, 4, 1, 0], [0, 0, -6, 0], [0, 1, 4, -3], [2, 0, 0, 8], [0, 0, 0, 0]]
{{0, 4, 1, 0}, {0, 0, -6, 0}, {0, 1, 4, -3}, {2, 0, 0, 8}, {0, 0, 0, 0}}
[0, 4, 1, 0; 0, 0, -6, 0; 0, 1, 4, -3; 2, 0, 0, 8; 0, 0, 0, 0]
1
----
[1] (or [[1]])
{1} (or {{1}})
[1] (or 1)
1 2
----
[1, 2] (or [[1, 2]])
{1, 2} (or {{1, 2}})
[1, 2]
4
5
----
[[4], [5]]
{{4}, {5}}
[4; 5]
Ben tam olarak farkında değilim bu ama bu mücadelede, hantal G / Ç biçimi bütün noktasıdır. Buradaki zorluk, çıktıyı bazı dillerde biçimlendirmekle ilgili olurken, girişi okumak diğer dillerde en zor kısım olacaktır.
Eğer girişi okumak zorsa lütfen cesaretiniz kırılmasın, bu sunumlar en ilginç olanlar olabilir. Kısa, etkileyici olmak zorunda değildir. Ve her zaman olduğu gibi açıklamalar teşvik edilir!