SORU
29 Aralık 2008, PAZARTESİ


Bir spiral döngü

Bir arkadaşı onu bu yüzden olmak üzere bir matris (N ve M tuhaf) elemanları döngü izin verecek bir algoritma var. Bir çözüm buldum ama adam ÇOK katılan benim daha iyi bir çözüm ile gelip görmek istedim.

Bu soruya yanıt olarak benim çözüm gönderiyorum.

Örnek Çıktı:

3 x 3 matris için, çıktı olmalıdır:

(0, 0) (1, 0) (1, 1) (0, 1) (-1, 1) (-1, 0) (-1, -1) (0, -1) (1, -1)

3x3 matrix

Ayrıca, algoritma Kare olmayan matrislerin desteklemeli, 5x3 bir matris için örneğin, çıktı olmalıdır:

(0, 0) (1, 0) (1, 1) (0, 1) (-1, 1) (-1, 0) (-1, -1) (0, -1) (1, -1) (2, -1) (2, 0) (2, 1) (-2, 1) (-2, 0) (-2, -1)

5x3 matrix

CEVAP
29 Aralık 2008, PAZARTESİ


İşte benim çözüm (Python):

def spiral(X, Y):
    x = y = 0
    dx = 0
    dy = -1
    for i in range(max(X, Y)**2):
        if (-X/2 < x <= X/2) and (-Y/2 < y <= Y/2):
            print (x, y)
            # DO STUFF...
        if x == y or (x < 0 and x == -y) or (x > 0 and x == 1-y):
            dx, dy = -dy, dx
        x, y = x dx, y dy

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • CNNMoney

    CNNMoney

    16 Kasım 2006
  • MultiPlayStationMan

    MultiPlaySta

    17 Aralık 2009
  • SaraBeautyCorner - Nails and Nail Art Designs, DIY, Fashion & Makeup Tutorial

    SaraBeautyCo

    7 EKİM 2012