Я хотел бы реализовать рандомизированный алгоритм округления в Python.Это правильный способ получить рандомизированное решение округления?
Алгоритм довольно прост в описании.
Для вектора x, размера n, где каждый элемент x [i], представляет собой действительное число между 0 и 1. Создайте вектор 0-1, y, размера n, где каждый элемент y, y [i], является либо 0, либо 1 следующим образом:
для i = 1 до len (x): установите y [i] = 1 с вероятностью x [i] и y [i] = 0 с вероятностью 1 - x [i].
Я попытался сделать это следующим образом, но я предполагаю, что я скучаю по Somethings или, может быть, есть более быстрый/лучший способ:
import numpy
n = 4
x = [0.01, 0.6, 0.1, 0.7]
y = numpy.zeros(n)
for i in range(n):
randomNum = numpy.random.uniform()
if randomNum >= x[i]:
y[i] = 1
else:
y[i] = 0