Bir arborally tatmin noktası belirlendi noktaları 2B grubu olduğu şekilde, dikdörtgen içeren ya da dokunur en az bir başka nokta şekilde, karşıt köşeleri olarak ayarlandı iki nokta kullanılarak oluşturulabilir bir eksen hizalı dikdörtgen için. İşte Wikipedia'dan eşdeğer bir tanım:
Aşağıdaki özellik geçerliyse bir nokta kümesinin arboral olarak tatmin olduğu söylenir: her ikisi de aynı yatay veya dikey çizgide bulunmayan herhangi bir nokta çifti için, ilk iki noktanın kapsadığı dikdörtgenin içinde yer alan üçüncü bir nokta vardır ( içeride veya sınırda).
Aşağıdaki görüntü dikdörtgenlerin nasıl oluştuğunu göstermektedir. Bu dikdörtgenin en az bir nokta daha içermesi gerektiğinden, bu nokta kümesi tamamen tatmin edici DEĞİLDİR.
ASCII sanatında, bu nokta seti şu şekilde temsil edilebilir:
......
....O.
......
.O....
......
Küçük bir değişiklik bunu keyfi olarak tatmin edebilir:
......
....O.
......
.O..O.
......
Yukarıda, tüm dikdörtgenlerin (sadece bir tanesi vardır) en az üç nokta içerdiğini görebilirsiniz.
İşte, daha karmaşık bir nokta kümesinin, keyfi olarak tatmin edilen başka bir örneği:
İki noktayı kapsayan çizilebilecek herhangi bir dikdörtgen için, bu dikdörtgen en az bir başka nokta içerir.
Meydan okuma
Bir (I ile temsil noktalarının dikdörtgen bir ızgara verilen O
) ve boş alanını (I olan temsil eder .
), çıkış truthy bu arborally yerine getirildiği takdirde değer ya da bir Falsey değerin değilse. Bu kod golfü.
Ek kurallar:
- Karakterleri seçebilir
O
ve.
yazdırılabilir ASCII karakter çiftleriyle yer değiştirebilirsin. Programınızın hangi karakter eşlemesini kullandığını belirtmeniz yeterlidir. - Izgara her zaman dikdörtgen olacaktır. Sondaki satırsonuna izin verilir.
Daha fazla örnek
Arboral olarak memnunum:
.OOO.
OO...
.O.OO
.O..O
....O
..O..
OOOO.
...O.
.O.O.
...OO
O.O.
..O.
OOOO
.O.O
OO..
...
...
...
...
..O
...
O.....
O.O..O
.....O
OOO.OO
Tamamen Memnun Değil:
..O..
O....
...O.
.O...
....O
..O..
O.OO.
...O.
.O.O.
...OO
O.....
..O...
.....O