プログラミングが上達するコツ
■ このスレッドは過去ログ倉庫に格納されています
0072デフォルトの名無しさん
2007/09/24(月) 04:37:49そのためにアルゴリズムの本も読む。
例えば、3変数x,y,zの最小値を見つける例。
ただし、わざとmin関数は使わない、という条件付。
実装1:素朴な方法
f(x,y,z)
if(x<=y)and(x<=z)then
return x
elsif(y<=x)and(y<=z)then
return y
else
return z
end
実装2:再帰を使う
f(x,y,z)
if(x<=y)and(x<=z)then
return x
else
retrun f(y,z,x) <---ここがポイント
end
実装3:if分岐先が比較結果フラグ値で決まっていることを利用
f(x,y,z)
retrun (x<=y)*(x<=z)*x + (y<=x)*(y<=z)*y + (z<=x)*(z<=y)*z
(ただし、真=1、偽=0の場合)
■ このスレッドは過去ログ倉庫に格納されています