Dikdörtgen bir |
karakter ızgarasının, tezgâh üzerindeki gergin ipleri ( çözgü ) temsil ettiğini, temsil edeceğimiz diğer ipliklerin ( atkı ) -
etrafta dokunabileceğini hayal edin.
İşte 7 × 4 tezgahın dokunmamış çözgüsü:
|||||||
|||||||
|||||||
|||||||
Atkıların çözgü içine dokunabilmesinin birkaç yolu vardır, en basiti düz örgüdür .
Bir düz örgünün ilk sırasında atkı, birinci çözgü ipinin üzerinde başlar, ikinci ipin altına, daha sonra üçüncü ipin üstüne, sonra dördüncü altına vb. Gider.
İkinci atkı sırası birinciyle aynıdır, ancak bir çözgü ipi ile sağa kaydırılır, bu nedenle alttan başlar ve sonra devam eder.
7 × 4 tezgahımızda düz örgü şöyle görünür:
-|-|-|-
|-|-|-|
-|-|-|-
|-|-|-|
Biz atkı çözgü üzerine çıkması olduğunu söyleyerek düz dokuma tanımlayabilir 1 altında, ardından zaman 1 saat ve sonraki her satır kaydırılır 1 sağa dize.
Genelleştirilmiş bir örgü, atkının çözgü v zamanlarının ardından u zamanlarının altından geçerek her bir sıranın s telleri sağa kaydırılmasıyla tarif edilebilir . (Tüm değerler tamsayıdır, s 0 veya negatif olabilir, u ve v negatif olmamalıdır.)
V = 1 , u = 2 , s = 2 olan bir 7 × 4 dokuma tezgahı , bir tür dimi örgü :
-||-||-
||-||-|
|-||-||
-||-||-
Meydan okuma
Göreviniz, v , u , s , tezgahın genişliği ve yüksekliği ve ilk vardiya verilen dokuma çubuk ve çizgi deseni üreten en kısa programı (bayt cinsinden) yazmaktır .
İlk öteleme atkı ilk satır (örnekler yukarıda 0) sağa kaydırılır şeritlerinin sayısıdır. Birbirini takip eden her bir satır ile kaydırılır s birden fazla ipliklerin.
Programınız bu 6 sayıyı kullanımı kolay bazı formatlarda (stdin, fonksiyon çağrısı vb.) Almalı ve çubuk ve dikdörtgenlerin dokuma ızgarasını stdout'a çıkarmalıdır. Tüm girdilerin geçerli olduğunu varsayabilirsiniz. (Tüm değerler tamsayıdır, genişlik ve yükseklik pozitif olmalıdır, ilk kaydırma herhangi bir şey olabilir.)
Örnekler
genişlik = 5, yükseklik = 4, ilk kaydırma = 0, v = 1, u = 3, s = -2:
-|||-
||-||
-|||-
||-||
genişlik = 5, yükseklik = 4, ilk kaydırma = 3, v = 1, u = 3, s = -2:
|||-|
|-|||
|||-|
|-|||
genişlik = 5, yükseklik = 4, ilk kaydırma = 1, v = 1, u = 1, s = 0:
|-|-|
|-|-|
|-|-|
|-|-|
genişlik = 5, yükseklik = 4, ilk kaydırma = 0, v = 1, u = 0, s = 0:
-----
-----
-----
-----
notlar
- Desen her zaman atkı, ızgaranın sol üst köşesindeki çözgü üzerinden başlar (başlangıçta kaydırılmadıkça).
- Tüm atkı iplikleri soldan gelir. Onlar yok gibi sarmal bu .
- u + v , mutlaka ızgara genişliğinin bir katı değildir.
- u ve v her ikisi de 0 olmayabilir