我正在尝试在特定时期内生成[1800,1600]范围内的随机值。这个范围非常严格,但是我需要有一个较小的范围,该范围在这段时间内可以灵活地调整。
我要寻找的示例是: 对于前10天,请在[1705,1695]之间选择一个随机值 在接下来的10天中,选择[1695,1685]之间的随机数
但是,我希望范围随机增加10或减少10。
到目前为止,我能够做到这一点的唯一方法是手动设置范围,然后在一定时间范围内随机生成值。我希望可以随机选择范围。
答案 0 :(得分:1)
正如您所描述的,我已对问题进行了解答。这将在10天的n
期间生成随机数。
import numpy as np
n = 10
lower = 1695 # starting lower bound
upper = 1705 # starting upper bound
min_lower = 1600
max_upper = 1800
values = np.array([])
for period in range(n):
values = np.append(values, np.random.randint(lower, upper, 10))
if np.random.randint(2): # attempt to increase bound
if upper+10 < max_upper: # increase bounds
lower += 10
upper += 10
# else: bounds stay the same
else: # attempt to decrease bound
if lower-10 > min_lower: # decrease bounds
lower -= 10
upper -= 10
# else: bounds stay the same
以下是显示在10个长度为10的时间段内生成数字的结果的图。您可以看到每个时间段的范围为10。
您可能需要根据需要进行一些小的调整。当界限达到极限时,它们保持不变。