Как создать рандомную точку с двумя значениями координат?
Как создать рандомную точку с координатами с 2 значениями на промежутке (−5,5)×(−5,5) ?
Нужна рандомная точка при поиске минимума с помощью градиентного спуска. Python
Ответы (2 шт):
а что мешает 2 раза сгенерировать по 1 координате в диапазоне?
min = -5.5
max = 5.5
x = min + (max - min) * random.random()
y = min + (max - min) * random.random()
P.S.
я надеюсь, что промежуток (−5,5)×(−5,5) - это опечатка?
А... по разъяснению автора понял, что надо взять случайную точку в заданной области на плоскости
способ 1 (квадратная область со стороной size):
x0 = -5.5
y0 = -5.5
size = 0.01
x = x0 - size / 2 + size * random.random()
y = y0 - size / 2 + size * random.random()
способ 2 (круглая область с радиусом size):
делаем через полярные координаты:
x0 = -5.5
y0 = -5.5
size = 0.01
r = size * random.random()
phi = 2 * 3.14159 * random.random()
x = x0 + r * math.cos(phi)
y = y0 + r * math.sin(phi)
Если можно использовать библиотеки, то чуть короче если взять numpy:
import numpy as np
x, y = (np.random.rand(2) - 0.5) * 10
print(x, y)
# -3.2738632035969104 4.162504209779479
Правда, тут нижняя граница может попасть, а верхняя нет, т.е. результат будет в диапазоне [-5,5) x [-5,5).