如何绘制来自 Swift 沙箱的数据?
How can I plot data from a Swift sandbox?
我正在练习 Swift 3.x,我需要绘制一些数据。问题是我真的只有 IBM's online Swift sandbox 可以使用。绘图的目的是了解单精度代码如何受求和的影响:
我写了一些代码来做到这一点,但现在我不知道如何绘制它。我怀疑 Swift 能否以某种方式调出 window 用于绘图,更不用说当 运行 通过在线沙箱时这样做了。
旁注:我 可能 能够将 VNC 连接到我大学的 Mac 计算机上以使用 Xcode。如果我将相同的代码粘贴到一个 Xcode 项目中,它可以生成图吗?
如果您想查看代码,请查看此代码。我现在需要 运行 N=1
到 N=1,000,000
的代码。
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))
是的,@TheSoundDefense 是对的。 Swift Sandbox 没有直接的绘图输出。但是,我建议您仍然使用 Swift 沙盒。只需 运行 代码,然后将 comma-delimited 格式的输出复制并粘贴到 Excel 或 MATLAB 中进行绘制。作为示例,我对您的 sum2 进行了一些调整,同时还使其在此过程中更具功能性:
func sum2(N: Int) -> Float {
let a: Float = (1...N).reduce(0) {
let nDouble = Double()
return Float((2.0 * nDouble - 1) / (2.0 * nDouble)) + [=10=]
}
let b: Float = (1...N).reduce(0) {
let nDouble = Double()
return Float((2.0 * nDouble) / (2.0 * nDouble + 1)) + [=10=]
}
return b - a
}
let N = 10
let out = (1...N).map(){ sum2(N: [=10=])}
let output = out.reduce(""){[=10=] + "\(), "}
print(output)
0.166667、0.216667、0.240476、0.254365、0.263456、0.269867、0.274629、0.278306、0.28123、0.283611,
我正在练习 Swift 3.x,我需要绘制一些数据。问题是我真的只有 IBM's online Swift sandbox 可以使用。绘图的目的是了解单精度代码如何受求和的影响:
我写了一些代码来做到这一点,但现在我不知道如何绘制它。我怀疑 Swift 能否以某种方式调出 window 用于绘图,更不用说当 运行 通过在线沙箱时这样做了。
旁注:我 可能 能够将 VNC 连接到我大学的 Mac 计算机上以使用 Xcode。如果我将相同的代码粘贴到一个 Xcode 项目中,它可以生成图吗?
如果您想查看代码,请查看此代码。我现在需要 运行 N=1
到 N=1,000,000
的代码。
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))
是的,@TheSoundDefense 是对的。 Swift Sandbox 没有直接的绘图输出。但是,我建议您仍然使用 Swift 沙盒。只需 运行 代码,然后将 comma-delimited 格式的输出复制并粘贴到 Excel 或 MATLAB 中进行绘制。作为示例,我对您的 sum2 进行了一些调整,同时还使其在此过程中更具功能性:
func sum2(N: Int) -> Float {
let a: Float = (1...N).reduce(0) {
let nDouble = Double()
return Float((2.0 * nDouble - 1) / (2.0 * nDouble)) + [=10=]
}
let b: Float = (1...N).reduce(0) {
let nDouble = Double()
return Float((2.0 * nDouble) / (2.0 * nDouble + 1)) + [=10=]
}
return b - a
}
let N = 10
let out = (1...N).map(){ sum2(N: [=10=])}
let output = out.reduce(""){[=10=] + "\(), "}
print(output)
0.166667、0.216667、0.240476、0.254365、0.263456、0.269867、0.274629、0.278306、0.28123、0.283611,