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

  • george sarintzotis

    george sarin

    2 Aralık 2007
  • Howcast

    Howcast

    4 EKİM 2007
  • The Amazing Atheist

    The Amazing

    20 Kasım 2006