【问题标题】:Java to Swift - How to use math.pow and math.exp in Xcode 6Java to Swift - 如何在 Xcode 6 中使用 math.pow 和 math.exp
【发布时间】:2015-02-17 18:18:37
【问题描述】:

我正在尝试应用我的 java 代码以在 swift 语言下工作,但遇到了一些问题。

我在 Java 中的部分代码使用了 math.pow(number,power) 和 math.exp() 但我不完全确定如何在 swift 语言中使用它。

例如,在 Java 中:

diffAggregate = 0;
for (kIndex = 0; kIndex < NK_VALUES.length; kIndex ++) {
    diffSegment = NKVALUES[kIndex];
    diffSegment *= Math.pow(rhoR, IK_VALUES[kIndex]);
    diffSegment *= Math.pow(tempR, JK_VALUES[kIndex]);
    iFactor = 0;
    if (LK_VALUES[kIndex] > 0 {
       diffSegment *= Math.exp(-1 * Math.pow(rhoR,LK_VALUES[kIndex]);
       iFactor = LK_VALUES[kIndex] * Math.pow(rhoR, LK_VALUES[kIndex]);
       }
    if (PK_VALUES[kIndex] > 0 {
       diffSegment *= Math.exp(-1 * PK_VALUES[kIndex] * Math.pow(rhoR, 2) - BK_VALUES[kIndex] * Math.pow(tempR - UK_VALUES[kIndex], 2));
       iFactor  = 2 * rhoR * PK_VALUES[kIndex] * (rhoR - 1);
    }
diffAggregate += (diffSegment * (IK_VALUES[kIndex] - iFactor));
}

任何帮助将不胜感激!非常感谢您。

【问题讨论】:

标签: java ios xcode swift math


【解决方案1】:

首先,为了使这些函数可用,您的代码需要在顶部具有以下导入之一:

import Foundation //Generic
import UIKit      //iOS
import Cocoa      //OS X

Java 的Math.pow 的Swift 版本就是pow(Double, Double)。第一个参数是基数,第二个是幂。

Math.ex 没有直接替代品,但您可以使用pow(M_E, 2) 来查找 e^2。 M_E 是一个定义的常数,等于欧拉常数。

编辑:事实证明,Swift 中有一个exp(Double) 函数。我上面展示的方式很可能是它的定义方式,但在这么说之前我可能应该做更多的研究。所以pow(M_E,2)exp(2) 都是选项。

【讨论】:

  • 函数exp(x)怎么样?
  • @blacksquare 抱歉。在发布之前应该调查一下。
猜你喜欢
  • 2013-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-24
  • 1970-01-01
  • 2014-08-04
  • 2015-01-31
  • 2014-12-10
相关资源
最近更新 更多