Steiner Zincirleri, aşağıdaki dairelerde görüldüğü gibi, her bir dairenin kesişmeyen diğer 2 daireye ve zincirin önceki ve sonraki dairelerine teğet olduğu bir N daire kümesidir:
Bu meydan okumada, Steiner zincirlerini tekrar tekrar çeken bir program / işlev yazacaksınız, yani belirli bir zincirin çevreleri başka bir zincir yinelemesinin temel daireleri olacak:
Meydan okuma
Görüntü boyutlarını kabul eden bir program / işlev ve zincirlerin birbirini izleyen her yinelemesindeki dairelerin seviyesini belirten bir tamsayı listesi yazın ve bir görüntüyü kendisine çizilen özyinelemeli Steiner zincirleri ile çıktılayın.
Giriş
Programınız / işleviniz 2 argümanı kabul edecektir:
s- görüntünün genişliği ve yüksekliğils- en üst zincirden en alt zincire kadar sıralanan her ardışık zincir yinelemesinde mevcut olan daire sayısını gösteren pozitif tamsayıların listesi
Çıktı
Programınız / fonksiyonunuz, tekrar eden Steiner zincirini gösteren sx boyutunda bir görüntü verir s.
- Üst düzey taban çemberi, görüntünün
siçinde ortalanmış, çapı olan görüntü kadar büyük olacaktır. - İşleri kolaylaştırmak için bir Steiner zincirinin 2 temel dairesi eşmerkezli olacak, yani 2 temel dairenin merkez noktaları aynı olacak
- Bir dış yarıçapı, göz önüne alındığında
R, ve çemberlerin sayısı bir zincirdeN, iç yarıçap formülüR'olanR' = (R-R*sin(pi/N))/(sin(pi/N)+1) - Zincirin daireleri ve iç taban dairesi, zincirlerin bir sonraki yinelemesinin dış taban daireleri olacaktır
- Zincir çemberleri boyunca tekrarlanırken, bir sonraki zincirin sırası,
ls - Bir zincirin iç çemberi boyunca tekrarlanırken, emir ebeveynlerin emriyle aynı olmalıdır (örnek [5,2]):

- Tüm zincirler, uzunluğun derinliğinde özyinelemeyi sonlandırmalıdır
ls - Zincirlerin dönmesi önemli değildir:

- Bununla birlikte, özyinelemeli zincirlerin ebeveynlerinin merkez noktasına göre dönüşleri aynı olmalıdır:

- Tüm daireler bir anahat veya düz dolgu ile çizilmelidir
- Renk seçimi uygulamaya bırakılır, boşluklar için saklanır (örneğin, her şeyi aynı renkle doldurur)
Örnek İşlemler
Aşağıdaki örneklerde renk ile belirlenir (depth of the recursion)^4.
Burada kaynak bulabilirsiniz .
chain(600,[5,4,3])
chain(600,[11,1,1,1,1,1,1])
chain(600,[5,6,7,8,9])







