我编写了一个函数,可以找到数组中所有元素之间的最大差异。但是我需要输入元素数组的限制[-5..20]。不幸的是它不支持UInt32。什么类似于从[-5..20]范围内随机填充数组的解决方案?谢谢!
func highDifferenceV ( n: Int) ->String{
var a = [Int]() //array
var dif = 0 // max difference
var k = 0
for _ in 0..<n {
a.append(Int(arc4random_uniform(UInt32(20)))) // fill array
}
while k < a.count { //search the greatest difference
for i in 0..<n {
if a[k] - a[i] > dif {
dif = a[k] - a[i]
}
}
k++
}
print(a)
return "Maximum difference =\(dif)"
}
highDifferenceV(75)
答案 0 :(得分:3)
要使用-5...20
中的值填充数组,请生成0...25
范围内的数字,然后减去5
:
for _ in 0..<n {
a.append(Int(arc4random_uniform(UInt32(26)))-5) // fill array
}
通常,要生成min...max
范围内的值,请使用arc4random_uniform
致电max - min + 1
,然后添加min
。