为转化创建数学公式

时间:2015-04-18 21:42:24

标签: math solver units-of-measurement equation-solving

我想知道我是否可以尝试创建一个简单的数学公式。我最近接受了一次面试,作为一级程序员,被要求制作一个程序。我把整个事情做得很好但是让我在面试中失败的原因是我需要创建一个数学公式来将不同的度量单位转换为其他度量单位。这很容易,但是让我很难的是我需要根据给出的长度来换算这些不同的度量单位。这真是让我烦恼,因为那个人说我可以制作一个方程式,可用于所有转换到不同的测量单位。因此,给出的当前测量单位包含其原始测量单位和以英尺为单位的测量值。公式必须以英尺为单位使用不同的长度来进行这些转换。另外,我会通过分割和倍增所有内容来得到我的答案。不同的计量单位如下:

inch,.083333    
fathom,6    
foot,1    
furlong,660    
kilometer,3281.5    
meter,3.2815    
mile,5280    
rod,16.5    
yard,3 

逗号后面的数字是该度量单位的英尺长度。我一直在盯着这几个小时,但我无法弄清楚用于所有长度的等式。对于那些给我帮助的人,我真的很感激,我开始感到失败了。

为了编程,我使用X作为原始测量单位,Y作为所需的单位或度量,并使用Z作为需要转换的输入长度。 / p>

2 个答案:

答案 0 :(得分:0)

你可以这样做:

import java.util.HashMap;

public class ConvertLength {
  private static HashMap<String,Double> lengthInFeet
    = new HashMap<String,Double>();

  static {
    lengthInFeet.put("inch", 0.083333);
    lengthInFeet.put("inches", 0.083333);
    lengthInFeet.put("fathom", 6.0);
    lengthInFeet.put("fathoms", 6.0);
    lengthInFeet.put("foot", 1.0);
    lengthInFeet.put("feet", 1.0);
    lengthInFeet.put("furlong", 660.0);
    lengthInFeet.put("furlongs", 660.0);
    lengthInFeet.put("kilometer", 3281.5);
    lengthInFeet.put("kilometers", 3281.5);
    lengthInFeet.put("meter", 3.2815);
    lengthInFeet.put("meters", 3.2815);
    lengthInFeet.put("mile", 5280.0);
    lengthInFeet.put("miles", 5280.0);
    lengthInFeet.put("rod", 16.5);
    lengthInFeet.put("rods", 16.5);
    lengthInFeet.put("yard", 3.0);
    lengthInFeet.put("yards", 3.0);
  };

  public static double convert(double length, String from, String to) {
    return length * lengthInFeet.get(from) / lengthInFeet.get(to);
  }

  public static void main(String[] args) {
    double length = Double.parseDouble(args[0]);
    String from = args[1];
    String to = args [2];

    System.out.println(length + " " + from + " = "
               + convert(length,from,to) + " " + to);
  }
}

答案 1 :(得分:0)

除了实际问题,你可以使用这样的等式:

  

length =αvwᵀ

这里,α是以英尺为单位的长度,v是包含转换因子的向量(即[0.08333,6,1,660,...]),w是类似[0,...,1,...的向量, 0],索引处的值为1,与所需单位相对应。