和国知恵較(わこくちえくらべ) 享保12年(1727)
和算の里みしま_パンフレット_HP.pdf
https://e-mishima.info/wp-content/uploads/2020/02/74a075f30cb806eef4a9a25c4a71608e.pdf
キーワード:魔方陣
#Julia #SymPy #算額 #和算 #数学
図の「い」から「ち」に 2 〜 9 の数字を当てはめ,2 つの円周に書かれている数を足しても,また,中心の 1 を除くどの直径に書かれている数を足しても,皆同じになるように数を並べなさい。

2 〜 9 の数字の並べ替え(順列)を行い,4 方向の和が等しくなるものを列挙する。
include("julia-source.txt"); # julia-source.txt ソース
using Combinatorics
count = 0
a = 2:9
p = collect(1:16)
for i in 1:factorial(length(a))
(い, ろ, は, に, ほ, へ, と, ち) = b = nthperm(a, i)
x = い + ろ + は + に
if x == ほ + へ + と + ち && x == い + ほ + と + は && x == ろ + へ + ち + に
count += 1
mod(count, 48) == 1 && println(b)
end
end
768 通りもある。

描画関数プログラムのソースを見る
function draw(x)
pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
pos = [0 2; 2 0; 0 -2; -2 0; 0 1; 1 0; 0 -1; -1 0]
r = 0.4
p = plot(showaxis=false)#, fontsize=24)
delta = (fontheight = (ylims()[2]- ylims()[1]) / 500 * 10 * 2) /3 # size[2] * fontsize * 2
circle(0, 0, 1, :gray80)
circle(0, 0, 2, :gray80)
segment(0, -2, 0, 2, :gray80)
segment(-2, 0, 2, 0, :gray80)
circle(0, 0, r)
rotate(0, 2, r, angle=90)
rotate(0, 1, r, angle=90)
println(x)
annotate!(0, 0, text("1", 12, :blue, :center, :vcenter))
for i = 1:8
annotate!(pos[i, 1], pos[i, 2], text(string(x[i]), 12, :blue, :center, :vcenter))
end
return p
end;
draw([2, 3, 8, 9, 5, 4, 7, 6])
以下のアイコンをクリックして応援してください