Swift 程序查找数字的调和平均数
本教程将讨论如何编写 Swift 程序来查找数字的调和平均数。
调和平均数,也称为 HM,定义为倒数的平均值的倒数。或者我们可以说调和平均数是其倒数的算术平均数的倒数。假设 a1、a2、a3、a4、.....an 是一个集合的 n 个元素,那么调和平均数为 -
HM = n/[(1/a1) + 1/(a2) + 1/(a3) + 1/(a4)+...+ 1/(an)]
以下是相同内容的演示 -
输入
假设我们给定的输入为 -
MyVal = [3.4, 1.2, 7.8, 4.5, 2.4]
输出
所需的输出将为 -
Harmonic mean =
公式
以下是调和平均数的公式 -
HM = n/[(1/a1) + 1/(a2) + 1/(a3) + 1/(a4)+ …+ 1/(an)]
算法
以下是算法 -
步骤 1 - 创建一个包含值的数组。
步骤 2 - 声明一个变量来存储元素倒数的总和。
步骤 3 - 运行一个从 0 到小于数组大小的 for 循环。或者我们可以说遍历每个元素并找到它们的倒数和。
for x in 0..<arrNums.count{ sum = sum + Double(1 / arrNums[x]) }
步骤 4 - 通过将数组的大小除以元素倒数的总和来找到调和平均数。
var Harmonicmean = size/sum
步骤 5 - 打印输出
示例 1
以下程序展示了如何查找数字的调和平均数。
import Foundation import Glibc // Creating an array var arrNums = [2.0, 2.5, 3.2, 9.9, 6.2] print("Original Array:", arrNums) var sum : Double = 0.0 // Finding the reciprocal sum of all the // elements of the array for x in 0..<arrNums.count{ sum = sum + Double(1 / arrNums[x]) } var size = Double(arrNums.count) // Finding the harmonic mean var Harmonicmean = size/sum print("Harmonic Mean:", Harmonicmean)
输出
Original Array: [2.0, 2.5, 3.2, 9.9, 6.2] Harmonic Mean: 3.390289235086014
在这里,在上面的代码中,我们有一个双精度类型的数组。现在我们遍历数组的每个元素以找到元素倒数的总和,并将结果存储到 sum 变量中,然后我们将数组中存在的元素总数除以 sum 以找到调和平均数 -
for x in 0..<arrNums.count{ sum = sum + Double(1 / arrNums[x]) } var Harmonicmean = size/sum
因此,上面代码的工作原理是 -
sum = 0.0
Size = 5.0
第 1 次迭代:sum = 0.0 + (1/ arrNums[0]) = 0 + (1/2.0) = 0.5
第 2 次迭代:sum = 0.5 + (1/ arrNums[1]) = 0 .5+ (1/2.5) = 0.9
第 3 次迭代:sum = 0.9 + (1/ arrNums[2]) = 0 .9+ (1/3.2) = 1.2125
第 4 次迭代:sum = 1.2125 + (1/ arrNums[3]) = 1.2125 + (1/9.9) = 0.5
第 5 次迭代:sum = 1.313510101010101 + (1/ arrNums[4]) = 1.313510101010101 + (1/6.2) = 1.4748004235907461
Sum = 1.4748004235907461
调和平均数 = Size/Sum= 5/1.4748004235907461 = 3.390289235086014
因此,数组(即 [2.0、2.5、3.2、9.9、6.2])的调和平均数为 3.390289235086014。
示例 2
以下程序展示了如何查找数字的调和平均数。
import Foundation import Glibc // Function to find the harmonic mean of the given array func arrayHarmoMean(arr: [Double]) -> Double{ let arrNums = arr var sum = 0.0 // Finding the reciprocal sum of all the // elements of the array for x in 0..<arrNums.count{ sum = sum + Double(1 / arrNums[x]) } let size = Double(arrNums.count) // Finding the harmonic mean return size/sum } // Creating an array of double type var arrVals = [2.6, 7.89, 2.89, 0.3, 2.34] print("Original Array:", arrVals) print("Harmonic Mean:", arrayHarmoMean(arr: arrVals))
输出
Original Array: [2.6, 7.89, 2.89, 0.3, 2.34] Harmonic Mean: 1.0827051109274841
在这里,在上面的代码中,我们有一个名为 arrVals 的双精度类型数组。现在要找到 arrVals 的调和平均数,我们创建一个名为 arrayHarmoMean() 的函数。此函数将返回调和平均数。因此,结果调和平均数为 1.0827051109274841。