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

  • Hidden Wolf TV

    Hidden Wolf

    1 EKİM 2009
  • Living Waters

    Living Water

    9 AĞUSTOS 2006
  • UberFacts

    UberFacts

    26 EKİM 2013