アルゴリズムとして最も有名なユークリッドの互除法をNodeBoxで視覚化してみようというプロジェクトのプロトタイプ。せっかくアニメーションにしたのに動画アップ出来ないからだめだ。NodeBoxの環境入ってる人はぜひ試してみて。今後の発展としては互除法の過程を見せることですね。今は結果の視覚化だけだから、互除法の意味はないので互除しているところを見せつけるのと、最大公約数であることを視覚的に分かりやすく提示することを探る。
from random import randint size(320,240) speed(1) def draw(): j,k = randint(1,100),randint(1,100) gcd = euclid(j,k) tw = (320 - textwidth(gcd))/2 xj = (320 - textwidth(j))/2 - 75 xk = (320 - textwidth(k))/2 + 75 h = 120 text(j, xj, h - 30) text(k, xk, h - 30) text(gcd, tw, h + 40) #fill(125,125,125) for i in range(gcd): rect(155,180+2*i,10,1) def euclid(a,b): while b: a,b = b,a % b return a