📄 advancedmath.as
字号:
//Class:AdvancedMath Author:Swfdong Date:2007-7-1package { import Fraction; public class AdvancedMath { private static var tResult:Fraction; private static var tNumber:Number=0; function AdvancedMath() { } //加法 public static function plus(num1:Fraction,num2:Fraction):String { tResult=new Fraction("1|1"); tNumber=lcm(num1.denominator,num2.denominator); tResult.denominator=tNumber; tResult.numerator=fix(num1.numerator*(tNumber/num1.denominator)+num2.numerator*(tNumber/num2.denominator)); return tResult.value; } //减法 public static function minus(num1:Fraction,num2:Fraction):String { tResult=new Fraction("1|1"); tNumber=lcm(num1.denominator,num2.denominator); tResult.denominator=tNumber; tResult.numerator=fix(num1.numerator*(tNumber/num1.denominator)-num2.numerator*(tNumber/num2.denominator)); return tResult.value; } //乘法 public static function multiply(num1:Fraction,num2:Fraction):String { tResult=new Fraction("1|1"); tResult.denominator=num1.denominator*num2.denominator; tResult.numerator=fix(num1.numerator*num2.numerator); return tResult.value; } //除法 public static function divide(num1:Fraction,num2:Fraction):String { tResult=new Fraction("1|1"); tResult.denominator=num1.denominator*num2.numerator; tResult.numerator=fix(num1.numerator*num2.denominator); return tResult.value; } //乘方 public static function pow(num1:Fraction,num2:Fraction):String { tResult=new Fraction("1|1"); tNumber=num2.numerator/num2.denominator; tResult.denominator=Math.pow(num1.denominator,tNumber); var tPow:Number=Math.pow(num1.numerator,tNumber); tResult.numerator=fix(Math.pow(num1.numerator,tNumber)); return tResult.value; } //sin public static function sin(num:Fraction):String { return Math.sin(num.numerator / num.denominator / 180 * Math.PI); } //cos public static function cos(num:Fraction):String { return Math.cos(num.numerator / num.denominator / 180 * Math.PI); } //tan public static function tan(num:Fraction):String { return Math.tan(num.numerator / num.denominator / 180 * Math.PI); } //cot public static function cot(num:Fraction):String { return 1 / Math.tan(num.numerator / num.denominator / 180 * Math.PI); } //arcsin public static function arcsin(num:Fraction):String { return fix(Math.asin(num.numerator / num.denominator * 180 / Math.PI)); } //arccos public static function arccos(num:Fraction):String { return fix(Math.acos(num.numerator / num.denominator * 180 / Math.PI)); } //arctan public static function arctan(num:Fraction):String { return fix(Math.atan(num.numerator / num.denominator * 180 / Math.PI)); } //最小公倍数 public static function lcm(num1:Number,num2:Number):Number { var min:Number=Math.min(Math.abs(num1),Math.abs(num2)); var max:Number=Math.max(Math.abs(num1),Math.abs(num2)); for (var i:Number = 1; i<Infinity; i++) { if ((min*i)%max == 0 ) { return min * i * num1 / num2 / Math.abs(num1 / num2); } } } //最大公约数 public static function gcd(num1:Number,num2:Number):Number { var min:Number=Math.min(Math.abs(num1),Math.abs(num2)); var max:Number=Math.max(Math.abs(num1),Math.abs(num2)); for (var i:Number =min; i>-Infinity; i--) { if (min%i == 0 &&max%i==0) { return i * num1 / num2 / Math.abs(num1 / num2); } } } //保留有效位数 public static function fix(num:Number):Number { var tNum:Number=Math.abs(num%1); tNumber=(tNum>0.0000000001)?num:Math.round(num); tNumber=(1-tNum>0.0000000001)?tNumber:Math.round(num); return tNumber; } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -