En az iki elemandan oluşan bir tamsayı dizisi verildiğinde, dizinin Matrix-Vector (aşağıda tanımlanan) çıktısını alın .
Matris- Vector'u hesaplamak için önce boyut n
giriş dizisi boyunca döndürerek , boyutun bir matrisini oluşturun n x n
ve dizinin ilk öğesi ana diyagonalden sonra gelir. Bu matris bölümünü oluşturur. Vektör için giriş dizisini dikey olarak çevirin. Sonra normal matris çarpımı gerçekleştirin. Sonuç vektörü sonuçtur.
Örneğin,
a = [1, 2, 3]
İlk olarak, elde etmek için diziyi iki kez sağa döndürün [3, 1, 2]
ve [2, 3, 1]
ardından bir 3x3
matris oluşturmak için yığınlayın
[[1, 2, 3]
[3, 1, 2]
[2, 3, 1]]
Ardından, vektörü oluşturmak için diziyi dikey olarak çevirin
[[1, 2, 3] [[1]
[3, 1, 2] x [2]
[2, 3, 1]] [3]]
Normal matris çarpımı gerçekleştirme
[[1, 2, 3] [[1] [[1+4+9] [[14]
[3, 1, 2] x [2] = [3+2+6] = [11]
[2, 3, 1]] [3]] [2+6+3]] [11]]
Ve çıktı [14, 11, 11]
ya da [[14], [11], [11]]
(düzleştirilmiş olsun ya da olmasın seçiminiz).
Örnek 2
a = [2, 5, 8, 3]
[[2, 5, 8, 3] [[2] [[4+25+64+9] [[102]
[3, 2, 5, 8] x [5] = [6+10+40+24] = [80]
[8, 3, 2, 5] [8] [16+15+16+15] [62]
[5, 8, 3, 2]] [3]] [10+40+24+6]] [80]]
[102, 80, 62, 80]
kurallar
- Giriş ve çıktının, dilinizin yerel tamsayı türüne uygun olduğu varsayılabilir.
- Giriş ve çıkış herhangi bir uygun formatta verilebilir .
- Tam bir program veya bir işlev kabul edilebilir. Bir işlev varsa, çıktıyı yazdırmak yerine döndürebilirsiniz.
- Mümkünse, diğer kişilerin kodunuzu deneyebilmesi için lütfen bir çevrimiçi test ortamına bağlantı ekleyin!
- Standart boşluklar yasaktır.
- Bu kod golfüdür, bu nedenle her zamanki golf kuralları geçerlidir ve en kısa kod (bayt cinsinden) kazanır.
(v*2)[i+j]
güzel hile