分数是一个不是整数而是由两个数字组成的量。分数有两部分:分子和分母,以“/”分隔。分数的例子是: 15/2, 35/6
分数应始终以简化(或最简单)形式表示,其中没有分子和分母的公倍数。
为了将分数简化为最简单的形式,计算其分子和分母的最大公约数 (GCD)。GCD是分子和分母的公倍数中最大的数。
分子和分母都除以 GCD 得到分数的约简形式。在上述情况下,56 和 12 的 GCD 是 4,分子和分母除以 4 得到 14/3,这是最简单的分数形式。
分数的
运算 所有数学运算也对分数进行,但有不同的方法。常见的操作有:
加法:将两个分数相加,第一个分数的分子乘以第二个分数的分母,第二个分数的分子乘以第二个分数的分母,两者相加形成所得分数的分子。所得分数的分母由两个分数的分母相乘确定。最后,所得分数减少到最低形式。
例如, 2/7 + 7/4 = (2 * 4) + (7 * 7) / (7 * 4) = 57/28
减法: 与加法类似,第一个分数的分子乘以第二个分数的分母,第二个分数的分子乘以第二个分数的分母,两者相减以形成所得分数的分子。所得分数的分母由两个分数的分母相乘确定。例如, 11/3 – 2/5 = (11 * 5) – (2 * 3) / (3 * 5) = 49/15
乘法:这是直截了当的。第一个分数的分子乘以第二个分数的分子,第二个分数的分母乘以第二个分数的分母。最后,所得分数被简化为最简单的形式。 例如, 14/5 * 2/7 = (14 * 2) / (5 * 7) = 28/35 = 4/5(简化为最简单的形式)
除法:第一个分数的分子与第二个的分母相乘,第一个分数的分母与第二个的分子相乘,得到的分数简化为最简单的形式。例如, 12/7 ÷ 4/3 = 36/28 = 9/7(简化为最简单的形式)
使用java程序操作
下面给出了对分数执行上面列出的所有数学运算的 Java 程序。
public class Fraction {
int numerator;
int denominator;
/**
* Constructor
*
* @param numr
* @param denr
*/
public Fraction(int numr, int denr) {
numerator = numr;
denominator = denr;
reduce();
}
public int getNumerator() {
return numerator;
}
public void setNumerator(int numerator) {
this.numerator = numerator;
}
public int getDenominator() {
return denominator;
}
public void setDenominator(int denominator) {
this.denominator = denominator;
}
/**
* Calculates gcd of two numbers
*
* @param numerator
* @param denominator
* @return
*/
public int calculateGCD(int numerator, int denominator) {
if (numerator % denominator == 0) {
return denominator;
}
return calculateGCD(denominator, numerator % denominator);
}
/**
* Reduce the fraction to lowest form
*/
void reduce() {
int gcd = calculateGCD(numerator, denominator);
numerator /= gcd;
denominator /= gcd;
}
/**
* Adds two fractions
*
* @param fractionTwo
* @return
*/
public Fraction add(Fraction fractionTwo) {
int numer = (numerator * fractionTwo.getDenominator()) + (fractionTwo.getNumerator() * denominator);
int denr = denominator * fractionTwo.getDenominator();
return new Fraction(numer, denr);
}
/**
* Subtracts two fractions
*
* @param fractionTwo
* @return
*/
public Fraction subtract(Fraction fractionTwo) {
int newNumerator = (numerator * fractionTwo.denominator) - (fractionTwo.numerator * denominator);
int newDenominator = denominator * fractionTwo.denominator;
Fraction result = new Fraction(newNumerator, newDenominator);
return result;
}
/**
* Multiples two functions
*
* @param fractionTwo
* @return
*/
public Fraction multiply(Fraction fractionTwo) {
int newNumerator = numerator * fractionTwo.numerator;
int newDenominator = denominator * fractionTwo.denominator;
Fraction result = new Fraction(newNumerator, newDenominator);
return result;
}
/**
* Divides two fractions
*
* @param fractionTwo
* @return
*/
public Fraction divide(Fraction fractionTwo) {
int newNumerator = numerator * fractionTwo.getDenominator();
int newDenominator = denominator * fractionTwo.numerator;
Fraction result = new Fraction(newNumerator, newDenominator);
return result;
}
/**
* Returns string representation of the fraction
*/
@Override
public String toString() {
return this.numerator + "/" + this.denominator;
}
public static void main(String[] args) {
Fraction f1 = new Fraction(25, 35);
System.out.println(f1.toString());
Fraction f2 = new Fraction(2, 7);
Fraction f3 = f1.add(f2);
System.out.println("Result of addition of " + f1 + " and " + f2 + " is : " + f3);
f3 = f1.subtract(f2);
System.out.println("Result of subtraction of " + f1 + " and " + f2 + " is : " + f3);
f3 = f1.divide(f2);
System.out.println("Result of division of " + f1 + " and " + f2 + " is : " + f3);
f3 = f1.multiply(f2);
System.out.println("Result of multiplication of " + f1 + " and " + f2 + " is : " + f3);
}
}
输出
7/4 和 2/7 相加的
结果是:57/28 7/4 和 2/7 相减的
结果是:41/28 7/4 和 2/7 相除的
结果是:49/8 7/4 和 2/7 的乘法是:1/2
解释
上面的类描述了一个 Fraction ,它有两个字段代表分数的分子和分母。该类具有用于初始化分数字段的构造函数。
它还包含一种reduce
将分数转换为其简化形式的方法。因此,调用分数 25/35 的此方法将其转换为 5/7。它在内部计算分数的 gcd,它是分数的分子和分母的最大倍数,然后将分子和分母除以这个 gcd。
计算gcd的方法是一种递归方法,它不断调用自己,直到分子除以分母的余数为0。因此,对于分子为25,分母为35的分数,最大公约数为5,简化分数变为( 25 ÷ 5) / (35 ÷ 5) = 5/7。
该类包含对分数进行加、减、乘和除的方法,并处理如上所述的类似算法。
所有这些方法都接受一个 Fraction 对象作为参数,作为第二个分数。第一个部分是调用这些方法的对象。
该类还包含一个toString()
方法,该方法以分数的“分子/分母”的形式返回分数的字符串版本。