首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >创建用于转换的数学公式

创建用于转换的数学公式
EN

Stack Overflow用户
提问于 2015-04-19 05:42:24
回答 2查看 80关注 0票数 0

我想知道我是否能得到一些帮助来创建一个简单的数学公式。最近,我接受了一次tier1程序员的面试,并被要求编写一个程序。我把整个事情做得很好,但让我面试失败的是,我需要创建一个数学公式来将不同的度量单位转换为其他度量单位。这很容易,但困难的是,我需要根据以英尺为单位的长度转换这些不同的度量单位。这真的让我很恼火,因为那家伙说我可以做一个方程式,这个方程式可以用于所有不同度量单位的转换。因此,给定的当前度量单位包含其原始度量单位和以英尺为单位的度量。该公式必须利用英尺的不同长度来进行这些转换。否则,我会通过除法和乘法得到我的答案。不同的度量单位如下所示:

代码语言:javascript
运行
复制
inch,.083333    
fathom,6    
foot,1    
furlong,660    
kilometer,3281.5    
meter,3.2815    
mile,5280    
rod,16.5    
yard,3 

逗号后面的数字是以英尺为单位的长度。我已经盯着这个看了几个小时了,但我想不出一个方程式来用来描述所有的长度。对于那些给予我帮助的人,我真的很感激,我开始对此感到失望。

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

EN

回答 2

Stack Overflow用户

发布于 2015-04-19 06:23:55

你可以这样做:

代码语言:javascript
运行
复制
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);
  }
}
票数 0
EN

Stack Overflow用户

发布于 2015-04-19 06:49:05

抛开实际问题不谈,你可以使用这样的等式:

长度=αvwᵀ

这里,α是以英尺为单位的长度,v是包含转换系数的向量(即0.08333,6,1,660,…)W是一个向量,像0,…,1,…,0,在对应于所需单位的索引处的值为1。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29723207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档