Home > Archives > January 2009
January 2009
[Flex]調和級数の部分和計算フォーム
- 2009-01-06 (Tue)
- 数学 , Flash/Flex , ActionScript
調和級数がどのように増加するのかを検証するために、調和級数の部分和を計算するツールを作りました。
PCスペックにもよりますが、x = 1000000(ひゃくまん)を入力するとアホほど時間がかかります。 なので1,000,000より上は入力できないようにしました。
計算結果は分数と小数両方表示します。 分数計算がめんどくさそうだったけど、ユークリッド互助法使って最大公約数を出す関数作ったら、それ使って最小公倍数も出せて結構簡単に 通分とか約分ができた。
上記2関数のソースを一応載せときます。
public class MathFunctions
{
/**
* 最大公約数を計算する
* @param m
* @param n
* @return
*
*/
public static function gcf(m:Number, n:Number):Number{
//負の数の場合は正の数に変換
m = Math.abs(m);
n = Math.abs(n);
while(true){
if(m < n){
var tmp:Number = m;
m = n;
n = tmp;
}
if(n == 0) return m;
if(m % n == 0){
return n;
}else{
m = m % n;
}
}
return 0;//コンパイルエラーを防ぐため(実際にはここに到達することはない)
}
/**
* 最小公倍数を計算する
* @param m
* @param n
* @return
*
*/
public static function lcm(m:Number, n:Number):Number{
var gcf:Number = gcf(m, n);
return m / gcf * n;
}
}