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)

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)

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ÅŸ:

Nasıl GCC kullanılmayan bir değişken b...
İç içe geçmiş bir döngü kesiliyor...
Döngü için dal ve dizi anahtar...
Döngü inversion tekniği nedir?...
Java: birden çok değişken döngü başlat...