为了获得确定的结果,我尝试使用@objc func addNewPerson(){
let picker = UIImagePickerController()
let ac = UIAlertController(title: "Choose image", message: nil, preferredStyle: .actionSheet)
let camera = UIAlertAction(title: "Camera", style: .default){
[weak self] _ in
if UIImagePickerController.isSourceTypeAvailable(.camera) {
picker.allowsEditing = false
picker.delegate = self
picker.sourceType = .camera
self?.present(picker,animated: true)
}else{
let alert = UIAlertController(title: "Warning", message: "You don't have camera", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: .default, handler: nil))
self?.present(alert, animated: true, completion: nil)
}
}
ac.addAction(camera)
let galerie = UIAlertAction(title: "Photo library", style: .default){
[weak self] _ in
picker.allowsEditing = true
picker.delegate = self
self?.present(picker,animated: true)
}
ac.addAction(galerie)
ac.addAction(UIAlertAction(title: "Cancel", style: .cancel))
present(ac,animated: true)
}
,但我注意到,它不像我想象的那样起作用。
一个简单的代码片段演示如下:
np.random.seed(0)
上面的代码段创建以下输出:
import numpy as np
np.random.seed(0)
error = np.random.rand(2,5)
print('error: \n' ,error)
我可以根据需要多次运行代码,并且输出是确定的。但是当我尝试创建第二个数组时,情况就不再如此了!
下面的代码段显示了这一点:
error:
[[ 0.5488135 0.71518937 0.60276338 0.54488318 0.4236548 ]
[ 0.64589411 0.43758721 0.891773 0.96366276 0.38344152]]
输出:
import numpy as np
np.random.seed(0)
error = np.random.rand(2,5)
error2 = np.random.rand(2,5)
print('error: \n' ,error)
print('error2: \n' ,error2)
我在这里想念什么?我以为设置种子可以确定性的行为,但是显然这不适用于这里!这里发生了什么?
答案 0 :(得分:2)
您每次必须重新播种RNG。
import numpy as np
np.random.seed(0)
error = np.random.rand(2,5)
np.random.seed(0)
error2 = np.random.rand(2,5)
print('error: \n' ,error)
print('error2: \n' ,error2)
否则,您只是继续随机序列,而不是重新开始。
答案 1 :(得分:1)
如果(伪)随机数生成器使用相同的种子(重新)初始化,它将生成相同的数字序列。
np.random.seed(0)
print (np.random.rand(),np.random.rand())
0.5488135039273248 0.7151893663724195
np.random.seed(0)
print (np.random.rand(),np.random.rand())
0.5488135039273248 0.7151893663724195
如果每次为一个种子生成相同的随机数,则它将不是(伪)随机数生成器。这将是一些确定性函数f(seed)
。当您播种它时,数字的顺序是确定性的,但它们本身的数字是随机的。