You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python在指定抛物线内生成100个y值小于15000的随机点?

在抛物线y=2x²+10x内生成100个y<15000的随机点

步骤说明

  1. 确定x的有效范围
    要满足抛物线的y值小于15000,解不等式 2x² + 10x < 15000,化简后通过一元二次方程求根公式计算,得到x的取值区间约为 (-89.14, 84.14)。这个区间内的x对应的抛物线y值都会小于15000。

  2. 生成随机点逻辑

  • 在上述x区间内生成100个随机数;
  • 对每个x,计算抛物线对应的y值 y_parabola = 2*x² + 10*x;
  • 每个点的y值取0到y_parabola之间的随机数,确保点落在抛物线内部(且因x的范围限制,y自动满足小于15000的要求)。

完整实现代码

import numpy as np
import matplotlib.pyplot as plt

# 计算x的精确边界
x_min = (-5 - np.sqrt(5**2 + 4*2*15000)) / (2*2)
x_max = (-5 + np.sqrt(5**2 + 4*2*15000)) / (2*2)

# 生成100个随机x值
x_random = np.random.uniform(low=x_min, high=x_max, size=100)
# 计算每个x对应的抛物线y值
y_parabola = 2 * x_random**2 + 10 * x_random
# 生成抛物线内部的随机y值
y_random = np.random.uniform(low=0, high=y_parabola, size=100)

# 绘制抛物线和随机点
x = np.linspace(x_min, x_max, 1000)
y = 2*x**2 + 10*x

plt.plot(x, y, label='抛物线y=2x²+10x')
plt.scatter(x_random, y_random, color='red', s=10, label='随机点')
plt.xlabel('x')
plt.ylabel('y')
plt.legend()
plt.title('抛物线内的随机点(y<15000)')
plt.show()

代码说明

  • x_min和x_max通过求根公式精确计算,避免手动估算的误差;
  • 使用np.random.uniform生成均匀分布的随机数,保证点的分布更均匀;
  • 绘制代码同时展示抛物线和随机点,可直观验证点的位置是否符合要求。

内容的提问来源于stack exchange,提问作者Erica Hashimoto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 15:30:57