Skapa ett magiskt torg för valfritt antal - Excel-tips

För många år sedan arbetade jag på Telxon med Dave Strong. Dave hade nämnt att hans farfar skulle utföra ett trick där han skulle be någon i rummet om vilket nummer som helst. Han skulle då tänka mycket hårt och långsamt men medvetet bygga en 4x4-matris. Varje rad, kolumn och diagonal med siffror skulle uppgå till exakt det valda numret. Denna typ av figur kallas ett magiskt torg.

Daves farfar var Walter Wills Strong. Han var med KFUM i Europa under första världskriget och skulle förvåna trupperna med detta mentala trick. När Dave introducerade problemet för mig hittade jag en lösning för att skapa det grundläggande magiska torget med siffrorna 1 till 16 som lägger till 34. Daves farfar kunde dock komma med ett magiskt kvadrat för valfritt nummer. Nu, många år senare, har Dave upptäckt formeln för hur hans farfar gjorde detta trick. Med lite övning kan du lära dig tricket själv. Veckans tips kommer att tala om magiska rutor. Den visar den process som används av Daves farfar. Det kommer också att erbjuda två Excel-filer. En Excel-fil beräknar snabbt ett magiskt kvadrat för valfritt nummer. Den andra Excel-filen försöker replikera den trollande karaktären av den prestanda Daves farfar måste ha gett,komplett med en skäggig trollkarl.

Teorin för en grundläggande magisk torg

En 4x4-matris med siffror har två diagonaler. På bilden nedan består en diagonal av de fyra gula rutorna. En diagonal består av de fyra röda rutorna. De återstående åtta kantcellerna är färgade gröna.

För att bygga ett magiskt torg för 34, skriver du helt enkelt in siffrorna från 1 till 16 i ordning. Det finns en enkel vridning. Om du ska skriva ett nummer i en gul eller röd kvadrat, måste du skriva numret i cellen som är diagonalt mittemot den kvadraten. Till exempel faller 1 som går i det övre vänstra hörnet på en gul fyrkant. Cellen diagonalt mittemot denna kvadrat är faktiskt den 16: e rutan, i det nedre högra hörnet. Istället för att skriva 1 i den övre vänstra rutan, skriv den i den nedre högra rutan.

De kommande två siffrorna, 2 och 3 skulle falla i gröna rutor, så skriv dem på sin normala plats. Siffran 4 skulle falla i en röd fyrkant, så istället för att skriva det i det övre högra hörnet, skriv siffran 4 i det nedre vänstra hörnet.

Siffran 5 skrivs på rätt plats. 6 & 7 måste flyttas diagonalt, och 8 skrivs på rätt plats.

Fortsätt detta mönster för siffrorna 9 till 16. Du slutar så småningom med en enkel magisk fyrkant som lägger till upp till 34 i alla riktningar

En intressant twist

Daves farfar hade lite vridning på detta. För Daves farfar hade han motsatt regel. Allt som föll på en röd eller gul fyrkant skrevs på rätt plats. Allt som föll på en grön kantcell skrevs på det diagonalt motsatta torget. Hans grundtorg skulle ha sett ut som den här.

Jag föreslår att du lär dig något av de två ovanstående mönstren och håller fast vid det. Jag kommer att använda mönstret där siffror i de röda eller gula diagonalerna skrivs diagonalt mittemot deras normala läge.

Skapa ett magiskt torg för valfritt nummer

Hemligheten som användes av Daves farfar var att justera sitt startnummer. Han använde en beräkning i huvudet för att räkna ut ett annat startnummer än 1. Om du tänker på matematiken består varje summa på det magiska torget av 4 celler. Om du lade till en i varje cell, skulle den magiska kvadraten uppgå till 38, eftersom alla 4 cellerna ökades med 1. Här är ett magiskt kvadrat skapat med heltal från 2 till 17 istället för 1 till 16. Det uppgår till 38 istället för 34. All annan logik förblir densamma.

Nyckeln till att skapa en magisk fyrkant som lägger till vilket nummer som helst är att variera startnummer. Med lite algebra kan du förstå varför startnumret följer denna formel:

((Desired Number - 34) / 4 ) + 1

Här är Excel-arbetsboken för att skapa önskad Magic Square: AnyMagicSquare.xls.

Magic Square Genie

Denna arbetsbok använder Excel VBA-makron. För att genien ska fungera måste du tillåta att makron körs när du öppnar den här arbetsboken. För att aktivera makron, följ dessa steg innan du laddar ner arbetsboken.

  • Öppna Excel
  • Välj Verktyg> Makro> Säkerhet på menyn
  • Ändra inställningen till Medium
  • Ladda ner och öppna arbetsboken
  • När arbetsboken öppnas får du besked om att det finns makron. Välj att aktivera.

Jag skrev detta program för att simulera föreställningen från Daves farfar. Även om det inte är lika imponerande som någon som gör matematiken personligen med en penna och ett papper, ger det dig fortfarande en uppfattning om hur föreställningen skulle gå. Klicka på Genie för att starta så ber han dig om ett nummer. Genie tänker sedan på problemet.

Genien börjar långsamt fylla i siffror.

När raderna är färdiga tänds raden och kolumntotalen för att indikera att raderna är rätt.

Så småningom får genien rätt kvadrat och erbjuder att göra en annan.

Ladda ner en zippad version av Magic Square Genie.

Ett tips på hatten till Dave Strong och hans farfar Walter Wills Strong för att de förde vidare den här tekniken.

För att lära dig mer om hur du använder VBA för att automatisera Excel-problem, kolla in VBA och makron för Microsoft Excel, skrivet av Bill Jelen och Tracy Syrstad.

Uppdatering från december 2005

En annan metod som endast använder heltal

I november 2005 skrev Ray Battersby att det måste finnas ett sätt att göra en magisk fyrkant för valfritt antal över 30 med endast heltal utan decimaler. Ray identifierade att du kunde lägga till en till fyra specifika celler i matrisen. På Magic Square för 34, ordna siffrorna i numerisk ordning och ta varannan cell med det lägsta. I bilden nedan identifierade Ray cellerna som innehåller 1, 3, 5 och 7.

För att ändra detta till en magisk fyrkant för 35, lägg till en i var och en av de gula cellerna.

För att använda Rays metod drar du 30 från önskat resultat. Dela det numret med 4. Heltalsdelen blir startsiffran och resten blir det nummer som du lägger till de fyra gula cellerna. Till exempel för att skapa en magisk fyrkant för 33:

  • 33-30 är 3
  • 3 dividerat med 4 är 0 och resten 3
  • Startnumret är 0 som visas som det mellanliggande resultatet nedan
  • Lägg till 3 till var och en av de gula cellerna som visas i slutresultatet nedan

Som Ray noterar betyder detta att några av siffrorna upprepas i matrisen.

Tack till Ray för att du delar den här metoden.

Uppdatering från jan 2008

Richard Letsinger skrev in för att notera att Rays metod skulle fungera för alla heltal, positiva eller negativa. Metoden är inte bara begränsad till heltal över 30.

Intressanta artiklar...