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

  • boniver

    boniver

    17 NİSAN 2006
  • LearnKey

    LearnKey

    19 AĞUSTOS 2008
  • Watcher3223

    Watcher3223

    15 Kasım 2007