魔方很難?用Excel就能輕松搞定

魔方這個看似很難的兒童益智玩具,在小編認(rèn)為對IT來說應(yīng)該是一個很簡單的公式問題。因為一個excel就能輕松搞定。

魔方陣是一個非常有趣的數(shù)學(xué)問題,是指由自然數(shù)1~N2(次方)(N為奇數(shù))構(gòu)成的方陣,其各行、各列以及對角線元素之和均相等(如下圖所示)。魔方陣的數(shù)學(xué)排列算法很復(fù)雜,若不懂得排列規(guī)律,很難排出魔方陣!本文不僅介紹了一種簡單的排列方法,而且還巧用Excel中的單元格和宏代碼的結(jié)合將其排列過程動態(tài)地呈顯出來(速度由用戶自己控制),呈現(xiàn)出來之后還可借助Excel中的求和函數(shù)對各行、各列進(jìn)行求和驗證。更不可思議的是宏代碼只有25行,簡練程度勝過任何編程工具!

一、算法簡介

先將所有單元格清空,讀取階數(shù)N之后把1放入第一行的最中間一列,此后依次尋找2到N2(次方)這些數(shù)放入的位置,基本算法是:下一個數(shù)放在前一個數(shù)的上一行的下一列(第一行的上一行是最后一行,最后一列的下一列是第一列);如果此位置已被占用(單元格的內(nèi)容非空),則將它放在前一個數(shù)的下面。

注:任一單元格(H行L列)的地址可表示為Chr(L+64) & H,其中Chr是取字符的函數(shù)。

二、用Excel實現(xiàn)的方法

1.界面設(shè)計

啟動Excel,通過“視圖”菜單打開“窗體”工具欄,在第一行添加一個按鈕控件,并在彈出的對話框中單擊“新建”按鈕,進(jìn)入宏代碼編輯窗口。

2.錄制宏在宏代碼編輯窗口中輸入以下代碼:

3、運(yùn)行

關(guān)閉宏代碼窗口,

進(jìn)入Excel后先單擊任一單元格或按Esc鍵

以取消按鈕的編輯狀態(tài);然后單擊前面添加的按鈕就可運(yùn)行:在彈出的對話框中先輸入要顯示的魔方陣的階數(shù),然后輸入顯示整個魔方陣所用的時間;此后就可看到魔方陣中元素的動態(tài)排列過程。感興趣的讀者可借助Excel提供的函數(shù)進(jìn)行求和驗證。

4、說明

如果將宏代碼及界面保存成Excel文件,下次打開時將提示:該文件中包含宏,宏可能會攜帶病毒

…等信息;自己編寫的這段宏是安全的,選擇“啟用宏”即可。

本代碼在Excel2000中運(yùn)行通過。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 也許你已經(jīng)做了上千張表格,也許你用函數(shù)算了上千復(fù)雜的運(yùn)算。也許認(rèn)為excel不過如此,今天25招秘技希望可以幫到大...
    南屋阿米佛頭閱讀 3,833評論 0 51
  • 1.1 VBA是什么 直到90年代早期,使應(yīng)用程序自動化還是充滿挑戰(zhàn)性的領(lǐng)域.對每個需要自動化的應(yīng)用程序,人們不得...
    浮浮塵塵閱讀 22,141評論 6 49
  • 一、誤刪資料恢復(fù) 一不小心刪錯了,還把回收站清空了,咋辦???只要三步,你就能找回你刪掉并清空回收站的東西。 步驟:...
    八爺君閱讀 1,619評論 2 7
  • 別和我說你不會EXCEL,半小時讓你成為EXCEL高手,據(jù)說,80%以上的人看了這個,都相見恨晚,你會么?如果我們...
    夏洛克的克閱讀 8,628評論 4 268
  • 本例為設(shè)置密碼窗口 (1) If Application.InputBox(“請輸入密碼:”) = 1234 Th...
    浮浮塵塵閱讀 14,735評論 1 20

友情鏈接更多精彩內(nèi)容