BilgiTeknoloji.net    
b i l g i   t e k n o l o j i   y a z ı l ı m

Ana Sayfa

Marjinal XML Access Pratik Uygulamalar Projeler Ekonometri Dilimiz Editörden Çetrefil İletişim
 

Sihirli Kare

Sonsuz büyüklüğe kadar tek sayıda uzunluklu sihirli kareler oluşturulmak için aşağıdaki yöntemi kullanabilirsiniz. Yöntemin sahibini bilmiyor olmakla birlikte, 770-840 yıllarında yaşamış, Cebir'in kurucusu, "Sıfır"ın ve "Sayı sistemleri"nin mucidi El-Harezmi'nin buluşu olduğunu duymuştum.

Bu yöntemde, N tek sayı olmak üzere NxN boyutlu sihirli karenizi dış tarafından 45 derece eğimle daha büyük bir başka kare ile sarmak gerekiyor. Soldan başlayıp sağ yukarı gidecek şekilde 1'den başlayarak N^2'ye kadarki tüm sayıları sırayla yerleştirin.

Ortadaki ilk karenin dışında kalan hücrelerde bulunan sayıları kendi doğrultularında içeri almak gerekiyor. Kural olarak her sayı, kendi doğrultusunda N uzaklıktaki hücreye yerleştirilmelidir.

1-65025 arası sayıların yatay, dikey ve çapraz toplamlarının aynı olacak şekilde yerleştirildiği 255x255 boyutlu sihirli kare örneğini buradan açın.
 

[MS Excel]

Sub SihirliKare()
'''Serkan Şahinoğlu, 2005/11
'''http://BilgiTeknoloji.net

  Const BOYUT = 255
  
  Dim YARIM As Long
  YARIM = BOYUT \ 2
  
  Dim i As Long, j As Long
  Dim satir As Long, sutun As Long, sayi As Long
  
  For i = 1 To BOYUT
    For j = 1 To BOYUT
      
      satir = BOYUT - j + i
      sutun = j + i - 1
      sayi = (i - 1) * BOYUT + j
      
      If satir <= YARIM Then
         Cells(satir + BOYUT - YARIM + 1, sutun - YARIM + 1) = sayi
      ElseIf sutun <= YARIM Then
         Cells(satir - YARIM + 1, sutun + BOYUT - YARIM + 1) = sayi
      ElseIf satir > BOYUT + YARIM Then
         Cells(satir - BOYUT - YARIM + 1, sutun - YARIM + 1) = sayi
      ElseIf sutun > BOYUT + YARIM Then
         Cells(satir - YARIM + 1, sutun - BOYUT - YARIM + 1) = sayi
      Else
         Cells(satir - YARIM + 1, sutun - YARIM + 1) = sayi
      End If
      
    Next
  Next

End Sub

Tüm sihirli karelerin kısıtlama olmaksızın oluşturulması hakkında bilgiler için Prof. Dr. Asker Ali ABİYEV'in sitesini www1.gantep.edu.tr/~abiyev/ adresinden ziyaret edebilirsiniz. Kendisi sihirli karelerin doğal şifresini 1997 yılında Barcelona'da sunmuştur.

Örnek excel dosyasını yükleyin.
sihirli_kare.rar
(34 kb.)

 

Serkan Şahinoğlu
18.11.2005


http://BilgiTeknoloji.net