首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从Swift沙箱中绘制数据?

如何从Swift沙箱中绘制数据?
EN

Stack Overflow用户
提问于 2017-02-03 23:21:58
回答 1查看 370关注 0票数 0

我正在练习Swift 3.x,我需要绘制一些数据。问题是,我只需要使用IBM的在线Swift沙箱。绘图的目的是了解单精度代码如何受到求和的影响:

我写了一些代码来做这件事,但现在我不知道如何画这个图。我怀疑斯威夫特不知何故能拿出一个窗口来密谋,更不用说在网上的沙箱里运行了。

附带注意:我也许可以在我的大学里把VNC转到Mac电脑上使用Xcode。如果我将相同的代码粘贴到一个Xcode项目中,它会不会制作一些情节呢?

,这是代码,如果您想看的话。现在我需要为N=1 N=1,000,000**.**运行这段代码

代码语言:javascript
复制
import Foundation

func sum1(N: Int) -> Float {

    var sum1_sum: Float = 0.0
    var n_double: Double = 0.0

    for n in 1...(2*N) {

        n_double = Double(n)
        sum1_sum += Float(pow(-1.0,n_double)*(n_double/(n_double+1.0)))
    }

    return sum1_sum
}

func sum2(N: Int) -> Float {

    var sum2_sum: Float = 0.0
    var n_double: Double = 0.0
    var sum2_firstsum: Float = 0.0
    var sum2_secondsum: Float = 0.0

    for n in 1...N {

        n_double = Double(n)
        sum2_firstsum += Float((2.0*n_double - 1)/(2.0*n_double))
        sum2_secondsum += Float((2.0*n_double)/(2.0*n_double + 1))

    }

    sum2_sum = sum2_secondsum - sum2_firstsum //This is where the subtractive cancellation occurs
    return sum2_sum
}

func sum3(N: Int) -> Float {

    var sum3_sum: Float = 0.0
    var n_double: Double = 0.0

    for n in 1...N {

        n_double = Double(n)
        sum3_sum += Float(1/(2.0*n_double*(2.0*n_double + 1)))
    }

    return sum3_sum
}

print("Sum 1:", sum1(N: 1000000))
print("Sum 2:", sum2(N: 1000000))
print("Sum 3:", sum3(N: 1000000))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-04 03:01:01

是的,声音防御是对的。没有从Swift沙箱直接绘图输出。不过,我建议您仍然使用Swift沙箱。只需运行代码,并复制并粘贴以逗号分隔格式的输出到Excel或MATLAB绘制它。作为示例,我对您的sum2做了一些调整,同时也使它在这个过程中更加实用:

代码语言:javascript
复制
   func sum2(N: Int) -> Float {

    let a: Float = (1...N).reduce(0) {
        let nDouble = Double($1)
        return Float((2.0 * nDouble - 1) / (2.0 * nDouble)) + $0
    }

    let b: Float = (1...N).reduce(0) {
        let nDouble = Double($1)
        return Float((2.0 * nDouble) / (2.0 * nDouble + 1)) + $0
    }

    return b - a
}

let N = 10
let out = (1...N).map(){ sum2(N: $0)}
let output = out.reduce(""){$0 + "\($1), "}
print(output)

0.166667 0.216667 0.240476 0.254365 0.263456 0.269867 0.274629 0.278306 0.28123 0.283611

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

https://stackoverflow.com/questions/42034578

复制
相关文章

相似问题

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